diff options
Diffstat (limited to 'src/engine/Loader.cpp')
-rw-r--r-- | src/engine/Loader.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/engine/Loader.cpp b/src/engine/Loader.cpp index 3b60223..cf41bd1 100644 --- a/src/engine/Loader.cpp +++ b/src/engine/Loader.cpp @@ -119,6 +119,26 @@ Loader::load(const Glib::ustring& uri) } + /* Find out which nodes are selectors */ + + query = Query(_rdf_world, ustring( + "SELECT DISTINCT ?node WHERE {\n") + + machine_uri + " :node ?node .\n" + "?node a :SelectorNode .\n" + "}\n"); + + results = query.run(_rdf_world, model); + + for (Query::Results::iterator i = results.begin(); i != results.end(); ++i) { + const char* node_id = (*i)["node"]; + Created::iterator n = created.find(node_id); + if (n != created.end()) + n->second->set_selector(true); + else + cerr << "WARNING: Selector node " << node_id << " not found" << endl; + } + + /* Get note actions */ query = Query(_rdf_world, ustring( |