diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/progs/ingenuity/NodeModule.cpp | 12 | ||||
-rw-r--r-- | src/progs/ingenuity/NodeModule.h | 2 | ||||
-rw-r--r-- | src/progs/ingenuity/WindowFactory.cpp | 1 |
3 files changed, 14 insertions, 1 deletions
diff --git a/src/progs/ingenuity/NodeModule.cpp b/src/progs/ingenuity/NodeModule.cpp index 95ab69e1..41041b0e 100644 --- a/src/progs/ingenuity/NodeModule.cpp +++ b/src/progs/ingenuity/NodeModule.cpp @@ -28,6 +28,7 @@ #include "PatchWindow.h" #include "WindowFactory.h" #include "SubpatchModule.h" +#include "NodeControlWindow.h" namespace Ingenuity { @@ -49,6 +50,17 @@ NodeModule::NodeModule(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeMode } +NodeModule::~NodeModule() +{ + NodeControlWindow* win = App::instance().window_factory()->control_window(m_node); + + if (win) { + // Should remove from window factory via signal + delete win; + } +} + + boost::shared_ptr<NodeModule> NodeModule::create(boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> node) { diff --git a/src/progs/ingenuity/NodeModule.h b/src/progs/ingenuity/NodeModule.h index 12012f97..2d6802ff 100644 --- a/src/progs/ingenuity/NodeModule.h +++ b/src/progs/ingenuity/NodeModule.h @@ -53,7 +53,7 @@ class NodeModule : public boost::enable_shared_from_this<NodeModule>, public Lib public: static boost::shared_ptr<NodeModule> create (boost::shared_ptr<PatchCanvas> canvas, SharedPtr<NodeModel> node); - virtual ~NodeModule() {} + virtual ~NodeModule(); boost::shared_ptr<Port> port(const string& port_name) { return boost::dynamic_pointer_cast<Ingenuity::Port>( diff --git a/src/progs/ingenuity/WindowFactory.cpp b/src/progs/ingenuity/WindowFactory.cpp index c9ec9040..865a84df 100644 --- a/src/progs/ingenuity/WindowFactory.cpp +++ b/src/progs/ingenuity/WindowFactory.cpp @@ -234,6 +234,7 @@ WindowFactory::remove_control_window(NodeControlWindow* win, GdkEventAny* ignore return true; } + void WindowFactory::present_load_plugin(SharedPtr<PatchModel> patch, MetadataMap data) { |