summaryrefslogtreecommitdiffstats
path: root/src/preferences
diff options
context:
space:
mode:
authorJan Holthuis <jholthuis@mixxx.org>2021-07-16 12:19:43 +0200
committerJan Holthuis <jholthuis@mixxx.org>2021-07-16 12:41:50 +0200
commitb0e0a32f0ddbafdf4f353c61ec27fb75f2eadffd (patch)
treecd15c4b8079cba7be5974daf5c02fa6928eb501d /src/preferences
parentb4e905519d95f2423bc7144fa401dc5ff366bd01 (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.cpp15
-rw-r--r--src/preferences/dialog/dlgpreferences.h4
-rw-r--r--src/preferences/dialog/dlgprefinterface.cpp31
-rw-r--r--src/preferences/dialog/dlgprefinterface.h3
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();