Skip to content

Commit

Permalink
refactor(preferences): use enum for QML multi-sampling mode
Browse files Browse the repository at this point in the history
  • Loading branch information
ronso0 authored and Swiftb0y committed Feb 12, 2024
1 parent fee2afb commit 76450d0
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 21 deletions.
8 changes: 8 additions & 0 deletions src/preferences/constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@ enum class ScreenSaver {
OnPlay = 2
};

enum class MultiSamplingMode {
Disabled = 0,
Two = 2,
Four = 4,
Eight = 8,
Sixteen = 16
};

} // namespace constants
} // namespace preferences
} // namespace mixxx
48 changes: 29 additions & 19 deletions src/preferences/dialog/dlgprefinterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <QList>
#include <QLocale>
#include <QScreen>
#include <QVariant>
#include <QtGlobal>

#include "control/controlobject.h"
Expand Down Expand Up @@ -185,19 +186,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(constants::MultiSamplingMode::Disabled));
multiSamplingComboBox->addItem(tr("2x MSAA"),
QVariant::fromValue(constants::MultiSamplingMode::Two));
multiSamplingComboBox->addItem(tr("4x MSAA"),
QVariant::fromValue(constants::MultiSamplingMode::Four));
multiSamplingComboBox->addItem(tr("8x MSAA"),
QVariant::fromValue(constants::MultiSamplingMode::Eight));
multiSamplingComboBox->addItem(tr("16x MSAA"),
QVariant::fromValue(constants::MultiSamplingMode::Sixteen));

m_multiSampling = m_pConfig->getValue<constants::MultiSamplingMode>(
ConfigKey(kPreferencesGroup, kMultiSamplingKey),
constants::MultiSamplingMode::Four);
int multiSamplingIndex = multiSamplingComboBox->findData(
static_cast<int>(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),
constants::MultiSamplingMode::Disabled);
}
} else
#endif
Expand Down Expand Up @@ -328,7 +338,8 @@ void DlgPrefInterface::slotResetToDefaults() {
static_cast<int>(constants::ScreenSaver::On)));

#ifdef MIXXX_USE_QML
multiSamplingComboBox->setCurrentIndex(4); // 4x MSAA
multiSamplingComboBox->setCurrentIndex(multiSamplingComboBox->findData(
static_cast<int>(constants::MultiSamplingMode::Four))); // 4x MSAA
#endif

#ifdef Q_OS_IOS
Expand Down Expand Up @@ -429,8 +440,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;
Expand All @@ -444,19 +454,19 @@ 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<int>(m_pScreensaverManager->status());
if (screensaverComboBoxState != screensaverConfiguredState) {
m_pScreensaverManager->setStatus(
static_cast<constants::ScreenSaver>(screensaverComboBoxState));
}

#ifdef MIXXX_USE_QML
int multiSampling = multiSamplingComboBox->itemData(
multiSamplingComboBox->currentIndex())
.toInt();
m_pConfig->set(ConfigKey(kPreferencesGroup, kMultiSamplingKey), ConfigValue(multiSampling));
constants::MultiSamplingMode multiSampling =
multiSamplingComboBox->currentData()
.value<constants::MultiSamplingMode>();
m_pConfig->setValue<constants::MultiSamplingMode>(
ConfigKey(kPreferencesGroup, kMultiSamplingKey), multiSampling);
#endif

if (locale != m_localeOnUpdate || scaleFactor != m_dScaleFactor
Expand Down
2 changes: 1 addition & 1 deletion src/preferences/dialog/dlgprefinterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class DlgPrefInterface : public DlgPreferencePage, public Ui::DlgPrefControlsDlg
QString m_colorScheme;
QString m_colorSchemeOnUpdate;
QString m_localeOnUpdate;
int m_multiSampling;
mixxx::preferences::constants::MultiSamplingMode m_multiSampling;
mixxx::preferences::constants::Tooltips m_tooltipMode;
double m_dScaleFactor;
double m_minScaleFactor;
Expand Down
5 changes: 4 additions & 1 deletion src/qml/qmlconfigproxy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

#include "moc_qmlconfigproxy.cpp"
#include "preferences/colorpalettesettings.h"
#include "preferences/constants.h"

namespace {
QVariantList paletteToQColorList(const ColorPalette& palette) {
Expand Down Expand Up @@ -36,7 +37,9 @@ QVariantList QmlConfigProxy::getTrackColorPalette() {
}

int QmlConfigProxy::getMultiSamplingLevel() {
return m_pConfig->getValue(ConfigKey(kPreferencesGroup, kMultiSamplingKey), 0);
return static_cast<int>(m_pConfig->getValue(
ConfigKey(kPreferencesGroup, kMultiSamplingKey),
mixxx::preferences::constants::MultiSamplingMode::Disabled));
}

// static
Expand Down

0 comments on commit 76450d0

Please sign in to comment.