summaryrefslogtreecommitdiffstats
path: root/src/progs/ingenuity/NodeModule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/progs/ingenuity/NodeModule.cpp')
-rw-r--r--src/progs/ingenuity/NodeModule.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/progs/ingenuity/NodeModule.cpp b/src/progs/ingenuity/NodeModule.cpp
index 73b87b5b..bec6e89c 100644
--- a/src/progs/ingenuity/NodeModule.cpp
+++ b/src/progs/ingenuity/NodeModule.cpp
@@ -27,6 +27,7 @@
#include "RenameWindow.h"
#include "PatchWindow.h"
#include "WindowFactory.h"
+#include "SubpatchModule.h"
namespace Ingenuity {
@@ -51,8 +52,13 @@ NodeModule::NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeMode
boost::shared_ptr<NodeModule>
NodeModule::create(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> node)
{
- boost::shared_ptr<NodeModule> ret = boost::shared_ptr<NodeModule>(
- new NodeModule(canvas, node));
+ boost::shared_ptr<NodeModule> ret;
+
+ SharedPtr<PatchModel> patch = PtrCast<PatchModel>(node);
+ if (patch)
+ ret = boost::shared_ptr<NodeModule>(new SubpatchModule(canvas, patch));
+ else
+ ret = boost::shared_ptr<NodeModule>(new NodeModule(canvas, node));
for (MetadataMap::const_iterator m = node->metadata().begin(); m != node->metadata().end(); ++m)
ret->metadata_update(m->first, m->second);