aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/help/AboutDialog.cpp
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-07-29 19:29:56 +0000
committersaturneric <[email protected]>2024-07-29 19:29:56 +0000
commitfa90ec4b5315b9e70a44a9625c143ce253f0e885 (patch)
tree8ffa82e33522de03974d6d0289aa831b4fd6ebdf /src/ui/dialog/help/AboutDialog.cpp
parentfix: correct urls at appdata.xml (diff)
parentMerge branch 'develop' of github.com:saturneric/GpgFrontend into develop (diff)
downloadGpgFrontend-fa90ec4b5315b9e70a44a9625c143ce253f0e885.tar.gz
GpgFrontend-fa90ec4b5315b9e70a44a9625c143ce253f0e885.zip
Merge branch 'develop'
Diffstat (limited to 'src/ui/dialog/help/AboutDialog.cpp')
-rw-r--r--src/ui/dialog/help/AboutDialog.cpp160
1 files changed, 12 insertions, 148 deletions
diff --git a/src/ui/dialog/help/AboutDialog.cpp b/src/ui/dialog/help/AboutDialog.cpp
index 0735ddba..14cb76ad 100644
--- a/src/ui/dialog/help/AboutDialog.cpp
+++ b/src/ui/dialog/help/AboutDialog.cpp
@@ -32,7 +32,7 @@
#include "core/module/ModuleManager.h"
#include "core/utils/BuildInfoUtils.h"
-#include "ui/dialog/help/GnupgTab.h"
+#include "ui/UIModuleManager.h"
namespace GpgFrontend::UI {
@@ -46,20 +46,18 @@ AboutDialog::AboutDialog(const QString& default_tab_name, QWidget* parent)
tab_widget->addTab(info_tab, tr("About GpgFrontend"));
- if (Module::IsModuleActivate(kGnuPGInfoGatheringModuleID)) {
- auto* gnupg_tab = new GnupgTab();
- tab_widget->addTab(gnupg_tab, tr("GnuPG"));
- }
-
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");
- connect(tab_widget, &QTabWidget::currentChanged, this,
- [&](int index) { GF_UI_LOG_DEBUG("current index: {}", index); });
+ for (const auto& entry : entries) {
+ auto* widget = entry.GetWidget();
+ if (widget != nullptr) {
+ tab_widget->addTab(widget,
+ entry.GetMetaDataByDefault("TabTitle", tr("Unnamed")));
+ }
+ }
int default_index = 0;
for (int i = 0; i < tab_widget->count(); i++) {
@@ -90,15 +88,14 @@ void AboutDialog::showEvent(QShowEvent* ev) { QDialog::showEvent(ev); }
InfoTab::InfoTab(QWidget* parent) : QWidget(parent) {
const auto gpgme_version = Module::RetrieveRTValueTypedOrDefault<>(
"core", "gpgme.version", QString{"2.0.0"});
- GF_UI_LOG_DEBUG("got gpgme version from rt: {}", gpgme_version);
auto pixmap = QPixmap(":/icons/gpgfrontend_logo.png");
pixmap = pixmap.scaled(128, 128);
auto text =
"<center><h2>" + qApp->applicationName() + "</h2></center>" +
- "<center><b>" + "v" + qApp->applicationVersion() + "</b></center>" +
- "<center>" + GetProjectBuildGitVersion() + "</center>" + "<br><center>" +
+ "<center><b>" + GetProjectVersion() + "</b></center>" + "<center>" +
+ GetProjectBuildGitVersion() + "</center>" + "<br><center>" +
tr("GpgFrontend is an easy-to-use, compact, cross-platform, "
"and installation-free GnuPG Frontend."
"It visualizes most of the common operations of GnuPG."
@@ -152,137 +149,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