From 0ccbaed12b9c0ceeff667b661d54ba178fef28da Mon Sep 17 00:00:00 2001 From: ronso0 Date: Mon, 12 Feb 2024 10:46:32 +0100 Subject: [PATCH 1/3] Preferences: touch multi-sampling option only with QML enabled --- src/preferences/dialog/dlgprefinterface.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/preferences/dialog/dlgprefinterface.cpp b/src/preferences/dialog/dlgprefinterface.cpp index 4da8e1d507b..d53d05e17cc 100644 --- a/src/preferences/dialog/dlgprefinterface.cpp +++ b/src/preferences/dialog/dlgprefinterface.cpp @@ -325,6 +325,10 @@ void DlgPrefInterface::slotResetToDefaults() { comboBoxScreensaver->setCurrentIndex(comboBoxScreensaver->findData( static_cast(mixxx::ScreenSaverPreference::PREVENT_ON))); +#ifdef MIXXX_USE_QML + mulitSamplingComboBox->setCurrentIndex(4); // 4x MSAA +#endif + #ifdef Q_OS_IOS // Tooltips off everywhere. radioButtonTooltipsOff->setChecked(true); @@ -446,18 +450,25 @@ void DlgPrefInterface::slotApply() { static_cast(screensaverComboBoxState)); } +#ifdef MIXXX_USE_QML int multiSampling = mulitSamplingComboBox->itemData( mulitSamplingComboBox->currentIndex()) .toInt(); m_pConfig->set(ConfigKey(kPreferencesGroup, kMultiSamplingKey), ConfigValue(multiSampling)); +#endif - if (locale != m_localeOnUpdate || scaleFactor != m_dScaleFactor || - multiSampling != m_multiSampling) { + if (locale != m_localeOnUpdate || scaleFactor != m_dScaleFactor +#ifdef MIXXX_USE_QML + || multiSampling != m_multiSampling +#endif + ) { notifyRebootNecessary(); // hack to prevent showing the notification when pressing "Okay" after "Apply" m_localeOnUpdate = locale; m_dScaleFactor = scaleFactor; +#ifdef MIXXX_USE_QML m_multiSampling = multiSampling; +#endif } // load skin/scheme if necessary From 45d9ec85f64019c1ef29ff118d230dc517e395b9 Mon Sep 17 00:00:00 2001 From: ronso0 Date: Mon, 12 Feb 2024 14:32:23 +0100 Subject: [PATCH 2/3] Pref Interface, multi-sampling: fix typo mulit -> multi --- src/preferences/dialog/dlgprefinterface.cpp | 30 +++++++++---------- src/preferences/dialog/dlgprefinterfacedlg.ui | 5 ++-- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/preferences/dialog/dlgprefinterface.cpp b/src/preferences/dialog/dlgprefinterface.cpp index d53d05e17cc..c8de4de02ac 100644 --- a/src/preferences/dialog/dlgprefinterface.cpp +++ b/src/preferences/dialog/dlgprefinterface.cpp @@ -182,26 +182,26 @@ DlgPrefInterface::DlgPrefInterface( // Multi-Sampling #ifdef MIXXX_USE_QML if (CmdlineArgs::Instance().isQml()) { - mulitSamplingComboBox->clear(); - mulitSamplingComboBox->addItem(tr("Disabled"), 0); - mulitSamplingComboBox->addItem(tr("2x MSAA"), 2); - mulitSamplingComboBox->addItem(tr("4x MSAA"), 4); - mulitSamplingComboBox->addItem(tr("8x MSAA"), 8); - mulitSamplingComboBox->addItem(tr("16x MSAA"), 16); + multiSamplingComboBox->clear(); + multiSamplingComboBox->addItem(tr("Disabled"), 0); + multiSamplingComboBox->addItem(tr("2x MSAA"), 2); + multiSamplingComboBox->addItem(tr("4x MSAA"), 4); + multiSamplingComboBox->addItem(tr("8x MSAA"), 8); + multiSamplingComboBox->addItem(tr("16x MSAA"), 16); m_multiSampling = m_pConfig->getValue(ConfigKey(kPreferencesGroup, kMultiSamplingKey), 4); - int mulitSamplingIndex = mulitSamplingComboBox->findData(m_multiSampling); - if (mulitSamplingIndex != -1) { - mulitSamplingComboBox->setCurrentIndex(mulitSamplingIndex); + int multiSamplingIndex = multiSamplingComboBox->findData(m_multiSampling); + if (multiSamplingIndex != -1) { + multiSamplingComboBox->setCurrentIndex(multiSamplingIndex); } else { - mulitSamplingComboBox->setCurrentIndex(0); + multiSamplingComboBox->setCurrentIndex(0); m_pConfig->set(ConfigKey(kPreferencesGroup, kMultiSamplingKey), ConfigValue(0)); } } else #endif { - mulitSamplingLabel->hide(); - mulitSamplingComboBox->hide(); + multiSamplingLabel->hide(); + multiSamplingComboBox->hide(); } // Tooltip configuration @@ -326,7 +326,7 @@ void DlgPrefInterface::slotResetToDefaults() { static_cast(mixxx::ScreenSaverPreference::PREVENT_ON))); #ifdef MIXXX_USE_QML - mulitSamplingComboBox->setCurrentIndex(4); // 4x MSAA + multiSamplingComboBox->setCurrentIndex(4); // 4x MSAA #endif #ifdef Q_OS_IOS @@ -451,8 +451,8 @@ void DlgPrefInterface::slotApply() { } #ifdef MIXXX_USE_QML - int multiSampling = mulitSamplingComboBox->itemData( - mulitSamplingComboBox->currentIndex()) + int multiSampling = multiSamplingComboBox->itemData( + multiSamplingComboBox->currentIndex()) .toInt(); m_pConfig->set(ConfigKey(kPreferencesGroup, kMultiSamplingKey), ConfigValue(multiSampling)); #endif diff --git a/src/preferences/dialog/dlgprefinterfacedlg.ui b/src/preferences/dialog/dlgprefinterfacedlg.ui index 590363608b9..68215939eb9 100644 --- a/src/preferences/dialog/dlgprefinterfacedlg.ui +++ b/src/preferences/dialog/dlgprefinterfacedlg.ui @@ -270,14 +270,14 @@ - + Multi-Sampling - + @@ -294,6 +294,7 @@ radioButtonTooltipsOff radioButtonTooltipsLibrary radioButtonTooltipsLibraryAndSkin + multiSamplingComboBox From 37997096971e12f36ef3ea3d3bedb746f7c6e6df Mon Sep 17 00:00:00 2001 From: ronso0 Date: Mon, 12 Feb 2024 14:36:35 +0100 Subject: [PATCH 3/3] WIP use enum for QML multi-sampling mode --- src/preferences/constants.h | 12 +++++ src/preferences/dialog/dlgprefinterface.cpp | 49 +++++++++++++-------- src/preferences/dialog/dlgprefinterface.h | 2 +- src/qml/qmlconfigproxy.cpp | 5 ++- 4 files changed, 47 insertions(+), 21 deletions(-) diff --git a/src/preferences/constants.h b/src/preferences/constants.h index 57f96a3b247..796e31e0c9d 100644 --- a/src/preferences/constants.h +++ b/src/preferences/constants.h @@ -2,6 +2,8 @@ namespace mixxx { +Q_NAMESPACE + // Don't change these constants since they are stored in user configuration // files. enum class TooltipsPreference { @@ -17,4 +19,14 @@ enum class ScreenSaverPreference { PREVENT_ON_PLAY = 2 }; +enum class MultiSamplingMode { + Disabled = 0, + Two = 2, + Four = 4, + Eight = 8, + Sixteen = 16 +}; + +Q_ENUM_NS(MultiSamplingMode); + } // namespace mixxx diff --git a/src/preferences/dialog/dlgprefinterface.cpp b/src/preferences/dialog/dlgprefinterface.cpp index c8de4de02ac..463f9c84208 100644 --- a/src/preferences/dialog/dlgprefinterface.cpp +++ b/src/preferences/dialog/dlgprefinterface.cpp @@ -183,19 +183,28 @@ DlgPrefInterface::DlgPrefInterface( #ifdef MIXXX_USE_QML if (CmdlineArgs::Instance().isQml()) { multiSamplingComboBox->clear(); - multiSamplingComboBox->addItem(tr("Disabled"), 0); - multiSamplingComboBox->addItem(tr("2x MSAA"), 2); - multiSamplingComboBox->addItem(tr("4x MSAA"), 4); - multiSamplingComboBox->addItem(tr("8x MSAA"), 8); - multiSamplingComboBox->addItem(tr("16x MSAA"), 16); - - m_multiSampling = m_pConfig->getValue(ConfigKey(kPreferencesGroup, kMultiSamplingKey), 4); - int multiSamplingIndex = multiSamplingComboBox->findData(m_multiSampling); + multiSamplingComboBox->addItem(tr("Disabled"), + QVariant::fromValue(mixxx::MultiSamplingMode::Disabled)); + multiSamplingComboBox->addItem(tr("2x MSAA"), + QVariant::fromValue(mixxx::MultiSamplingMode::Two)); + multiSamplingComboBox->addItem(tr("4x MSAA"), + QVariant::fromValue(mixxx::MultiSamplingMode::Four)); + multiSamplingComboBox->addItem(tr("8x MSAA"), + QVariant::fromValue(mixxx::MultiSamplingMode::Eight)); + multiSamplingComboBox->addItem(tr("16x MSAA"), + QVariant::fromValue(mixxx::MultiSamplingMode::Sixteen)); + + m_multiSampling = m_pConfig->getValue( + ConfigKey(kPreferencesGroup, kMultiSamplingKey), + mixxx::MultiSamplingMode::Four); + int multiSamplingIndex = multiSamplingComboBox->findData( + static_cast(m_multiSampling)); if (multiSamplingIndex != -1) { multiSamplingComboBox->setCurrentIndex(multiSamplingIndex); } else { - multiSamplingComboBox->setCurrentIndex(0); - m_pConfig->set(ConfigKey(kPreferencesGroup, kMultiSamplingKey), ConfigValue(0)); + multiSamplingComboBox->setCurrentIndex(0); // Disabled + m_pConfig->setValue(ConfigKey(kPreferencesGroup, kMultiSamplingKey), + mixxx::MultiSamplingMode::Disabled); } } else #endif @@ -326,7 +335,8 @@ void DlgPrefInterface::slotResetToDefaults() { static_cast(mixxx::ScreenSaverPreference::PREVENT_ON))); #ifdef MIXXX_USE_QML - multiSamplingComboBox->setCurrentIndex(4); // 4x MSAA + multiSamplingComboBox->setCurrentIndex(multiSamplingComboBox->findData( + static_cast(mixxx::MultiSamplingMode::Four))); // 4x MSAA #endif #ifdef Q_OS_IOS @@ -427,8 +437,7 @@ void DlgPrefInterface::slotApply() { m_pConfig->set(ConfigKey(kConfigGroup, kSchemeKey), m_colorScheme); } - QString locale = ComboBoxLocale->itemData( - ComboBoxLocale->currentIndex()).toString(); + QString locale = ComboBoxLocale->currentData().toString(); m_pConfig->set(ConfigKey(kConfigGroup, kLocaleKey), locale); double scaleFactor = spinBoxScaleFactor->value() / 100; @@ -442,8 +451,7 @@ void DlgPrefInterface::slotApply() { emit tooltipModeChanged(m_tooltipMode); // screensaver mode update - int screensaverComboBoxState = comboBoxScreensaver->itemData( - comboBoxScreensaver->currentIndex()).toInt(); + int screensaverComboBoxState = comboBoxScreensaver->currentData().toInt(); int screensaverConfiguredState = static_cast(m_pScreensaverManager->status()); if (screensaverComboBoxState != screensaverConfiguredState) { m_pScreensaverManager->setStatus( @@ -451,10 +459,13 @@ void DlgPrefInterface::slotApply() { } #ifdef MIXXX_USE_QML - int multiSampling = multiSamplingComboBox->itemData( - multiSamplingComboBox->currentIndex()) - .toInt(); - m_pConfig->set(ConfigKey(kPreferencesGroup, kMultiSamplingKey), ConfigValue(multiSampling)); + mixxx::MultiSamplingMode multiSampling = + multiSamplingComboBox->currentData() + .value(); + // m_pConfig->setValue(ConfigKey(kPreferencesGroup, + // kMultiSamplingKey), ConfigValue(multiSampling)); + m_pConfig->setValue( + ConfigKey(kPreferencesGroup, kMultiSamplingKey), multiSampling); #endif if (locale != m_localeOnUpdate || scaleFactor != m_dScaleFactor diff --git a/src/preferences/dialog/dlgprefinterface.h b/src/preferences/dialog/dlgprefinterface.h index bd735d949c9..5c62b6bd9f4 100644 --- a/src/preferences/dialog/dlgprefinterface.h +++ b/src/preferences/dialog/dlgprefinterface.h @@ -68,7 +68,7 @@ class DlgPrefInterface : public DlgPreferencePage, public Ui::DlgPrefControlsDlg QString m_colorScheme; QString m_colorSchemeOnUpdate; QString m_localeOnUpdate; - int m_multiSampling; + mixxx::MultiSamplingMode m_multiSampling; mixxx::TooltipsPreference m_tooltipMode; double m_dScaleFactor; double m_minScaleFactor; diff --git a/src/qml/qmlconfigproxy.cpp b/src/qml/qmlconfigproxy.cpp index 216e36d0db5..6045f1fab4a 100644 --- a/src/qml/qmlconfigproxy.cpp +++ b/src/qml/qmlconfigproxy.cpp @@ -2,6 +2,7 @@ #include "moc_qmlconfigproxy.cpp" #include "preferences/colorpalettesettings.h" +#include "preferences/constants.h" namespace { QVariantList paletteToQColorList(const ColorPalette& palette) { @@ -36,7 +37,9 @@ QVariantList QmlConfigProxy::getTrackColorPalette() { } int QmlConfigProxy::getMultiSamplingLevel() { - return m_pConfig->getValue(ConfigKey(kPreferencesGroup, kMultiSamplingKey), 0); + return m_pConfig->getValue( + ConfigKey(kPreferencesGroup, kMultiSamplingKey), + static_cast(mixxx::MultiSamplingMode::Disabled)); } // static