@@ -461,7 +461,10 @@ void OptionsDialog::saveBehaviorTabOptions() const
461
461
pref->setLocale (locale);
462
462
463
463
#ifdef Q_OS_WIN
464
- pref->setStyle (m_ui->comboStyle ->currentText ());
464
+ if (const QVariant systemStyle = m_ui->comboStyle ->currentData (); systemStyle.isValid ())
465
+ pref->setStyle (systemStyle.toString ());
466
+ else
467
+ pref->setStyle (m_ui->comboStyle ->currentText ());
465
468
#endif
466
469
467
470
#ifdef QBT_HAS_COLORSCHEME_OPTION
@@ -1698,17 +1701,27 @@ bool OptionsDialog::isSplashScreenDisabled() const
1698
1701
void OptionsDialog::initializeStyleCombo ()
1699
1702
{
1700
1703
#ifdef Q_OS_WIN
1704
+ m_ui->labelStyleHint ->setText (tr (" %1 is recommended for best compatibility with Windows dark mode"
1705
+ , " Fusion is recommended for best compatibility with Windows dark mode" ).arg (u" Fusion" _s));
1706
+ m_ui->comboStyle ->addItem (tr (" System" , " System default Qt style" ), u" system" _s);
1707
+ m_ui->comboStyle ->setItemData (0 , tr (" Let Qt decide the style for this system" ), Qt::ToolTipRole);
1708
+ m_ui->comboStyle ->insertSeparator (1 );
1709
+
1701
1710
QStringList styleNames = QStyleFactory::keys ();
1702
1711
std::sort (styleNames.begin (), styleNames.end (), Utils::Compare::NaturalLessThan<Qt::CaseInsensitive>());
1703
1712
m_ui->comboStyle ->addItems (styleNames);
1704
1713
const QString prefStyleName = Preferences::instance ()->getStyle ();
1705
1714
const QString selectedStyleName = prefStyleName.isEmpty () ? QApplication::style ()->name () : prefStyleName;
1706
- m_ui->comboStyle ->setCurrentText (selectedStyleName);
1715
+
1716
+ if (selectedStyleName.compare (u" system" _s, Qt::CaseInsensitive) != 0 )
1717
+ m_ui->comboStyle ->setCurrentText (selectedStyleName);
1707
1718
#else
1708
1719
m_ui->labelStyle ->hide ();
1709
1720
m_ui->comboStyle ->hide ();
1721
+ m_ui->labelStyleHint ->hide ();
1710
1722
m_ui->UISettingsBoxLayout ->removeWidget (m_ui->labelStyle );
1711
1723
m_ui->UISettingsBoxLayout ->removeWidget (m_ui->comboStyle );
1724
+ m_ui->UISettingsBoxLayout ->removeWidget (m_ui->labelStyleHint );
1712
1725
m_ui->UISettingsBoxLayout ->removeItem (m_ui->spacerStyle );
1713
1726
#endif
1714
1727
}
0 commit comments