diff options
author | saturneric <[email protected]> | 2024-07-12 18:38:16 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-07-12 18:38:16 +0000 |
commit | d1d6859e2a50a78f57388ebf0a06f0636d4d0910 (patch) | |
tree | 5ac6a57abc73902aba8979ed9b67816b1e85fb9a /src/ui/dialog/help/AboutDialog.cpp | |
parent | feat: adjust modules loading path (diff) | |
download | GpgFrontend-d1d6859e2a50a78f57388ebf0a06f0636d4d0910.tar.gz GpgFrontend-d1d6859e2a50a78f57388ebf0a06f0636d4d0910.zip |
feat: add some ui apis to sdk
Diffstat (limited to 'src/ui/dialog/help/AboutDialog.cpp')
-rw-r--r-- | src/ui/dialog/help/AboutDialog.cpp | 146 |
1 files changed, 10 insertions, 136 deletions
diff --git a/src/ui/dialog/help/AboutDialog.cpp b/src/ui/dialog/help/AboutDialog.cpp index 6fe56d76..307dfca6 100644 --- a/src/ui/dialog/help/AboutDialog.cpp +++ b/src/ui/dialog/help/AboutDialog.cpp @@ -32,6 +32,7 @@ #include "core/module/ModuleManager.h" #include "core/utils/BuildInfoUtils.h" +#include "ui/UIModuleManager.h" #include "ui/dialog/help/GnupgTab.h" namespace GpgFrontend::UI { @@ -53,9 +54,15 @@ AboutDialog::AboutDialog(const QString& default_tab_name, QWidget* parent) tab_widget->addTab(translators_tab, tr("Translators")); - if (Module::IsModuleActivate(kVersionCheckingModuleID)) { - auto* update_tab = new UpdateTab(); - tab_widget->addTab(update_tab, tr("Update")); + auto entries = + UIModuleManager::GetInstance().QueryMountedEntries("AboutDialogTabs"); + + for (const auto& entry : entries) { + auto* widget = entry.GetWidget(); + if (widget != nullptr) { + tab_widget->addTab(widget, + entry.GetMetaDataByDefault("TabTitle", tr("Unnamed"))); + } } connect(tab_widget, &QTabWidget::currentChanged, this, @@ -152,137 +159,4 @@ TranslatorsTab::TranslatorsTab(QWidget* parent) : QWidget(parent) { setLayout(main_layout); } -UpdateTab::UpdateTab(QWidget* parent) : QWidget(parent) { - auto* layout = new QGridLayout(); - - current_version_ = GetProjectVersion(); - - auto* tips_label = new QLabel(); - tips_label->setText( - "<center>" + - tr("It is recommended that you always check the version " - "of GpgFrontend and upgrade to the latest version.") + - "</center><center>" + - tr("New versions not only represent new features, but " - "also often represent functional and security fixes.") + - "</center>"); - tips_label->setWordWrap(true); - - current_version_label_ = new QLabel(); - current_version_label_->setText("<center>" + tr("Current Version") + - tr(": ") + "<b>" + current_version_ + - "</b></center>"); - current_version_label_->setWordWrap(true); - - latest_version_label_ = new QLabel(); - latest_version_label_->setWordWrap(true); - - upgrade_label_ = new QLabel(); - upgrade_label_->setWordWrap(true); - upgrade_label_->setOpenExternalLinks(true); - upgrade_label_->setHidden(true); - - pb_ = new QProgressBar(); - pb_->setRange(0, 0); - pb_->setTextVisible(false); - - layout->addWidget(tips_label, 1, 0, 1, -1); - layout->addWidget(current_version_label_, 2, 0, 1, -1); - layout->addWidget(latest_version_label_, 3, 0, 1, -1); - layout->addWidget(upgrade_label_, 4, 0, 1, -1); - layout->addWidget(pb_, 5, 0, 1, -1); - layout->addItem( - new QSpacerItem(20, 10, QSizePolicy::Minimum, QSizePolicy::Fixed), 2, 1, - 1, 1); - - setLayout(layout); -} - -void UpdateTab::showEvent(QShowEvent* event) { - QWidget::showEvent(event); - GF_UI_LOG_DEBUG("loading version loading info from rt"); - - auto is_loading_done = Module::RetrieveRTValueTypedOrDefault<>( - kVersionCheckingModuleID, "version.loading_done", false); - - if (!is_loading_done) { - Module::ListenRTPublishEvent( - this, kVersionCheckingModuleID, "version.loading_done", - [=](Module::Namespace, Module::Key, int, std::any) { - GF_UI_LOG_DEBUG( - "version_checking module version.loading_done changed, calling " - "slot version upgrade"); - this->slot_show_version_status(); - }); - Module::TriggerEvent("CHECK_APPLICATION_VERSION"); - } else { - slot_show_version_status(); - } -} - -void UpdateTab::slot_show_version_status() { - GF_UI_LOG_DEBUG("loading version info from rt"); - this->pb_->setHidden(true); - - auto is_loading_done = Module::RetrieveRTValueTypedOrDefault<>( - kVersionCheckingModuleID, "version.loading_done", false); - - if (!is_loading_done) { - GF_UI_LOG_DEBUG("version info loading haven't been done yet."); - return; - } - - auto is_need_upgrade = Module::RetrieveRTValueTypedOrDefault<>( - kVersionCheckingModuleID, "version.need_upgrade", false); - - auto is_current_a_withdrawn_version = Module::RetrieveRTValueTypedOrDefault<>( - kVersionCheckingModuleID, "version.current_a_withdrawn_version", false); - - auto is_current_version_released = Module::RetrieveRTValueTypedOrDefault<>( - kVersionCheckingModuleID, "version.current_version_released", false); - - auto latest_version = Module::RetrieveRTValueTypedOrDefault<>( - kVersionCheckingModuleID, "version.latest_version", QString{}); - - latest_version_label_->setText("<center><b>" + - tr("Latest Version From Github") + ": " + - latest_version + "</b></center>"); - - if (is_need_upgrade) { - upgrade_label_->setText( - "<center>" + - tr("The current version is less than the latest version on " - "github.") + - "</center><center>" + tr("Please click") + - " <a " - "href=\"https://www.gpgfrontend.bktus.com/#/downloads\">" + - tr("Here") + "</a> " + tr("to download the latest stable version.") + - "</center>"); - upgrade_label_->show(); - } else if (is_current_a_withdrawn_version) { - upgrade_label_->setText( - "<center>" + - tr("This version has serious problems and has been withdrawn. " - "Please stop using it immediately.") + - "</center><center>" + tr("Please click") + - " <a " - "href=\"https://github.com/saturneric/GpgFrontend/releases\">" + - tr("Here") + "</a> " + tr("to download the latest stable version.") + - "</center>"); - upgrade_label_->show(); - } else if (!is_current_version_released) { - upgrade_label_->setText( - "<center>" + - tr("This version has not been released yet, it may be a beta " - "version. If you are not a tester and care about version " - "stability, please do not use this version.") + - "</center><center>" + tr("Please click") + - " <a " - "href=\"https://www.gpgfrontend.bktus.com/#/downloads\">" + - tr("Here") + "</a> " + tr("to download the latest stable version.") + - "</center>"); - upgrade_label_->show(); - } -} - } // namespace GpgFrontend::UI |