diff --git a/framework/global/internal/baseapplication.cpp b/framework/global/internal/baseapplication.cpp index 2dff4fea71..a921f1a459 100644 --- a/framework/global/internal/baseapplication.cpp +++ b/framework/global/internal/baseapplication.cpp @@ -386,6 +386,10 @@ void BaseApplication::doDestroyContext(const ContextData& data) s->onDeinit(); } + for (modularity::IContextSetup* s : data.setups) { + s->onDestroy(); + } + qDeleteAll(data.setups); modularity::removeIoC(data.ctxId); diff --git a/framework/global/modularity/imodulesetup.h b/framework/global/modularity/imodulesetup.h index 96975b4d07..88930ee935 100644 --- a/framework/global/modularity/imodulesetup.h +++ b/framework/global/modularity/imodulesetup.h @@ -47,6 +47,7 @@ class IContextSetup virtual void onInit(const IApplication::RunMode& mode) { (void)mode; } virtual void onAllInited(const IApplication::RunMode& mode) { (void)mode; } virtual void onDeinit() {} + virtual void onDestroy() {} private: ContextPtr m_ctx;