summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/GraphCanvas.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/gui/GraphCanvas.cpp b/src/gui/GraphCanvas.cpp
index e9224cfc..fa5ed149 100644
--- a/src/gui/GraphCanvas.cpp
+++ b/src/gui/GraphCanvas.cpp
@@ -235,13 +235,14 @@ GraphCanvas::build_menus()
void
GraphCanvas::build()
{
- const Store::const_range kids = _app.store()->children_range(_graph);
-
// Create modules for blocks
- for (Store::const_iterator i = kids.first; i != kids.second; ++i) {
- SPtr<BlockModel> block = dynamic_ptr_cast<BlockModel>(i->second);
- if (block && block->parent() == _graph)
+ for (Store::const_iterator n = _app.store()->find_first_child(_graph);
+ n != _app.store()->end() && n->first.is_child_of(_graph->uri());
+ ++n) {
+ SPtr<BlockModel> block = dynamic_ptr_cast<BlockModel>(n->second);
+ if (block && block->parent() == _graph) {
add_block(block);
+ }
}
// Create pseudo modules for ports (ports on this canvas, not on our module)
@@ -699,7 +700,7 @@ GraphCanvas::paste()
float min_x = std::numeric_limits<float>::max();
float min_y = std::numeric_limits<float>::max();
for (const auto& c : clipboard) {
- if (c.first.parent() == Raul::Path("/")) {
+ if (uri_to_path(c.first).parent() == Raul::Path("/")) {
const Atom& x = c.second->get_property(uris.ingen_canvasX);
const Atom& y = c.second->get_property(uris.ingen_canvasY);
if (x.type() == uris.atom_Float) {
@@ -723,7 +724,8 @@ GraphCanvas::paste()
// Put each top level object in the clipboard store
ClashAvoider avoider(*_app.store().get());
for (const auto& c : clipboard) {
- if (c.first.is_root() || c.first.parent() != Raul::Path("/")) {
+ const Raul::Path path(uri_to_path(c.first));
+ if (path.is_root() || path.parent() != Raul::Path("/")) {
continue;
}