diff options
author | saturneric <[email protected]> | 2024-04-30 17:58:36 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-04-30 17:58:36 +0000 |
commit | 46870f10fdbc18d695242c945c0c39e4d832ec39 (patch) | |
tree | 600d14c9f89dd3de8fcd2df34622f705dbfee73f /src/core/module/ModuleManager.cpp | |
parent | feat: add progress bar at gnupg info tab (diff) | |
download | GpgFrontend-46870f10fdbc18d695242c945c0c39e4d832ec39.tar.gz GpgFrontend-46870f10fdbc18d695242c945c0c39e4d832ec39.zip |
fix: reset module settings object in a proper way
Diffstat (limited to 'src/core/module/ModuleManager.cpp')
-rw-r--r-- | src/core/module/ModuleManager.cpp | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/src/core/module/ModuleManager.cpp b/src/core/module/ModuleManager.cpp index 7094b801..d07ca989 100644 --- a/src/core/module/ModuleManager.cpp +++ b/src/core/module/ModuleManager.cpp @@ -31,7 +31,6 @@ #include <memory> #include <utility> -#include "GpgConstants.h" #include "core/function/SecureMemoryAllocator.h" #include "core/function/basic/GpgFunctionObject.h" #include "core/model/SettingsObject.h" @@ -86,31 +85,25 @@ class ModuleManager::Impl { SettingsObject so(QString("module.%1.so").arg(module_id)); ModuleSO module_so(so); - // if user has set auto active enable - if ((module_so.module_id == module_id && - module_so.module_hash == module_hash && - module_so.auto_activate) || - // integrated modules activate by default - ((module_so.module_id.isEmpty() || - module_so.module_hash.isEmpty()) && - integrated_module)) { - if (!gmc_->ActiveModule(module_id)) { - return -1; - } - } - - // reset module settings after change - if ((module_so.module_id.isEmpty() || - module_so.module_id != module_id) || - (module_so.module_hash.isEmpty() || - module_so.module_hash != module_hash)) { + // reset module settings if necessary + if (module_so.module_id != module_id || + module_so.module_hash != module_hash) { module_so.module_id = module_id; module_so.module_hash = module_hash; + // auto active integrated module by default module_so.auto_activate = integrated_module; + module_so.set_by_user = false; so.Store(module_so.ToJson()); } + // if this module need auto active + if (module_so.auto_activate) { + if (!gmc_->ActiveModule(module_id)) { + return -1; + } + } + return 0; }, __func__, nullptr)); @@ -147,7 +140,7 @@ class ModuleManager::Impl { __func__, nullptr)); } - void TriggerEvent(const EventRefrernce& event) { + void TriggerEvent(const EventReference& event) { Thread::TaskRunnerGetter::GetInstance() .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Default) ->PostTask(new Thread::Task( @@ -159,7 +152,7 @@ class ModuleManager::Impl { } auto SearchEvent(EventTriggerIdentifier trigger_id) - -> std::optional<EventRefrernce> { + -> std::optional<EventReference> { return gmc_->SearchEvent(std::move(trigger_id)); } @@ -277,12 +270,12 @@ auto ModuleManager::GetModuleListening(ModuleIdentifier module_id) return p_->GetModuleListening(module_id); } -void ModuleManager::TriggerEvent(EventRefrernce event) { +void ModuleManager::TriggerEvent(EventReference event) { return p_->TriggerEvent(event); } auto ModuleManager::SearchEvent(EventTriggerIdentifier trigger_id) - -> std::optional<EventRefrernce> { + -> std::optional<EventReference> { return p_->SearchEvent(std::move(trigger_id)); } |