Skip to content

Commit 213b59c

Browse files
committed
refactor: replace QMessageBox with InfoBar for update notifications
1 parent a37d65a commit 213b59c

1 file changed

Lines changed: 28 additions & 15 deletions

File tree

src/app/view/settings_page.cpp

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55

66
#include <FluentQtWidgets/Dialogs/FolderListDialog.h>
77
#include <FluentQtWidgets/Settings/SettingCard.h>
8+
#include <FluentQtWidgets/Widgets/Button.h>
89
#include <FluentQtWidgets/Widgets/ComboBox.h>
10+
#include <FluentQtWidgets/Widgets/InfoBar.h>
911

1012
#include <QtCore/QCoreApplication>
1113
#include <QtCore/QDir>
@@ -377,34 +379,45 @@ void SettingsPage::handleUpdateCheckFinished(bool ok,
377379
if(m_updateCard) {
378380
m_updateCard->setContent(QStringLiteral("检查失败:%1").arg(message));
379381
}
380-
QMessageBox::warning(this, QStringLiteral("检查更新失败"), message);
382+
InfoBar::error(QStringLiteral("检查更新失败"),
383+
message,
384+
Qt::Horizontal,
385+
true,
386+
3500,
387+
InfoBarPosition::TopRight,
388+
window());
381389
return;
382390
}
383391

384392
if(!updateAvailable) {
385393
if(m_updateCard) {
386394
m_updateCard->setContent(QStringLiteral("当前已是最新版本 %1").arg(currentVersion));
387395
}
388-
QMessageBox::information(this,
389-
QStringLiteral("检查更新"),
390-
QStringLiteral("当前已是最新版本:%1").arg(currentVersion));
396+
InfoBar::success(QStringLiteral("当前已是最新版本"),
397+
QStringLiteral("版本 %1").arg(currentVersion),
398+
Qt::Horizontal,
399+
true,
400+
2200,
401+
InfoBarPosition::TopRight,
402+
window());
391403
return;
392404
}
393405

394406
if(m_updateCard) {
395407
m_updateCard->setContent(QStringLiteral("发现新版本 %1").arg(latestVersion));
396408
}
397409

398-
QMessageBox messageBox(this);
399-
messageBox.setIcon(QMessageBox::Information);
400-
messageBox.setWindowTitle(QStringLiteral("发现新版本"));
401-
messageBox.setText(QStringLiteral("当前版本:%1\n最新版本:%2").arg(currentVersion, latestVersion));
402-
messageBox.setInformativeText(QStringLiteral("可以打开 GitHub Releases 下载最新版本。"));
403-
QPushButton *openButton = messageBox.addButton(QStringLiteral("打开发布页"), QMessageBox::AcceptRole);
404-
messageBox.addButton(QStringLiteral("稍后"), QMessageBox::RejectRole);
405-
messageBox.exec();
406-
407-
if(messageBox.clickedButton() == openButton && releaseUrl.isValid()) {
410+
auto *bar = InfoBar::info(QStringLiteral("发现新版本"),
411+
QStringLiteral("当前 %1,最新 %2").arg(currentVersion, latestVersion),
412+
Qt::Horizontal,
413+
true,
414+
10000,
415+
InfoBarPosition::TopRight,
416+
window());
417+
auto *openButton = new PushButton(icon(FluentIcon::Link), QStringLiteral("打开发布页"), bar);
418+
openButton->setEnabled(releaseUrl.isValid());
419+
bar->addWidget(openButton);
420+
connect(openButton, &PushButton::clicked, this, [releaseUrl]() {
408421
QDesktopServices::openUrl(releaseUrl);
409-
}
422+
});
410423
}

0 commit comments

Comments
 (0)