From 99c0aadabeabd794ae0a3b9f22745cf4b56f296e Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Tue, 22 Mar 2022 21:15:57 +0100 Subject: [PATCH] ensure we only store update channel not localized in settings Signed-off-by: Matthieu Gallien --- src/gui/generalsettings.cpp | 41 +++++++++++++++++++++++++++++++++---- src/gui/generalsettings.h | 2 +- 2 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index 589ab7afe..d132e3ca4 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -304,10 +304,43 @@ void GeneralSettings::slotUpdateInfo() this, &GeneralSettings::slotUpdateChannelChanged, Qt::UniqueConnection); } -void GeneralSettings::slotUpdateChannelChanged(const QString &channel) +void GeneralSettings::slotUpdateChannelChanged(const QString &translatedChannel) { - if (channel == ConfigFile().updateChannel()) + const auto updateChannelToLocalized = [](const QString &channel) { + auto decodedTranslatedChannel = QString{}; + + if (channel == QStringLiteral("stable")) { + decodedTranslatedChannel = tr("stable"); + } else if (channel == QStringLiteral("beta")) { + decodedTranslatedChannel = tr("beta"); + } + + return decodedTranslatedChannel; + }; + + const auto updateChannelFromLocalized = [](const int index) { + auto channel = QString{}; + + switch (index) + { + case 0: + channel = QStringLiteral("stable"); + break; + case 1: + channel = QStringLiteral("beta"); + break; + default: + channel = QString{}; + } + + return channel; + }; + + const auto channel = updateChannelFromLocalized(_ui->updateChannel->currentIndex()); + + if (translatedChannel == ConfigFile().updateChannel()) { return; + } auto msgBox = new QMessageBox( QMessageBox::Warning, @@ -327,7 +360,7 @@ void GeneralSettings::slotUpdateChannelChanged(const QString &channel) this); auto acceptButton = msgBox->addButton(tr("Change update channel"), QMessageBox::AcceptRole); msgBox->addButton(tr("Cancel"), QMessageBox::RejectRole); - connect(msgBox, &QMessageBox::finished, msgBox, [this, channel, msgBox, acceptButton] { + connect(msgBox, &QMessageBox::finished, msgBox, [this, channel, msgBox, acceptButton, updateChannelToLocalized] { msgBox->deleteLater(); if (msgBox->clickedButton() == acceptButton) { ConfigFile().setUpdateChannel(channel); @@ -342,7 +375,7 @@ void GeneralSettings::slotUpdateChannelChanged(const QString &channel) } #endif } else { - _ui->updateChannel->setCurrentText(ConfigFile().updateChannel()); + _ui->updateChannel->setCurrentText(updateChannelToLocalized(ConfigFile().updateChannel())); } }); msgBox->open(); diff --git a/src/gui/generalsettings.h b/src/gui/generalsettings.h index 8243fb241..6c7134817 100644 --- a/src/gui/generalsettings.h +++ b/src/gui/generalsettings.h @@ -55,7 +55,7 @@ private slots: void slotShowLegalNotice(); #if defined(BUILD_UPDATER) void slotUpdateInfo(); - void slotUpdateChannelChanged(const QString &channel); + void slotUpdateChannelChanged(const QString &translatedChannel); void slotUpdateCheckNow(); void slotToggleAutoUpdateCheck(); #endif