aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/help
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-07-12 18:38:16 +0000
committersaturneric <[email protected]>2024-07-12 18:38:16 +0000
commitd1d6859e2a50a78f57388ebf0a06f0636d4d0910 (patch)
tree5ac6a57abc73902aba8979ed9b67816b1e85fb9a /src/ui/dialog/help
parentfeat: adjust modules loading path (diff)
downloadGpgFrontend-d1d6859e2a50a78f57388ebf0a06f0636d4d0910.tar.gz
GpgFrontend-d1d6859e2a50a78f57388ebf0a06f0636d4d0910.zip
feat: add some ui apis to sdk
Diffstat (limited to 'src/ui/dialog/help')
-rw-r--r--src/ui/dialog/help/AboutDialog.cpp146
-rw-r--r--src/ui/dialog/help/AboutDialog.h41
2 files changed, 10 insertions, 177 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
diff --git a/src/ui/dialog/help/AboutDialog.h b/src/ui/dialog/help/AboutDialog.h
index 6d152afb..0b9ca5ae 100644
--- a/src/ui/dialog/help/AboutDialog.h
+++ b/src/ui/dialog/help/AboutDialog.h
@@ -66,47 +66,6 @@ class TranslatorsTab : public QWidget {
};
/**
- * @brief Class containing the main tab of about dialog
- *
- */
-class UpdateTab : public QWidget {
- Q_OBJECT
-
- QLabel* current_version_label_; ///<
- QLabel* latest_version_label_; ///<
- QLabel* upgrade_label_; ///<
- QProgressBar* pb_; ///<
- QString current_version_; ///<
-
- public:
- /**
- * @brief Construct a new Update Tab object
- *
- * @param parent
- */
- explicit UpdateTab(QWidget* parent = nullptr);
-
- protected:
- void showEvent(QShowEvent* event) override;
-
- private slots:
- /**
- * @brief
- *
- * @param version
- */
- void slot_show_version_status();
-
- signals:
- /**
- * @brief
- *
- * @param data
- */
- void SignalReplyFromUpdateServer(QByteArray data);
-};
-
-/**
* @brief Class for handling the about dialog
*
*/