From 5fc3076fd7af5b2755ca6371224e636fd3ab4e9b Mon Sep 17 00:00:00 2001 From: Florent Berthaut <florent.berthaut@univ-lille.fr> Date: Thu, 11 Jan 2024 15:21:23 +0100 Subject: [PATCH] Fix remove path crash --- src/Reveal.cpp | 1 + src/modules/RevealedPathModule.cpp | 6 ++++++ src/modules/RevealedPathModule.hpp | 2 ++ 3 files changed, 9 insertions(+) diff --git a/src/Reveal.cpp b/src/Reveal.cpp index 478110c..85e9518 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 46b6492..bcd769b 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 c815025..d2d3c68 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); -- GitLab