diff options
author | David Robillard <d@drobilla.net> | 2017-03-19 13:26:38 +0100 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2017-03-20 02:58:56 +0100 |
commit | f1c793f7e2148b10610a09a459d9e89b39d2d87b (patch) | |
tree | b898407dce08af0f2f978d59a85d4887d8555b54 /src/gui | |
parent | efc0fe0a973db706d9409b345ad6fae585f4388c (diff) | |
download | ingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.tar.gz ingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.tar.bz2 ingen-f1c793f7e2148b10610a09a459d9e89b39d2d87b.zip |
Fix round-trip preservation of property contexts
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/App.cpp | 10 | ||||
-rw-r--r-- | src/gui/App.hpp | 6 | ||||
-rw-r--r-- | src/gui/SubgraphModule.cpp | 8 |
3 files changed, 14 insertions, 10 deletions
diff --git a/src/gui/App.cpp b/src/gui/App.cpp index d303348a..15bdc796 100644 --- a/src/gui/App.cpp +++ b/src/gui/App.cpp @@ -258,17 +258,18 @@ App::error_message(const string& str) void App::set_property(const Raul::URI& subject, const Raul::URI& key, - const Atom& value) + const Atom& value, + Resource::Graph ctx) { // Send message to server - interface()->set_property(subject, key, value); + interface()->set_property(subject, key, value, ctx); /* The server does not feed back set messages (kludge to prevent control feedback and bandwidth wastage, see Delta.cpp). So, assume everything went as planned here and fire the signal ourselves as if the server feedback came back immediately. */ if (key != uris().ingen_activity) { - _client->signal_property_change().emit(subject, key, value); + _client->signal_property_change().emit(subject, key, value, ctx); } } @@ -298,7 +299,8 @@ App::put(const Raul::URI& uri, void App::property_change(const Raul::URI& subject, const Raul::URI& key, - const Atom& value) + const Atom& value, + Resource::Graph ctx) { if (subject != Raul::URI("ingen:/engine")) { return; diff --git a/src/gui/App.hpp b/src/gui/App.hpp index 4967513c..6dcab171 100644 --- a/src/gui/App.hpp +++ b/src/gui/App.hpp @@ -101,7 +101,8 @@ public: void set_property(const Raul::URI& subject, const Raul::URI& key, - const Atom& value); + const Atom& value, + Resource::Graph ctx = Resource::Graph::DEFAULT); /** Set the tooltip for a widget from its RDF documentation. */ void set_tooltip(Gtk::Widget* widget, const LilvNode* node); @@ -149,7 +150,8 @@ protected: void property_change(const Raul::URI& subject, const Raul::URI& key, - const Atom& value); + const Atom& value, + Resource::Graph ctx = Resource::Graph::DEFAULT); static Gtk::Main* _main; diff --git a/src/gui/SubgraphModule.cpp b/src/gui/SubgraphModule.cpp index 5c05153f..c261ec36 100644 --- a/src/gui/SubgraphModule.cpp +++ b/src/gui/SubgraphModule.cpp @@ -70,10 +70,10 @@ SubgraphModule::store_location(double ax, double ay) if (x != _block->get_property(uris.ingen_canvasX) || y != _block->get_property(uris.ingen_canvasY)) { - app().interface()->put( - _graph->uri(), - {{uris.ingen_canvasX, Property(x, Resource::Graph::EXTERNAL)}, - {uris.ingen_canvasY, Property(y, Resource::Graph::EXTERNAL)}}); + app().interface()->put(_graph->uri(), + {{uris.ingen_canvasX, x}, + {uris.ingen_canvasY, y}}, + Resource::Graph::EXTERNAL); } } |