diff options
| author | saturneric <[email protected]> | 2024-11-21 21:05:06 +0000 | 
|---|---|---|
| committer | saturneric <[email protected]> | 2024-11-21 21:05:06 +0000 | 
| commit | 49642fc03dde919ea98fd87823aee4d9a804ebd4 (patch) | |
| tree | 0691705702f197c87fc64a6c09e303a986ba0198 /src | |
| parent | feat: cache key server data for 5 min (diff) | |
| download | Modules-49642fc03dde919ea98fd87823aee4d9a804ebd4.tar.gz Modules-49642fc03dde919ea98fd87823aee4d9a804ebd4.zip | |
feat: show release note of latest version and improve ui structure
Diffstat (limited to '')
| -rw-r--r-- | src/m_ver_check/UpdateTab.cpp | 116 | ||||
| -rw-r--r-- | src/m_ver_check/UpdateTab.h | 11 | ||||
| -rw-r--r-- | src/m_ver_check/VersionCheckTask.cpp | 3 | ||||
| -rw-r--r-- | src/m_ver_check/VersionCheckingModule.cpp | 2 | 
4 files changed, 77 insertions, 55 deletions
| diff --git a/src/m_ver_check/UpdateTab.cpp b/src/m_ver_check/UpdateTab.cpp index 11c637a..9dd281e 100644 --- a/src/m_ver_check/UpdateTab.cpp +++ b/src/m_ver_check/UpdateTab.cpp @@ -30,60 +30,69 @@  #include "GFModuleCommonUtils.hpp"  #include "GFSDKBasic.h" -#include "GFSDKLog.h"  #include "GFSDKModule.h"  #include "VersionCheckTask.h"  #include "VersionCheckingModule.h" -UpdateTab::UpdateTab(QWidget* parent) : QWidget(parent) { -  auto* layout = new QGridLayout(); - -  current_version_ = GFProjectVersion(); - -  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); +UpdateTab::UpdateTab(QWidget* parent) +    : QWidget(parent), current_version_(GFProjectVersion()) { +  auto* layout = new QVBoxLayout(); +  auto* current_version_box = new QGroupBox(tr("Current Version Information")); +  auto* current_version_layout = new QVBoxLayout();    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); +  current_version_layout->addWidget(current_version_label_); +  current_version_layout->addWidget(latest_version_label_); +  current_version_box->setLayout(current_version_layout); +  auto* upgrade_info_box = new QGroupBox(tr("Upgrade Information")); +  auto* upgrade_info_layout = new QVBoxLayout();    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); +  upgrade_info_layout->addWidget(upgrade_label_); +  upgrade_info_layout->addWidget(pb_); +  upgrade_info_box->setLayout(upgrade_info_layout); + +  auto* release_note_box = new QGroupBox(tr("Release Notes")); +  auto* release_note_layout = new QVBoxLayout(); +  release_note_viewer_ = new QTextEdit(); +  release_note_viewer_->setReadOnly(true); +  release_note_viewer_->setAcceptRichText(true); +  release_note_viewer_->hide(); +  release_note_layout->addWidget(release_note_viewer_); +  release_note_box->setLayout(release_note_layout); -  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); +  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); + +  layout->addWidget(current_version_box); +  layout->addWidget(upgrade_info_box); +  layout->addWidget(release_note_box); +  layout->addWidget(tips_label);    setLayout(layout);  }  void UpdateTab::showEvent(QShowEvent* event) {    QWidget::showEvent(event); -  MLogDebug("loading version loading info from rt");    auto is_loading_done = GFModuleRetrieveRTValueOrDefaultBool(        GFGetModuleID(), GFModuleStrDup("version.loading_done"), 0); @@ -103,7 +112,6 @@ void UpdateTab::showEvent(QShowEvent* event) {  }  void UpdateTab::slot_show_version_status() { -  MLogDebug("loading version info from rt");    this->pb_->setHidden(true);    auto is_loading_done = GFModuleRetrieveRTValueOrDefaultBool( @@ -128,45 +136,55 @@ void UpdateTab::slot_show_version_status() {        GFGetModuleID(), GFModuleStrDup("version.latest_version"),        GFModuleStrDup(""))); +  QString const release_note = UDUP(GFModuleRetrieveRTValueOrDefault( +      GFGetModuleID(), GFModuleStrDup("version.release_note"), +      GFModuleStrDup(""))); +    latest_version_label_->setText("<center><b>" +                                   tr("Latest Version From Github") + ": " +                                   latest_version + "</b></center>");    if (is_need_upgrade != 0) {      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>" + tr("Your current version is outdated.") + +        "</center><center>" + tr("Click") + +        " <a href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" + +        tr("here") + "</a> " + tr("to download the latest stable version.") +          "</center>");      upgrade_label_->show();    } else if (is_current_a_withdrawn_version != 0) {      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.") + +        tr("This version has critical issues and has been withdrawn. Please " +           "stop using it immediately.") + +        "</center><center>" + tr("Click") + +        " <a href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" + +        tr("here") + "</a> " + tr("to download the latest stable version.") +          "</center>");      upgrade_label_->show();    } else if (is_current_version_released == 0) {      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/overview/downloads/\">" + -        tr("Here") + "</a> " + tr("to download the latest stable version.") + +        tr("This is an unreleased version, possibly a beta. If stability is " +           "important to you, please avoid using this version.") + +        "</center><center>" + tr("Click") + +        " <a href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" + +        tr("here") + "</a> " + tr("to download the latest stable version.") + +        "</center>"); +    upgrade_label_->show(); +  } else { +    upgrade_label_->setText( +        "<center>" + +        tr("You are using the latest stable version. No action is required.") +          "</center>");      upgrade_label_->show();    } + +  if (!release_note.trimmed().isEmpty()) { +    release_note_viewer_->clear(); +    release_note_viewer_->setMarkdown(release_note); +    release_note_viewer_->show(); +  }  }  auto UpdateTabFactory(const char* id) -> void* { return new UpdateTab(); }
\ No newline at end of file diff --git a/src/m_ver_check/UpdateTab.h b/src/m_ver_check/UpdateTab.h index 92f1b2f..7616200 100644 --- a/src/m_ver_check/UpdateTab.h +++ b/src/m_ver_check/UpdateTab.h @@ -37,11 +37,12 @@  class UpdateTab : public QWidget {    Q_OBJECT -  QLabel* current_version_label_;  ///< -  QLabel* latest_version_label_;   ///< -  QLabel* upgrade_label_;          ///< -  QProgressBar* pb_;               ///< -  QString current_version_;        ///< +  QLabel* current_version_label_;   ///< +  QLabel* latest_version_label_;    ///< +  QLabel* upgrade_label_;           ///< +  QProgressBar* pb_;                ///< +  QTextEdit* release_note_viewer_;  ///< +  QString current_version_;         ///<   public:    /** diff --git a/src/m_ver_check/VersionCheckTask.cpp b/src/m_ver_check/VersionCheckTask.cpp index 6cb5af1..38572cc 100644 --- a/src/m_ver_check/VersionCheckTask.cpp +++ b/src/m_ver_check/VersionCheckTask.cpp @@ -193,6 +193,9 @@ void VersionCheckTask::slot_fill_grt_with_version_info(    GFModuleUpsertRTValueBool(        GFGetModuleID(), GFModuleStrDup("version.current_a_withdrawn_version"),        version.VersionWithdrawn() ? 1 : 0); + +  GFModuleUpsertRTValue(GFGetModuleID(), GFModuleStrDup("version.release_note"), +                        GFModuleStrDup(version.release_note.toUtf8()));    GFModuleUpsertRTValueBool(GFGetModuleID(),                              GFModuleStrDup("version.loading_done"),                              version.loading_done ? 1 : 0); diff --git a/src/m_ver_check/VersionCheckingModule.cpp b/src/m_ver_check/VersionCheckingModule.cpp index e9daf59..723e833 100644 --- a/src/m_ver_check/VersionCheckingModule.cpp +++ b/src/m_ver_check/VersionCheckingModule.cpp @@ -44,7 +44,7 @@  #include "VersionCheckTask.h"  GF_MODULE_API_DEFINE("com.bktus.gpgfrontend.module.version_checking", -                     "VersionChecking", "1.0.0", +                     "VersionChecking", "1.1.0",                       "Try checking GpgFrontend version.", "Saturneric");  DEFINE_TRANSLATIONS_STRUCTURE(ModuleVersionChecking); | 
