aboutsummaryrefslogtreecommitdiffstats
path: root/src/m_ver_check/UpdateTab.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/m_ver_check/UpdateTab.cpp')
-rw-r--r--src/m_ver_check/UpdateTab.cpp69
1 files changed, 51 insertions, 18 deletions
diff --git a/src/m_ver_check/UpdateTab.cpp b/src/m_ver_check/UpdateTab.cpp
index 64c2a86..acd1cdf 100644
--- a/src/m_ver_check/UpdateTab.cpp
+++ b/src/m_ver_check/UpdateTab.cpp
@@ -38,7 +38,7 @@ UpdateTab::UpdateTab(QWidget* parent)
: QWidget(parent), current_version_(GFProjectVersion()) {
auto* layout = new QVBoxLayout();
- auto* current_version_box = new QGroupBox(tr("Current Version Information"));
+ 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") +
@@ -48,9 +48,9 @@ UpdateTab::UpdateTab(QWidget* parent)
latest_version_label_ = new QLabel();
current_version_layout->addWidget(current_version_label_);
current_version_layout->addWidget(latest_version_label_);
- current_version_box->setLayout(current_version_layout);
+ current_version_box_->setLayout(current_version_layout);
- auto* upgrade_info_box = new QGroupBox(tr("Upgrade Information"));
+ upgrade_info_box_ = new QGroupBox(tr("Upgrade Information"));
auto* upgrade_info_layout = new QVBoxLayout();
upgrade_label_ = new QLabel();
upgrade_label_->setWordWrap(true);
@@ -61,20 +61,24 @@ UpdateTab::UpdateTab(QWidget* parent)
pb_->setTextVisible(false);
upgrade_info_layout->addWidget(upgrade_label_);
upgrade_info_layout->addWidget(pb_);
- upgrade_info_box->setLayout(upgrade_info_layout);
+ upgrade_info_box_->setLayout(upgrade_info_layout);
- auto* release_note_box = new QGroupBox(tr("Release Notes"));
+ 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);
+ release_note_box_->setLayout(release_note_layout);
- layout->addWidget(current_version_box);
- layout->addWidget(upgrade_info_box);
- layout->addWidget(release_note_box);
+ current_version_box_->hide();
+ release_note_box_->hide();
+ upgrade_info_box_->hide();
+
+ layout->addWidget(current_version_box_);
+ layout->addWidget(upgrade_info_box_);
+ layout->addWidget(release_note_box_);
setLayout(layout);
}
@@ -107,6 +111,21 @@ void UpdateTab::slot_show_version_status() {
if (is_loading_done == 0) {
MLogDebug("version info loading haven't been done yet.");
+
+ upgrade_label_->setText(
+ "<center>" +
+ tr("Unable to retrieve the latest version information. This may be "
+ "due "
+ "to a network issue or the server being unavailable.") +
+ "</center><center>" +
+ tr("Please check your internet connection or try again later.") +
+ "</center><center>" + tr("Alternatively, you can visit the") +
+ " <a "
+ "href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" +
+ tr("official download page") + "</a> " +
+ tr("to check for the latest stable version.") + "</center>");
+ upgrade_label_->show();
+ upgrade_info_box_->show();
return;
}
@@ -131,61 +150,75 @@ void UpdateTab::slot_show_version_status() {
GFGetModuleID(), GFModuleStrDup("version.release_note"),
GFModuleStrDup("")));
+ FLOG_INFO("latest version from GitHub: %1", latest_version);
+
latest_version_label_->setText("<center><b>" +
tr("Latest Version From Github") + ": " +
latest_version + "</b></center>");
+ current_version_box_->show();
if (is_need_upgrade != 0) {
upgrade_label_->setText(
"<center>" + tr("Your current version is outdated.") +
"</center><center>" + tr("Click") +
- " <a href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" +
+ " <a "
+ "href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" +
tr("here") + "</a> " + tr("to download the latest stable version.") +
"</center>");
upgrade_label_->show();
+ upgrade_info_box_->show();
} else if (is_current_a_withdrawn_version != 0) {
upgrade_label_->setText(
"<center>" +
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/\">" +
+ " <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_info_box_->show();
+ } else if (!latest_version.trimmed().isEmpty() &&
+ is_current_version_released == 0) {
upgrade_label_->setText(
"<center>" +
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/\">" +
+ " <a "
+ "href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" +
tr("here") + "</a> " + tr("to download the latest stable version.") +
"</center>");
upgrade_label_->show();
+ upgrade_info_box_->show();
} else if (is_git_commit_hash_mismatch != 0) {
upgrade_label_->setText(
"<center>" +
tr("The current version's commit hash does not match the official "
"release. This may indicate a modified or unofficial build.") +
"</center><center>" + tr("Click") +
- " <a href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" +
+ " <a "
+ "href=\"https://www.gpgfrontend.bktus.com/overview/downloads/\">" +
tr("here") + "</a> " +
tr("to verify your installation or download the official version.") +
"</center>");
upgrade_label_->show();
+ upgrade_info_box_->show();
} else {
- upgrade_label_->setText(
- "<center>" +
- tr("You are using the latest stable version. No action is required.") +
- "</center>");
+ upgrade_label_->setText("<center>" +
+ tr("You are using the latest stable version. No "
+ "action is required.") +
+ "</center>");
upgrade_label_->show();
+ upgrade_info_box_->show();
}
if (!release_note.trimmed().isEmpty()) {
release_note_viewer_->clear();
release_note_viewer_->setMarkdown(release_note);
release_note_viewer_->show();
+ release_note_box_->show();
}
}