From f1c793f7e2148b10610a09a459d9e89b39d2d87b Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 19 Mar 2017 13:26:38 +0100 Subject: Fix round-trip preservation of property contexts --- src/gui/App.cpp | 10 ++++++---- src/gui/App.hpp | 6 ++++-- src/gui/SubgraphModule.cpp | 8 ++++---- 3 files changed, 14 insertions(+), 10 deletions(-) (limited to 'src/gui') 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); } } -- cgit v1.2.1