aboutsummaryrefslogtreecommitdiffstats
path: root/src/module/integrated/version_checking_module/VersionCheckingModule.cpp
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2023-10-24 07:55:29 +0000
committersaturneric <[email protected]>2023-10-24 07:55:29 +0000
commit52f809414e485f81e58a0aa3fec99bd27e38c9cf (patch)
tree21bc601b510e01eec1b38ae256f6c252533ef91f /src/module/integrated/version_checking_module/VersionCheckingModule.cpp
parentfix: solve some issues on log system (diff)
downloadGpgFrontend-52f809414e485f81e58a0aa3fec99bd27e38c9cf.tar.gz
GpgFrontend-52f809414e485f81e58a0aa3fec99bd27e38c9cf.zip
feat: try to use GRT as a info exchange center of modules and ui
Diffstat (limited to 'src/module/integrated/version_checking_module/VersionCheckingModule.cpp')
-rw-r--r--src/module/integrated/version_checking_module/VersionCheckingModule.cpp50
1 files changed, 48 insertions, 2 deletions
diff --git a/src/module/integrated/version_checking_module/VersionCheckingModule.cpp b/src/module/integrated/version_checking_module/VersionCheckingModule.cpp
index 7ab02ef2..233b4225 100644
--- a/src/module/integrated/version_checking_module/VersionCheckingModule.cpp
+++ b/src/module/integrated/version_checking_module/VersionCheckingModule.cpp
@@ -28,14 +28,25 @@
#include "VersionCheckingModule.h"
+#include <qobject.h>
+
+#include "Log.h"
+#include "SoftwareVersion.h"
#include "VersionCheckTask.h"
+#include "core/module/Module.h"
+#include "core/module/ModuleManager.h"
namespace GpgFrontend::Module::Integrated::VersionCheckingModule {
VersionCheckingModule::VersionCheckingModule()
: Module("com.bktus.gpgfrontend.module.integrated.versionchecking", "1.0.0",
ModuleMetaData{{"description", "try to check gpgfrontend version"},
- {"author", "saturneric"}}) {}
+ {"author", "saturneric"}}) {
+ connect(this, &VersionCheckingModule::SignalVersionCheckDone, this,
+ &VersionCheckingModule::SlotVersionCheckDone);
+}
+
+VersionCheckingModule::~VersionCheckingModule() = default;
bool VersionCheckingModule::Register() {
MODULE_LOG_INFO("version checking module registering");
@@ -52,9 +63,44 @@ int VersionCheckingModule::Exec(EventRefrernce event) {
MODULE_LOG_INFO("version checking module executing, event id: {}",
event->GetIdentifier());
- getTaskRunner()->PostTask(new VersionCheckTask());
+ auto* task = new VersionCheckTask();
+ connect(task, &VersionCheckTask::SignalUpgradeVersion, this,
+ &VersionCheckingModule::SignalVersionCheckDone);
+ getTaskRunner()->PostTask(task);
return 0;
}
bool VersionCheckingModule::Deactive() { return true; }
+
+void VersionCheckingModule::SlotVersionCheckDone(SoftwareVersion version) {
+ MODULE_LOG_DEBUG("registering software information info to rt");
+ ModuleManager::GetInstance()->UpsertRTValue(GetModuleIdentifier(),
+ "version.current_version",
+ version.current_version);
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.loading_done", version.loading_done);
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.latest_version", version.latest_version);
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.current_version_is_drafted",
+ version.current_version_is_drafted);
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.current_version_is_a_prerelease",
+ version.current_version_is_a_prerelease);
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.current_version_publish_in_remote",
+ version.current_version_publish_in_remote);
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.latest_prerelease_version_from_remote",
+ version.latest_prerelease_version_from_remote);
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.need_upgrade", version.NeedUpgrade());
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.current_version_released",
+ version.CurrentVersionReleased());
+ ModuleManager::GetInstance()->UpsertRTValue(
+ GetModuleIdentifier(), "version.current_a_withdrawn_version",
+ version.VersionWithdrawn());
+ MODULE_LOG_DEBUG("register software information to rt done");
+}
} // namespace GpgFrontend::Module::Integrated::VersionCheckingModule