diff --git a/src/common/config.cpp b/src/common/config.cpp index 284407914..048571a5a 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -55,6 +55,7 @@ static bool isDebugDump = false; static bool isShaderDebug = false; static bool isShowSplash = false; static bool isAutoUpdate = false; +static bool isAlwaysShowChangelog = false; static bool isNullGpu = false; static bool shouldCopyGPUBuffers = false; static bool shouldDumpShaders = false; @@ -237,6 +238,10 @@ bool autoUpdate() { return isAutoUpdate; } +bool alwaysShowChangelog() { + return isAlwaysShowChangelog; +} + bool nullGpu() { return isNullGpu; } @@ -337,6 +342,10 @@ void setAutoUpdate(bool enable) { isAutoUpdate = enable; } +void setAlwaysShowChangelog(bool enable) { + isAlwaysShowChangelog = enable; +} + void setNullGpu(bool enable) { isNullGpu = enable; } @@ -678,6 +687,7 @@ void load(const std::filesystem::path& path) { } isShowSplash = toml::find_or(general, "showSplash", true); isAutoUpdate = toml::find_or(general, "autoUpdate", false); + isAlwaysShowChangelog = toml::find_or(general, "alwaysShowChangelog", false); separateupdatefolder = toml::find_or(general, "separateUpdateEnabled", false); compatibilityData = toml::find_or(general, "compatibilityEnabled", false); checkCompatibilityOnStartup = @@ -811,6 +821,7 @@ void save(const std::filesystem::path& path) { data["General"]["chooseHomeTab"] = chooseHomeTab; data["General"]["showSplash"] = isShowSplash; data["General"]["autoUpdate"] = isAutoUpdate; + data["General"]["alwaysShowChangelog"] = isAlwaysShowChangelog; data["General"]["separateUpdateEnabled"] = separateupdatefolder; data["General"]["compatibilityEnabled"] = compatibilityData; data["General"]["checkCompatibilityOnStartup"] = checkCompatibilityOnStartup; @@ -932,6 +943,7 @@ void setDefaultValues() { isShaderDebug = false; isShowSplash = false; isAutoUpdate = false; + isAlwaysShowChangelog = false; isNullGpu = false; shouldDumpShaders = false; vblankDivider = 1; diff --git a/src/common/config.h b/src/common/config.h index 012f9b830..3a140c0c8 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -57,6 +57,7 @@ bool debugDump(); bool collectShadersForDebug(); bool showSplash(); bool autoUpdate(); +bool alwaysShowChangelog(); bool nullGpu(); bool copyGPUCmdBuffers(); bool dumpShaders(); @@ -68,6 +69,7 @@ void setDebugDump(bool enable); void setCollectShaderForDebug(bool enable); void setShowSplash(bool enable); void setAutoUpdate(bool enable); +void setAlwaysShowChangelog(bool enable); void setNullGpu(bool enable); void setAllowHDR(bool enable); void setCopyGPUCmdBuffers(bool enable); diff --git a/src/qt_gui/check_update.cpp b/src/qt_gui/check_update.cpp index 37554abfb..ac1aa9279 100644 --- a/src/qt_gui/check_update.cpp +++ b/src/qt_gui/check_update.cpp @@ -198,29 +198,45 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate, QString updateChannel = QString::fromStdString(Config::getUpdateChannel()); - QString updateText = - QString("


" + tr("Update Channel") + ":
" + updateChannel + "
" + - tr("Current Version") + ": %1 (%2)
" + tr("Latest Version") + - ": %3 (%4)

" + tr("Do you want to update?") + "

") - .arg(currentRev.left(7), currentDate, latestRev, latestDate); + QString updateText = QString("

" + tr("Update Channel") + ": " + updateChannel + + "
" + "" + "" + "" + "" + "" + "" + "" + "" + "
" + + tr("Current Version") + + ":%1(%2)
" + + tr("Latest Version") + + ":%3(%4)

") + .arg(currentRev.left(7), currentDate, latestRev, latestDate); + QLabel* updateLabel = new QLabel(updateText, this); layout->addWidget(updateLabel); // Setup bottom layout with action buttons - QHBoxLayout* bottomLayout = new QHBoxLayout(); autoUpdateCheckBox = new QCheckBox(tr("Check for Updates at Startup"), this); + layout->addWidget(autoUpdateCheckBox); + + QHBoxLayout* updatePromptLayout = new QHBoxLayout(); + QLabel* updatePromptLabel = new QLabel(tr("Do you want to update?"), this); + updatePromptLayout->addWidget(updatePromptLabel); + yesButton = new QPushButton(tr("Update"), this); noButton = new QPushButton(tr("No"), this); yesButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); noButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); - bottomLayout->addWidget(autoUpdateCheckBox); QSpacerItem* spacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); - bottomLayout->addItem(spacer); + updatePromptLayout->addItem(spacer); + updatePromptLayout->addWidget(yesButton); + updatePromptLayout->addWidget(noButton); - bottomLayout->addWidget(yesButton); - bottomLayout->addWidget(noButton); - layout->addLayout(bottomLayout); + layout->addLayout(updatePromptLayout); // Don't show changelog button if: // The current version is a pre-release and the version to be downloaded is a release. @@ -241,19 +257,27 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate, connect(toggleButton, &QPushButton::clicked, [this, textField, toggleButton, currentRev, latestRev, downloadUrl, latestDate, currentDate]() { - QString updateChannel = QString::fromStdString(Config::getUpdateChannel()); if (!textField->isVisible()) { requestChangelog(currentRev, latestRev, downloadUrl, latestDate, currentDate); textField->setVisible(true); toggleButton->setText(tr("Hide Changelog")); adjustSize(); + textField->setFixedWidth(textField->width() + 20); } else { textField->setVisible(false); toggleButton->setText(tr("Show Changelog")); adjustSize(); } }); + + if (Config::alwaysShowChangelog()) { + requestChangelog(currentRev, latestRev, downloadUrl, latestDate, currentDate); + textField->setVisible(true); + toggleButton->setText(tr("Hide Changelog")); + adjustSize(); + textField->setFixedWidth(textField->width() + 20); + } } connect(yesButton, &QPushButton::clicked, this, [this, downloadUrl]() { diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp index 4d9fa1621..8d69c58cf 100644 --- a/src/qt_gui/settings_dialog.cpp +++ b/src/qt_gui/settings_dialog.cpp @@ -137,9 +137,15 @@ SettingsDialog::SettingsDialog(std::span physical_devices, #if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0)) connect(ui->updateCheckBox, &QCheckBox::stateChanged, this, [](int state) { Config::setAutoUpdate(state == Qt::Checked); }); + + connect(ui->changelogCheckBox, &QCheckBox::stateChanged, this, + [](int state) { Config::setAlwaysShowChangelog(state == Qt::Checked); }); #else connect(ui->updateCheckBox, &QCheckBox::checkStateChanged, this, [](Qt::CheckState state) { Config::setAutoUpdate(state == Qt::Checked); }); + + connect(ui->changelogCheckBox, &QCheckBox::checkStateChanged, this, + [](Qt::CheckState state) { Config::setAlwaysShowChangelog(state == Qt::Checked); }); #endif connect(ui->updateComboBox, &QComboBox::currentTextChanged, this, @@ -391,6 +397,8 @@ void SettingsDialog::LoadValuesFromConfig() { #ifdef ENABLE_UPDATER ui->updateCheckBox->setChecked(toml::find_or(data, "General", "autoUpdate", false)); + ui->changelogCheckBox->setChecked( + toml::find_or(data, "General", "alwaysShowChangelog", false)); std::string updateChannel = toml::find_or(data, "General", "updateChannel", ""); if (updateChannel != "Release" && updateChannel != "Nightly") { if (Common::isRelease) { @@ -651,6 +659,7 @@ void SettingsDialog::UpdateSettings() { Config::setCollectShaderForDebug(ui->collectShaderCheckBox->isChecked()); Config::setCopyGPUCmdBuffers(ui->copyGPUBuffersCheckBox->isChecked()); Config::setAutoUpdate(ui->updateCheckBox->isChecked()); + Config::setAlwaysShowChangelog(ui->changelogCheckBox->isChecked()); Config::setUpdateChannel(ui->updateComboBox->currentText().toStdString()); Config::setChooseHomeTab(ui->chooseHomeTabComboBox->currentText().toStdString()); Config::setCompatibilityEnabled(ui->enableCompatibilityCheckBox->isChecked()); diff --git a/src/qt_gui/settings_dialog.ui b/src/qt_gui/settings_dialog.ui index 1b688a9b9..53bae664f 100644 --- a/src/qt_gui/settings_dialog.ui +++ b/src/qt_gui/settings_dialog.ui @@ -74,7 +74,7 @@ 0 0 946 - 535 + 536 @@ -346,7 +346,7 @@ Update - + 6 @@ -465,6 +465,13 @@ + + + + Always Show Changelog + + + @@ -488,7 +495,7 @@ 0 0 946 - 535 + 536 @@ -937,7 +944,7 @@ 0 0 946 - 535 + 536 @@ -1181,7 +1188,7 @@ 0 0 946 - 535 + 536 @@ -1325,7 +1332,7 @@ 0 0 946 - 535 + 536 @@ -1609,7 +1616,7 @@ 0 0 946 - 535 + 536 @@ -1699,7 +1706,7 @@ 0 0 946 - 535 + 536 diff --git a/src/qt_gui/translations/da_DK.ts b/src/qt_gui/translations/da_DK.ts index a3f66a8f1..1b1a15a3c 100644 --- a/src/qt_gui/translations/da_DK.ts +++ b/src/qt_gui/translations/da_DK.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Tjek for opdateringer ved start + + Always Show Changelog + Vis altid changelog + Update Channel Opdateringskanal diff --git a/src/qt_gui/translations/de.ts b/src/qt_gui/translations/de.ts index 83b73628b..65cdd5f4a 100644 --- a/src/qt_gui/translations/de.ts +++ b/src/qt_gui/translations/de.ts @@ -752,6 +752,10 @@ Check for Updates at Startup Beim Start nach Updates suchen + + Always Show Changelog + Changelog immer anzeigen + Update Channel Update-Kanal diff --git a/src/qt_gui/translations/el.ts b/src/qt_gui/translations/el.ts index 8d6237d9f..ad7bed9c1 100644 --- a/src/qt_gui/translations/el.ts +++ b/src/qt_gui/translations/el.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Έλεγχος για ενημερώσεις κατά την εκκίνηση + + Always Show Changelog + Πάντα εμφάνιση ιστορικού αλλαγών + Update Channel Κανάλι Ενημέρωσης diff --git a/src/qt_gui/translations/en.ts b/src/qt_gui/translations/en.ts index 98711f804..c3de0062a 100644 --- a/src/qt_gui/translations/en.ts +++ b/src/qt_gui/translations/en.ts @@ -740,6 +740,10 @@ Check for Updates at Startup Check for Updates at Startup + + Always Show Changelog + Always Show Changelog + Update Channel Update Channel diff --git a/src/qt_gui/translations/es_ES.ts b/src/qt_gui/translations/es_ES.ts index 12a214fa9..2b8405ed1 100644 --- a/src/qt_gui/translations/es_ES.ts +++ b/src/qt_gui/translations/es_ES.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Buscar actualizaciones al iniciar + + Always Show Changelog + Mostrar siempre el registro de cambios + Update Channel Canal de Actualización diff --git a/src/qt_gui/translations/fa_IR.ts b/src/qt_gui/translations/fa_IR.ts index ba937b08f..3569e9adc 100644 --- a/src/qt_gui/translations/fa_IR.ts +++ b/src/qt_gui/translations/fa_IR.ts @@ -728,6 +728,10 @@ Check for Updates at Startup بررسی به‌روزرسانی‌ها در زمان راه‌اندازی + + Always Show Changelog + نمایش دائم تاریخچه تغییرات + Update Channel کانال به‌روزرسانی diff --git a/src/qt_gui/translations/fi.ts b/src/qt_gui/translations/fi.ts index 3ffa5df60..b2494df2a 100644 --- a/src/qt_gui/translations/fi.ts +++ b/src/qt_gui/translations/fi.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Tarkista Päivitykset Käynnistäessä + + Always Show Changelog + Näytä aina muutoshistoria + Update Channel Päivityskanava diff --git a/src/qt_gui/translations/fr.ts b/src/qt_gui/translations/fr.ts index 97be56eb2..0a28c712f 100644 --- a/src/qt_gui/translations/fr.ts +++ b/src/qt_gui/translations/fr.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Vérif. maj au démarrage + + Always Show Changelog + Afficher toujours le changelog + Update Channel Canal de Mise à Jour diff --git a/src/qt_gui/translations/hu_HU.ts b/src/qt_gui/translations/hu_HU.ts index ced43daa0..0d679cc4c 100644 --- a/src/qt_gui/translations/hu_HU.ts +++ b/src/qt_gui/translations/hu_HU.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Frissítések keresése indításkor + + Always Show Changelog + Mindig mutasd a változásnaplót + Update Channel Frissítési Csatorna diff --git a/src/qt_gui/translations/id.ts b/src/qt_gui/translations/id.ts index bc8e8324d..1ddd75b45 100644 --- a/src/qt_gui/translations/id.ts +++ b/src/qt_gui/translations/id.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Periksa pembaruan saat mulai + + Always Show Changelog + Selalu Tampilkan Riwayat Perubahan + Update Channel Saluran Pembaruan diff --git a/src/qt_gui/translations/it.ts b/src/qt_gui/translations/it.ts index c65aef498..aec2a818b 100644 --- a/src/qt_gui/translations/it.ts +++ b/src/qt_gui/translations/it.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Verifica aggiornamenti all’avvio + + Always Show Changelog + Mostra sempre il changelog + Update Channel Canale di Aggiornamento diff --git a/src/qt_gui/translations/ja_JP.ts b/src/qt_gui/translations/ja_JP.ts index d566b005d..cca2f1005 100644 --- a/src/qt_gui/translations/ja_JP.ts +++ b/src/qt_gui/translations/ja_JP.ts @@ -728,6 +728,10 @@ Check for Updates at Startup 起動時に更新確認 + + Always Show Changelog + 常に変更履歴を表示 + Update Channel アップデートチャネル diff --git a/src/qt_gui/translations/ko_KR.ts b/src/qt_gui/translations/ko_KR.ts index 799e706a7..d297e41a3 100644 --- a/src/qt_gui/translations/ko_KR.ts +++ b/src/qt_gui/translations/ko_KR.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Check for Updates at Startup + + Always Show Changelog + 항상 변경 사항 표시 + Update Channel Update Channel diff --git a/src/qt_gui/translations/lt_LT.ts b/src/qt_gui/translations/lt_LT.ts index 4800ab7bb..e4a2dc5b4 100644 --- a/src/qt_gui/translations/lt_LT.ts +++ b/src/qt_gui/translations/lt_LT.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Tikrinti naujinimus paleidus + + Always Show Changelog + Visada rodyti pakeitimų žurnalą + Update Channel Atnaujinimo Kanalas diff --git a/src/qt_gui/translations/nl.ts b/src/qt_gui/translations/nl.ts index 0975f1b14..2b939046d 100644 --- a/src/qt_gui/translations/nl.ts +++ b/src/qt_gui/translations/nl.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Bij opstart op updates controleren + + Always Show Changelog + Altijd changelog tonen + Update Channel Updatekanaal diff --git a/src/qt_gui/translations/pl_PL.ts b/src/qt_gui/translations/pl_PL.ts index e90bbef38..c9d2daa9a 100644 --- a/src/qt_gui/translations/pl_PL.ts +++ b/src/qt_gui/translations/pl_PL.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Sprawdź aktualizacje przy starcie + + Always Show Changelog + Zawsze pokazuj dziennik zmian + Update Channel Kanał Aktualizacji diff --git a/src/qt_gui/translations/pt_BR.ts b/src/qt_gui/translations/pt_BR.ts index 83dd0a6b7..097d17d70 100644 --- a/src/qt_gui/translations/pt_BR.ts +++ b/src/qt_gui/translations/pt_BR.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Verificar Atualizações ao Iniciar + + Always Show Changelog + Sempre Mostrar o Changelog + Update Channel Canal de Atualização diff --git a/src/qt_gui/translations/ro_RO.ts b/src/qt_gui/translations/ro_RO.ts index ccafb59e4..1d2741bd4 100644 --- a/src/qt_gui/translations/ro_RO.ts +++ b/src/qt_gui/translations/ro_RO.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Verifică actualizări la pornire + + Always Show Changelog + Arată întotdeauna jurnalul modificărilor + Update Channel Canal de Actualizare diff --git a/src/qt_gui/translations/ru_RU.ts b/src/qt_gui/translations/ru_RU.ts index 8ade23e1c..985e40a49 100644 --- a/src/qt_gui/translations/ru_RU.ts +++ b/src/qt_gui/translations/ru_RU.ts @@ -796,6 +796,10 @@ Check for Updates at Startup Проверка при запуске + + Always Show Changelog + Всегда показывать журнал изменений + Update Channel Канал обновления diff --git a/src/qt_gui/translations/sq.ts b/src/qt_gui/translations/sq.ts index 41a941a08..20cce6f7d 100644 --- a/src/qt_gui/translations/sq.ts +++ b/src/qt_gui/translations/sq.ts @@ -736,6 +736,10 @@ Check for Updates at Startup Kontrollo për përditësime në nisje + + Always Show Changelog + Shfaq gjithmonë regjistrin e ndryshimeve + Update Channel Kanali i përditësimit diff --git a/src/qt_gui/translations/sv.ts b/src/qt_gui/translations/sv.ts index 2a68c3f77..60ebf5432 100644 --- a/src/qt_gui/translations/sv.ts +++ b/src/qt_gui/translations/sv.ts @@ -1423,6 +1423,10 @@ Check for Updates at Startup Leta efter uppdateringar vid uppstart + + Always Show Changelog + Visa alltid ändringsloggen + Update Channel Uppdateringskanal diff --git a/src/qt_gui/translations/tr_TR.ts b/src/qt_gui/translations/tr_TR.ts index cd2b4636c..25878cb0f 100644 --- a/src/qt_gui/translations/tr_TR.ts +++ b/src/qt_gui/translations/tr_TR.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Başlangıçta güncellemeleri kontrol et + + Always Show Changelog + Her zaman değişiklik günlüğünü göster + Update Channel Güncelleme Kanalı diff --git a/src/qt_gui/translations/uk_UA.ts b/src/qt_gui/translations/uk_UA.ts index 3beb07285..3b880b9ab 100644 --- a/src/qt_gui/translations/uk_UA.ts +++ b/src/qt_gui/translations/uk_UA.ts @@ -793,6 +793,10 @@ Check for Updates at Startup Перевіряти оновлення під час запуску + + Always Show Changelog + Завжди показувати журнал змін + Update Channel Канал оновлення diff --git a/src/qt_gui/translations/vi_VN.ts b/src/qt_gui/translations/vi_VN.ts index 47ef07ace..a85f5b2c8 100644 --- a/src/qt_gui/translations/vi_VN.ts +++ b/src/qt_gui/translations/vi_VN.ts @@ -728,6 +728,10 @@ Check for Updates at Startup Kiểm tra cập nhật khi khởi động + + Always Show Changelog + Luôn hiển thị nhật ký thay đổi + Update Channel Kênh Cập Nhật diff --git a/src/qt_gui/translations/zh_CN.ts b/src/qt_gui/translations/zh_CN.ts index 00cc9ae92..6d1f52c5d 100644 --- a/src/qt_gui/translations/zh_CN.ts +++ b/src/qt_gui/translations/zh_CN.ts @@ -728,7 +728,6 @@ Guest Debug Markers Geust 调试标记 - Update 更新 @@ -737,6 +736,10 @@ Check for Updates at Startup 启动时检查更新 + + Always Show Changelog + 始终显示变更日志 + Update Channel 更新频道 diff --git a/src/qt_gui/translations/zh_TW.ts b/src/qt_gui/translations/zh_TW.ts index e05519d7a..a3a574ea5 100644 --- a/src/qt_gui/translations/zh_TW.ts +++ b/src/qt_gui/translations/zh_TW.ts @@ -728,6 +728,10 @@ Check for Updates at Startup 啟動時檢查更新 + + Always Show Changelog + 始終顯示變更紀錄 + Update Channel 更新頻道