diff options
author | Jan Holthuis <jholthuis@mixxx.org> | 2021-07-16 12:19:43 +0200 |
---|---|---|
committer | Jan Holthuis <jholthuis@mixxx.org> | 2021-07-16 12:41:50 +0200 |
commit | b0e0a32f0ddbafdf4f353c61ec27fb75f2eadffd (patch) | |
tree | cd15c4b8079cba7be5974daf5c02fa6928eb501d /src/preferences | |
parent | b4e905519d95f2423bc7144fa401dc5ff366bd01 (diff) |
MixxxMainWindow: Move tooltip mode setting into preferences
Instead of letting the `DlgPrefInterface` class hold a reference to the
`MixxxMainWindow` and call its `setToolTipsCfg` method directly, we just
update the config object and emit a signal that the main window can
connect to.
Diffstat (limited to 'src/preferences')
-rw-r--r-- | src/preferences/dialog/dlgpreferences.cpp | 15 | ||||
-rw-r--r-- | src/preferences/dialog/dlgpreferences.h | 4 | ||||
-rw-r--r-- | src/preferences/dialog/dlgprefinterface.cpp | 31 | ||||
-rw-r--r-- | src/preferences/dialog/dlgprefinterface.h | 3 |
4 files changed, 35 insertions, 18 deletions
diff --git a/src/preferences/dialog/dlgpreferences.cpp b/src/preferences/dialog/dlgpreferences.cpp index 61947724bf..5c33734fff 100644 --- a/src/preferences/dialog/dlgpreferences.cpp +++ b/src/preferences/dialog/dlgpreferences.cpp @@ -134,11 +134,16 @@ DlgPreferences::DlgPreferences( "ic_preferences_vinyl.svg"); #endif // __VINYLCONTROL__ - addPageWidget(PreferencesPage(new DlgPrefInterface(this, - mixxx, - pScreensaverManager, - pSkinLoader, - m_pConfig), + DlgPrefInterface* pInterfacePage = new DlgPrefInterface(this, + mixxx, + pScreensaverManager, + pSkinLoader, + m_pConfig); + connect(pInterfacePage, + &DlgPrefInterface::tooltipModeChanged, + this, + &DlgPreferences::tooltipModeChanged); + addPageWidget(PreferencesPage(pInterfacePage, new QTreeWidgetItem( contentsTreeWidget, QTreeWidgetItem::Type)), tr("Interface"), diff --git a/src/preferences/dialog/dlgpreferences.h b/src/preferences/dialog/dlgpreferences.h index e44646f48a..0ada7cfa7c 100644 --- a/src/preferences/dialog/dlgpreferences.h +++ b/src/preferences/dialog/dlgpreferences.h @@ -8,6 +8,7 @@ #include <memory> #include "control/controlpushbutton.h" +#include "preferences/constants.h" #include "preferences/dialog/dlgpreferencepage.h" #include "preferences/dialog/ui_dlgpreferencesdlg.h" #include "preferences/settingsmanager.h" @@ -106,6 +107,9 @@ class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg { // Emitted if the user clicks Reset to Defaults. void resetToDefaults(); + signals: + void tooltipModeChanged(mixxx::TooltipsPreference tooltipMode); + protected: bool eventFilter(QObject*, QEvent*); void moveEvent(QMoveEvent* e); diff --git a/src/preferences/dialog/dlgprefinterface.cpp b/src/preferences/dialog/dlgprefinterface.cpp index f4500912f4..32980e0110 100644 --- a/src/preferences/dialog/dlgprefinterface.cpp +++ b/src/preferences/dialog/dlgprefinterface.cpp @@ -410,7 +410,9 @@ void DlgPrefInterface::slotApply() { m_pConfig->set(ConfigKey("[Config]", "StartInFullscreen"), ConfigValue(checkBoxStartFullScreen->isChecked())); - m_mixxx->setToolTipsCfg(m_tooltipMode); + m_pConfig->set(ConfigKey("[Controls]", "Tooltips"), + ConfigValue(static_cast<int>(m_tooltipMode))); + emit tooltipModeChanged(m_tooltipMode); // screensaver mode update int screensaverComboBoxState = comboBoxScreensaver->itemData( @@ -436,17 +438,20 @@ void DlgPrefInterface::slotApply() { } void DlgPrefInterface::loadTooltipPreferenceFromConfig() { - mixxx::TooltipsPreference configTooltips = m_mixxx->getToolTipsCfg(); - switch (configTooltips) { - case mixxx::TooltipsPreference::TOOLTIPS_OFF: - radioButtonTooltipsOff->setChecked(true); - break; - case mixxx::TooltipsPreference::TOOLTIPS_ON: - radioButtonTooltipsLibraryAndSkin->setChecked(true); - break; - case mixxx::TooltipsPreference::TOOLTIPS_ONLY_IN_LIBRARY: - radioButtonTooltipsLibrary->setChecked(true); - break; + const auto tooltipMode = static_cast<mixxx::TooltipsPreference>( + m_pConfig->getValue(ConfigKey("[Controls]", "Tooltips"), + static_cast<int>(mixxx::TooltipsPreference::TOOLTIPS_ON))); + switch (tooltipMode) { + case mixxx::TooltipsPreference::TOOLTIPS_OFF: + radioButtonTooltipsOff->setChecked(true); + break; + case mixxx::TooltipsPreference::TOOLTIPS_ONLY_IN_LIBRARY: + radioButtonTooltipsLibrary->setChecked(true); + break; + case mixxx::TooltipsPreference::TOOLTIPS_ON: + default: + radioButtonTooltipsLibraryAndSkin->setChecked(true); + break; } - m_tooltipMode = configTooltips; + m_tooltipMode = tooltipMode; } diff --git a/src/preferences/dialog/dlgprefinterface.h b/src/preferences/dialog/dlgprefinterface.h index 4b54e2d951..6392d39104 100644 --- a/src/preferences/dialog/dlgprefinterface.h +++ b/src/preferences/dialog/dlgprefinterface.h @@ -50,6 +50,9 @@ class DlgPrefInterface : public DlgPreferencePage, public Ui::DlgPrefControlsDlg void slotSetScaleFactor(double newValue); void slotSetScaleFactorAuto(bool checked); + signals: + void tooltipModeChanged(mixxx::TooltipsPreference tooltipMode); + private: void notifyRebootNecessary(); void loadTooltipPreferenceFromConfig(); |