From fb40275507a524028f000a841745fc6178ed5c43 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Mon, 14 Oct 2024 14:39:54 +0800 Subject: [PATCH] Don't change combobox index after selection Also keep the list sorted. PR #21599. --- src/gui/optionsdialog.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index d642fab1b..7c2e7cf12 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -30,6 +30,7 @@ #include "optionsdialog.h" +#include #include #include #include @@ -60,6 +61,7 @@ #include "base/rss/rss_session.h" #include "base/torrentfileguard.h" #include "base/torrentfileswatcher.h" +#include "base/utils/compare.h" #include "base/utils/io.h" #include "base/utils/misc.h" #include "base/utils/net.h" @@ -1687,18 +1689,12 @@ bool OptionsDialog::isSplashScreenDisabled() const void OptionsDialog::initializeStyleCombo() { #ifdef Q_OS_WIN + QStringList styleNames = QStyleFactory::keys(); + std::sort(styleNames.begin(), styleNames.end(), Utils::Compare::NaturalLessThan()); + m_ui->comboStyle->addItems(styleNames); const QString prefStyleName = Preferences::instance()->getStyle(); const QString selectedStyleName = prefStyleName.isEmpty() ? QApplication::style()->name() : prefStyleName; - QStringList styleNames = QStyleFactory::keys(); - for (qsizetype i = 1, stylesCount = styleNames.size(); i < stylesCount; ++i) - { - if (selectedStyleName.compare(styleNames.at(i), Qt::CaseInsensitive) == 0) - { - styleNames.swapItemsAt(0, i); - break; - } - } - m_ui->comboStyle->addItems(styleNames); + m_ui->comboStyle->setCurrentText(selectedStyleName); #else m_ui->labelStyle->hide(); m_ui->comboStyle->hide();