summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2017-03-19 13:26:38 +0100
committerDavid Robillard <d@drobilla.net>2017-03-20 02:58:56 +0100
commitf1c793f7e2148b10610a09a459d9e89b39d2d87b (patch)
treeb898407dce08af0f2f978d59a85d4887d8555b54 /src/gui
parentefc0fe0a973db706d9409b345ad6fae585f4388c (diff)
downloadingen-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.cpp10
-rw-r--r--src/gui/App.hpp6
-rw-r--r--src/gui/SubgraphModule.cpp8
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);
}
}