diff --git a/src/Reveal.cpp b/src/Reveal.cpp index 478110c230aedd6edfcdc254ef292c8b7978fef8..85e9518f69bbe9d39456f16dd3ec56b37093f4ce 100644 --- a/src/Reveal.cpp +++ b/src/Reveal.cpp @@ -629,6 +629,7 @@ void Reveal::testDelete() { } m_listenersDeleteVec.clear(); + if(m_modulesDeleteVec.size()>0) { MainWindow::getInstance()->refreshModules(true, erasedListeners); } diff --git a/src/modules/RevealedPathModule.cpp b/src/modules/RevealedPathModule.cpp index 46b6492ee8601cba1453e8b9759c791dcba405d9..bcd769bd90052b9ff369cc9876732a069d7aac09 100644 --- a/src/modules/RevealedPathModule.cpp +++ b/src/modules/RevealedPathModule.cpp @@ -87,6 +87,12 @@ RevealedPathModule::RevealedPathModule(): RevealedModule() { RevealedPathModule::~RevealedPathModule() { Reveal::getInstance()->unregisterGeom(m_pathGeom); + Reveal::getInstance()->removeModuleListObserver(this); +} + +void RevealedPathModule::deleteModule() { + RevealedModule::deleteModule(); + Reveal::getInstance()->removeModuleListObserver(this); } void RevealedPathModule::load(xmlNodePtr node) { diff --git a/src/modules/RevealedPathModule.hpp b/src/modules/RevealedPathModule.hpp index c815025a7cc28994cfc384c7d261a9268b64ab93..d2d3c680e7fd728362d2c47a350ebaeb04b4406f 100644 --- a/src/modules/RevealedPathModule.hpp +++ b/src/modules/RevealedPathModule.hpp @@ -34,6 +34,8 @@ class RevealedPathModule : public RevealedModule, public ModuleListObserver { RevealedPathModule(); virtual ~RevealedPathModule(); + virtual void deleteModule(); + virtual void load(xmlNodePtr node); virtual xmlNodePtr save(xmlNodePtr parentNode);