From 76466bde179e9b0d58b1586fb3f4ed40dedbdc13 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Mon, 18 Aug 2008 06:26:24 +0000 Subject: Fix loading / importing patches at root and in subpatches. git-svn-id: http://svn.drobilla.net/lad/ingen@1430 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/gui/ThreadedLoader.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/libs/gui/ThreadedLoader.cpp') diff --git a/src/libs/gui/ThreadedLoader.cpp b/src/libs/gui/ThreadedLoader.cpp index 88dd4b1a..86c4ea1c 100644 --- a/src/libs/gui/ThreadedLoader.cpp +++ b/src/libs/gui/ThreadedLoader.cpp @@ -100,13 +100,27 @@ ThreadedLoader::load_patch(bool merge, engine_data, false))); } else { + Glib::ustring engine_base = ""; + if (engine_parent) { + if (merge) + engine_base = engine_parent.get(); + else + engine_base = engine_parent.get().base(); + } + + cout << "ENGINE BASE 1: " << engine_base << endl; + if (merge && engine_parent.get() == "/" || !engine_parent) + engine_base = engine_base.substr(0, engine_base.find_last_of("/")); + + cout << "ENGINE BASE: " << engine_base << endl; + cout << "PARENT: " << (engine_parent ? (string)engine_parent.get() : "NONE") << endl; _events.push_back(sigc::hide_return(sigc::bind( sigc::mem_fun(_parser.get(), &Ingen::Serialisation::Parser::parse_document), App::instance().world(), App::instance().world()->engine.get(), data_base_uri, // document - data_base_uri, // patch (root of document) - engine_parent, + data_base_uri + data_path.substr(1), // object URI document + engine_base, engine_symbol, engine_data))); } -- cgit v1.2.1