summaryrefslogtreecommitdiffstats
path: root/src/libs/gui/ThreadedLoader.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2008-08-18 06:26:24 +0000
committerDavid Robillard <d@drobilla.net>2008-08-18 06:26:24 +0000
commit76466bde179e9b0d58b1586fb3f4ed40dedbdc13 (patch)
treedff00bee8eed5787d7cb0466a539acd853423293 /src/libs/gui/ThreadedLoader.cpp
parent640cbadb284544ecc876ae650c1c945c57adcce8 (diff)
downloadingen-76466bde179e9b0d58b1586fb3f4ed40dedbdc13.tar.gz
ingen-76466bde179e9b0d58b1586fb3f4ed40dedbdc13.tar.bz2
ingen-76466bde179e9b0d58b1586fb3f4ed40dedbdc13.zip
Fix loading / importing patches at root and in subpatches.
git-svn-id: http://svn.drobilla.net/lad/ingen@1430 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/gui/ThreadedLoader.cpp')
-rw-r--r--src/libs/gui/ThreadedLoader.cpp18
1 files changed, 16 insertions, 2 deletions
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)));
}