From 39165b31a5dd72d61d81ab4ead0966168094844b Mon Sep 17 00:00:00 2001 From: Raul Radu <raul.radu@mail.polimi.it> Date: Wed, 24 Jan 2024 21:27:49 +0100 Subject: [PATCH] [Modules] Fixed wrong Module class design - Changed replaceMe function to use normal pointers as oldModule. I could not use shared_ptr because I cannot give a shared_ptr of a module whithin the module. - Used new SkywardHubCore method to add menu actions --- src/shared/Modules/Module.cpp | 9 ++------- src/shared/Modules/Module.h | 3 +-- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/shared/Modules/Module.cpp b/src/shared/Modules/Module.cpp index 57d452ab..a3474ea5 100644 --- a/src/shared/Modules/Module.cpp +++ b/src/shared/Modules/Module.cpp @@ -55,9 +55,7 @@ Module::Module(ModuleId id) : id(id) // Load hub actions menu.addSeparator(); - menu.addActions( - SkywardHubCore::getInstance().getHubMenuActions()); - + SkywardHubCore::getInstance().addActionsToMenu(menu); menu.exec(mapToGlobal(pos)); }); } @@ -93,10 +91,7 @@ void Module::onReplaceMe() }); auto NewModuleEventEmitter = [this](ModuleId id) - { - emit replaceMe(std::shared_ptr<Module>(this), - ModulesList::getInstance().instantiateModule(id)); - }; + { emit replaceMe(this, ModulesList::getInstance().instantiateModule(id)); }; connect(picker.get(), &ModulesPicker::onModuleSelected, this, NewModuleEventEmitter); diff --git a/src/shared/Modules/Module.h b/src/shared/Modules/Module.h index f6cdab3d..4766e736 100644 --- a/src/shared/Modules/Module.h +++ b/src/shared/Modules/Module.h @@ -57,8 +57,7 @@ public slots: // void onCloseMe(); signals: - void replaceMe(std::shared_ptr<Module> oldModule, - std::shared_ptr<Module> newModule); + void replaceMe(const Module* oldModule, std::shared_ptr<Module> newModule); void closeMe(std::shared_ptr<Module> thisModule); protected: -- GitLab