diff options
author | David Robillard <d@drobilla.net> | 2007-01-12 18:45:59 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-01-12 18:45:59 +0000 |
commit | a8fafe5adeb6f1782b40d1766d4cb1cf9c3f89d9 (patch) | |
tree | b3d7d3f31ce782227ff9fe4c23877ee590e59b37 | |
parent | 0b5e45ec738086206b159e239a0801ea5bccb09f (diff) | |
download | ingen-a8fafe5adeb6f1782b40d1766d4cb1cf9c3f89d9.tar.gz ingen-a8fafe5adeb6f1782b40d1766d4cb1cf9c3f89d9.tar.bz2 ingen-a8fafe5adeb6f1782b40d1766d4cb1cf9c3f89d9.zip |
Close control windows on node destruction.
git-svn-id: http://svn.drobilla.net/lad/ingen@254 a436a847-0d15-0410-975c-d299462d15a1
-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) { |