summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/gui/LoadPatchWindow.cpp5
-rw-r--r--src/libs/gui/PatchWindow.cpp2
-rw-r--r--src/libs/serialisation/Loader.cpp4
3 files changed, 5 insertions, 6 deletions
diff --git a/src/libs/gui/LoadPatchWindow.cpp b/src/libs/gui/LoadPatchWindow.cpp
index 57ae1536..398eaf1f 100644
--- a/src/libs/gui/LoadPatchWindow.cpp
+++ b/src/libs/gui/LoadPatchWindow.cpp
@@ -127,11 +127,8 @@ LoadPatchWindow::ok_clicked()
if (_poly_from_user_radio->get_active())
_initial_data.insert(make_pair("ingen:polyphony", _poly_spinbutton->get_value_as_int()));
- if (_replace) {
+ if (_replace)
App::instance().engine()->clear_patch(_patch->path());
- App::instance().engine()->set_variable(_patch->path(), "ingen:document",
- Atom(get_uri().c_str()));
- }
if (_patch->path() != "/")
parent = _patch->path().parent();
diff --git a/src/libs/gui/PatchWindow.cpp b/src/libs/gui/PatchWindow.cpp
index 865cc9eb..9367f2d7 100644
--- a/src/libs/gui/PatchWindow.cpp
+++ b/src/libs/gui/PatchWindow.cpp
@@ -366,8 +366,6 @@ PatchWindow::event_save_as()
if (confirm) {
App::instance().loader()->save_patch(_patch, filename);
- App::instance().engine()->set_variable(_patch->path(), "ingen:document",
- Atom(Glib::filename_to_uri(filename).c_str()));
}
}
App::instance().configuration()->set_patch_folder(dialog.get_current_folder());
diff --git a/src/libs/serialisation/Loader.cpp b/src/libs/serialisation/Loader.cpp
index 88b0a6a3..84b935d9 100644
--- a/src/libs/serialisation/Loader.cpp
+++ b/src/libs/serialisation/Loader.cpp
@@ -114,6 +114,10 @@ Loader::load(SharedPtr<EngineInterface> engine,
if (patch_path != "/")
engine->create_patch(patch_path, patch_poly);
+
+ /* Set document metadata (so File->Save doesn't prompt)
+ * FIXME: This needs some thinking for multiple clients... */
+ engine->set_variable(patch_path, "ingen:document", Atom(document_uri.c_str()));
/* Load (plugin) nodes */