diff --git a/CMakeLists.txt b/CMakeLists.txt
index e9ff9d5b9f01..9b6f33d3f6ea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -684,6 +684,7 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/preferences/dialog/dlgprefeffectsdlg.ui
src/preferences/dialog/dlgprefeq.cpp
src/preferences/dialog/dlgprefeqdlg.ui
+ src/preferences/dialog/dlgpreferencepage.cpp
src/preferences/dialog/dlgpreferences.cpp
src/preferences/dialog/dlgpreferencesdlg.ui
src/preferences/dialog/dlgprefinterface.cpp
@@ -706,7 +707,6 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/preferences/dialog/dlgprefvinyldlg.ui
src/preferences/dialog/dlgprefwaveform.cpp
src/preferences/dialog/dlgprefwaveformdlg.ui
- src/preferences/dlgpreferencepage.cpp
src/preferences/effectsettingsmodel.cpp
src/preferences/colorpaletteeditor.cpp
src/preferences/colorpaletteeditormodel.cpp
diff --git a/res/images/ic_custom.svg b/res/images/ic_custom.svg
deleted file mode 100644
index 44a0fe3f680b..000000000000
--- a/res/images/ic_custom.svg
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
diff --git a/res/images/ic_mixxx_symbolic.svg b/res/images/ic_mixxx_symbolic.svg
deleted file mode 100644
index c51004a4556d..000000000000
--- a/res/images/ic_mixxx_symbolic.svg
+++ /dev/null
@@ -1,1308 +0,0 @@
-
-
-
-
diff --git a/res/images/ic_none.svg b/res/images/ic_none.svg
deleted file mode 100644
index 1d4ae648d3aa..000000000000
--- a/res/images/ic_none.svg
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
diff --git a/res/images/preferences/dark/ic_custom.svg b/res/images/preferences/dark/ic_custom.svg
new file mode 100644
index 000000000000..afb9881b2e68
--- /dev/null
+++ b/res/images/preferences/dark/ic_custom.svg
@@ -0,0 +1,5 @@
+
diff --git a/res/images/preferences/dark/ic_mixxx_symbolic.svg b/res/images/preferences/dark/ic_mixxx_symbolic.svg
new file mode 100644
index 000000000000..348a1f128747
--- /dev/null
+++ b/res/images/preferences/dark/ic_mixxx_symbolic.svg
@@ -0,0 +1,186 @@
+
diff --git a/res/images/preferences/dark/ic_none.svg b/res/images/preferences/dark/ic_none.svg
new file mode 100644
index 000000000000..ba2cb6a54267
--- /dev/null
+++ b/res/images/preferences/dark/ic_none.svg
@@ -0,0 +1,7 @@
+
diff --git a/res/images/preferences/light/ic_custom.svg b/res/images/preferences/light/ic_custom.svg
new file mode 100644
index 000000000000..0bb9cee123c7
--- /dev/null
+++ b/res/images/preferences/light/ic_custom.svg
@@ -0,0 +1,5 @@
+
diff --git a/res/images/preferences/light/ic_mixxx_symbolic.svg b/res/images/preferences/light/ic_mixxx_symbolic.svg
new file mode 100644
index 000000000000..968670f7d25a
--- /dev/null
+++ b/res/images/preferences/light/ic_mixxx_symbolic.svg
@@ -0,0 +1,186 @@
+
diff --git a/res/images/preferences/light/ic_none.svg b/res/images/preferences/light/ic_none.svg
new file mode 100644
index 000000000000..680b54637bdb
--- /dev/null
+++ b/res/images/preferences/light/ic_none.svg
@@ -0,0 +1,7 @@
+
diff --git a/res/mixxx.qrc b/res/mixxx.qrc
index 5ec55237df63..b73a94d650ae 100644
--- a/res/mixxx.qrc
+++ b/res/mixxx.qrc
@@ -9,6 +9,7 @@
images/library/ic_library_locked_tracklist.svg
images/library/cover_default.svg
+
images/library/ic_library_autodj.svg
images/library/ic_library_banshee.svg
images/library/ic_library_computer.svg
@@ -28,15 +29,14 @@
images/library/ic_library_traktor.svg
images/library/ic_library_rekordbox.svg
images/library/ic_library_serato.svg
- images/mixxx_logo.svg
- images/mixxx_icon.svg
+
+ images/mixxx_logo.svg
+ images/mixxx_icon.svg
images/mixxx-icon-logo-symbolic.svg
images/skin_preview_placeholder.png
images/ic_checkmark.svg
- images/ic_custom.svg
images/ic_delete.svg
- images/ic_mixxx_symbolic.svg
- images/ic_none.svg
+
images/preferences/dark/ic_preferences_autodj.svg
images/preferences/dark/ic_preferences_bpmdetect.svg
images/preferences/dark/ic_preferences_broadcast.svg
@@ -56,6 +56,10 @@
images/preferences/dark/ic_preferences_soundhardware.svg
images/preferences/dark/ic_preferences_vinyl.svg
images/preferences/dark/ic_preferences_waveforms.svg
+ images/preferences/dark/ic_custom.svg
+ images/preferences/dark/ic_mixxx_symbolic.svg
+ images/preferences/dark/ic_none.svg
+
images/preferences/light/ic_preferences_autodj.svg
images/preferences/light/ic_preferences_bpmdetect.svg
images/preferences/light/ic_preferences_broadcast.svg
@@ -75,6 +79,9 @@
images/preferences/light/ic_preferences_soundhardware.svg
images/preferences/light/ic_preferences_vinyl.svg
images/preferences/light/ic_preferences_waveforms.svg
+ images/preferences/light/ic_custom.svg
+ images/preferences/light/ic_mixxx_symbolic.svg
+ images/preferences/light/ic_none.svg
images/preferences/ic_preferences_warning.svg
schema.xml
shaders/filteredsignal.frag
diff --git a/src/controllers/dlgprefcontroller.cpp b/src/controllers/dlgprefcontroller.cpp
index f6ca3580e390..073636b67000 100644
--- a/src/controllers/dlgprefcontroller.cpp
+++ b/src/controllers/dlgprefcontroller.cpp
@@ -1,6 +1,7 @@
#include "controllers/dlgprefcontroller.h"
#include
+#include
#include
#include
#include
@@ -319,15 +320,23 @@ void DlgPrefController::enumeratePresets(const QString& selectedPresetPath) {
// qDebug() << "Enumerating presets for controller" << m_pController->getName();
+ // Check the text color of the palette for whether to use dark or light icons
+ QDir iconsPath;
+ if (!Color::isDimColor(palette().text().color())) {
+ iconsPath.setPath(":/images/preferences/light/");
+ } else {
+ iconsPath.setPath(":/images/preferences/dark/");
+ }
+
// Insert a dummy item at the top to try to make it less confusing.
// (We don't want the first found file showing up as the default item when a
// user has their controller plugged in)
- QIcon noPresetIcon(":/images/ic_none.svg");
- m_ui.comboBoxPreset->addItem(noPresetIcon, "No Preset");
+ QIcon noPresetIcon(iconsPath.filePath("ic_none.svg"));
+ m_ui.comboBoxPreset->addItem(noPresetIcon, tr("No Preset"));
PresetInfo match;
// Enumerate user presets
- QIcon userPresetIcon(":/images/ic_custom.svg");
+ QIcon userPresetIcon(iconsPath.filePath("ic_custom.svg"));
// Reload user presets to detect added, changed or removed mappings
m_pControllerManager->getMainThreadUserPresetEnumerator()->loadSupportedPresets();
@@ -343,7 +352,7 @@ void DlgPrefController::enumeratePresets(const QString& selectedPresetPath) {
m_ui.comboBoxPreset->insertSeparator(m_ui.comboBoxPreset->count());
// Enumerate system presets
- QIcon systemPresetIcon(":/images/ic_mixxx_symbolic.svg");
+ QIcon systemPresetIcon(iconsPath.filePath("ic_mixxx_symbolic.svg"));
PresetInfo systemPresetsMatch = enumeratePresetsFromEnumerator(
m_pControllerManager->getMainThreadSystemPresetEnumerator(),
systemPresetIcon);
diff --git a/src/controllers/dlgprefcontroller.h b/src/controllers/dlgprefcontroller.h
index 75407f616a2b..78885bd0b56c 100644
--- a/src/controllers/dlgprefcontroller.h
+++ b/src/controllers/dlgprefcontroller.h
@@ -9,8 +9,8 @@
#include "controllers/controllerpresetinfo.h"
#include "controllers/dlgcontrollerlearning.h"
#include "controllers/ui_dlgprefcontrollerdlg.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
// Forward declarations
class Controller;
diff --git a/src/controllers/dlgprefcontrollers.cpp b/src/controllers/dlgprefcontrollers.cpp
index 9adef3a00c8a..803059890e6d 100644
--- a/src/controllers/dlgprefcontrollers.cpp
+++ b/src/controllers/dlgprefcontrollers.cpp
@@ -10,22 +10,24 @@
#include "preferences/dialog/dlgpreferences.h"
DlgPrefControllers::DlgPrefControllers(DlgPreferences* pPreferences,
- UserSettingsPointer pConfig,
- ControllerManager* pControllerManager,
- QTreeWidgetItem* pControllerTreeItem)
+ UserSettingsPointer pConfig,
+ ControllerManager* pControllerManager,
+ QTreeWidgetItem* pControllersRootItem)
: DlgPreferencePage(pPreferences),
m_pDlgPreferences(pPreferences),
m_pConfig(pConfig),
m_pControllerManager(pControllerManager),
- m_pControllerTreeItem(pControllerTreeItem) {
+ m_pControllersRootItem(pControllersRootItem) {
setupUi(this);
// Create text color for the cue mode link "?" to the manual
createLinkColor();
setupControllerWidgets();
const QString presetsPath = userPresetsPath(m_pConfig);
- connect(btnOpenUserPresets, &QPushButton::clicked,
- this, [this, presetsPath] { slotOpenLocalFile(presetsPath); });
+ connect(btnOpenUserPresets,
+ &QPushButton::clicked,
+ this,
+ [this, presetsPath] { slotOpenLocalFile(presetsPath); });
// Connections
connect(m_pControllerManager,
@@ -79,26 +81,26 @@ void DlgPrefControllers::slotOpenLocalFile(const QString& file) {
}
void DlgPrefControllers::slotUpdate() {
- for (DlgPrefController* pControllerWindows : qAsConst(m_controllerWindows)) {
- pControllerWindows->slotUpdate();
+ for (DlgPrefController* pControllerDlg : qAsConst(m_controllerPages)) {
+ pControllerDlg->slotUpdate();
}
}
void DlgPrefControllers::slotCancel() {
- for (DlgPrefController* pControllerWindows : qAsConst(m_controllerWindows)) {
- pControllerWindows->slotCancel();
+ for (DlgPrefController* pControllerDlg : qAsConst(m_controllerPages)) {
+ pControllerDlg->slotCancel();
}
}
void DlgPrefControllers::slotApply() {
- for (DlgPrefController* pControllerWindows : qAsConst(m_controllerWindows)) {
- pControllerWindows->slotApply();
+ for (DlgPrefController* pControllerDlg : qAsConst(m_controllerPages)) {
+ pControllerDlg->slotApply();
}
}
void DlgPrefControllers::slotResetToDefaults() {
- for (DlgPrefController* pControllerWindows : qAsConst(m_controllerWindows)) {
- pControllerWindows->slotResetToDefaults();
+ for (DlgPrefController* pControllerDlg : qAsConst(m_controllerPages)) {
+ pControllerDlg->slotResetToDefaults();
}
}
@@ -109,12 +111,12 @@ QUrl DlgPrefControllers::helpUrl() const {
bool DlgPrefControllers::handleTreeItemClick(QTreeWidgetItem* clickedItem) {
int controllerIndex = m_controllerTreeItems.indexOf(clickedItem);
if (controllerIndex >= 0) {
- DlgPrefController* controllerWidget = m_controllerWindows.value(controllerIndex);
- if (controllerWidget) {
- m_pDlgPreferences->switchToPage(controllerWidget);
+ DlgPrefController* pControllerDlg = m_controllerPages.value(controllerIndex);
+ if (pControllerDlg) {
+ m_pDlgPreferences->switchToPage(pControllerDlg);
}
return true;
- } else if (clickedItem == m_pControllerTreeItem) {
+ } else if (clickedItem == m_pControllersRootItem) {
// Switch to the root page and expand the controllers tree item.
m_pDlgPreferences->expandTreeItem(clickedItem);
m_pDlgPreferences->switchToPage(this);
@@ -129,16 +131,16 @@ void DlgPrefControllers::rescanControllers() {
}
void DlgPrefControllers::destroyControllerWidgets() {
- while (!m_controllerWindows.isEmpty()) {
- DlgPrefController* controllerDlg = m_controllerWindows.takeLast();
- m_pDlgPreferences->removePageWidget(controllerDlg);
- delete controllerDlg;
+ while (!m_controllerPages.isEmpty()) {
+ DlgPrefController* pControllerDlg = m_controllerPages.takeLast();
+ m_pDlgPreferences->removePageWidget(pControllerDlg);
+ delete pControllerDlg;
}
m_controllerTreeItems.clear();
- while(m_pControllerTreeItem->childCount() > 0) {
- QTreeWidgetItem* controllerWindowLink = m_pControllerTreeItem->takeChild(0);
- delete controllerWindowLink;
+ while (m_pControllersRootItem->childCount() > 0) {
+ QTreeWidgetItem* pControllerTreeItem = m_pControllersRootItem->takeChild(0);
+ delete pControllerTreeItem;
}
}
@@ -147,63 +149,65 @@ void DlgPrefControllers::setupControllerWidgets() {
// treepane on the left.
QList controllerList =
m_pControllerManager->getControllerList(false, true);
+ if (controllerList.isEmpty()) {
+ // If no controllers are available, show the "No controllers available" message.
+ txtNoControllersAvailable->setVisible(true);
+ return;
+ }
+
+ txtNoControllersAvailable->setVisible(false);
std::sort(controllerList.begin(), controllerList.end(), controllerCompare);
foreach (Controller* pController, controllerList) {
- DlgPrefController* controllerDlg = new DlgPrefController(
- this, pController, m_pControllerManager, m_pConfig);
- connect(controllerDlg,
+ DlgPrefController* pControllerDlg = new DlgPrefController(
+ this, pController, m_pControllerManager, m_pConfig);
+ connect(pControllerDlg,
&DlgPrefController::mappingStarted,
m_pDlgPreferences,
&DlgPreferences::hide);
- connect(controllerDlg,
+ connect(pControllerDlg,
&DlgPrefController::mappingEnded,
m_pDlgPreferences,
&DlgPreferences::show);
- m_controllerWindows.append(controllerDlg);
- m_pDlgPreferences->addPageWidget(controllerDlg);
+ m_controllerPages.append(pControllerDlg);
connect(pController,
&Controller::openChanged,
- [this, controllerDlg](bool bOpen) {
- slotHighlightDevice(controllerDlg, bOpen);
+ [this, pControllerDlg](bool bOpen) {
+ slotHighlightDevice(pControllerDlg, bOpen);
});
- QTreeWidgetItem * controllerWindowLink = new QTreeWidgetItem(QTreeWidgetItem::Type);
- controllerWindowLink->setIcon(0, QIcon(":/images/preferences/ic_preferences_controllers.png"));
- QString curDeviceName = pController->getName();
- controllerWindowLink->setText(0, curDeviceName);
- controllerWindowLink->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- controllerWindowLink->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
- m_pControllerTreeItem->addChild(controllerWindowLink);
- m_controllerTreeItems.append(controllerWindowLink);
-
- // Set the font correctly
- QFont temp = controllerWindowLink->font(0);
+ QTreeWidgetItem* pControllerTreeItem = new QTreeWidgetItem(
+ QTreeWidgetItem::Type);
+ m_pDlgPreferences->addPageWidget(pControllerDlg,
+ pControllerTreeItem,
+ pController->getName(),
+ "ic_preferences_controllers.svg");
+
+ m_pControllersRootItem->addChild(pControllerTreeItem);
+ m_controllerTreeItems.append(pControllerTreeItem);
+
+ // If controller is open make controller label bold
+ QFont temp = pControllerTreeItem->font(0);
temp.setBold(pController->isOpen());
- controllerWindowLink->setFont(0, temp);
+ pControllerTreeItem->setFont(0, temp);
}
-
- // If no controllers are available, show the "No controllers available"
- // message.
- txtNoControllersAvailable->setVisible(controllerList.empty());
}
-void DlgPrefControllers::slotHighlightDevice(DlgPrefController* dialog, bool enabled) {
- int dialogIndex = m_controllerWindows.indexOf(dialog);
- if (dialogIndex < 0) {
+void DlgPrefControllers::slotHighlightDevice(DlgPrefController* pControllerDlg, bool enabled) {
+ int controllerPageIndex = m_controllerPages.indexOf(pControllerDlg);
+ if (controllerPageIndex < 0) {
return;
}
- QTreeWidgetItem * controllerWindowLink =
- m_controllerTreeItems.at(dialogIndex);
-
- if (!controllerWindowLink) {
+ QTreeWidgetItem* pControllerTreeItem =
+ m_controllerTreeItems.at(controllerPageIndex);
+ if (!pControllerTreeItem) {
return;
}
- QFont temp = controllerWindowLink->font(0);
+ QFont temp = pControllerTreeItem->font(0);
temp.setBold(enabled);
- controllerWindowLink->setFont(0,temp);
+ pControllerTreeItem->setFont(0, temp);
}
diff --git a/src/controllers/dlgprefcontrollers.h b/src/controllers/dlgprefcontrollers.h
index 82f1530e8083..7e3039291924 100644
--- a/src/controllers/dlgprefcontrollers.h
+++ b/src/controllers/dlgprefcontrollers.h
@@ -2,9 +2,9 @@
#include
-#include "preferences/usersettings.h"
#include "controllers/ui_dlgprefcontrollersdlg.h"
-#include "preferences/dlgpreferencepage.h"
+#include "preferences/dialog/dlgpreferencepage.h"
+#include "preferences/usersettings.h"
class DlgPreferences;
class DlgPrefController;
@@ -18,9 +18,9 @@ class DlgPrefControllers : public DlgPreferencePage, public Ui::DlgPrefControlle
Q_OBJECT
public:
DlgPrefControllers(DlgPreferences* pDlgPreferences,
- UserSettingsPointer pConfig,
- ControllerManager* pControllerManager,
- QTreeWidgetItem* pControllerTreeItem);
+ UserSettingsPointer pConfig,
+ ControllerManager* pControllerManager,
+ QTreeWidgetItem* pControllersRootItem);
virtual ~DlgPrefControllers();
bool handleTreeItemClick(QTreeWidgetItem* clickedItem);
@@ -48,7 +48,7 @@ class DlgPrefControllers : public DlgPreferencePage, public Ui::DlgPrefControlle
DlgPreferences* m_pDlgPreferences;
UserSettingsPointer m_pConfig;
ControllerManager* m_pControllerManager;
- QTreeWidgetItem* m_pControllerTreeItem;
- QList m_controllerWindows;
+ QTreeWidgetItem* m_pControllersRootItem;
+ QList m_controllerPages;
QList m_controllerTreeItems;
};
diff --git a/src/preferences/dialog/dlgprefautodj.h b/src/preferences/dialog/dlgprefautodj.h
index 56dc245ad77e..f7c324ae05c1 100644
--- a/src/preferences/dialog/dlgprefautodj.h
+++ b/src/preferences/dialog/dlgprefautodj.h
@@ -2,9 +2,9 @@
#include
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefautodjdlg.h"
#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
class DlgPrefAutoDJ : public DlgPreferencePage, public Ui::DlgPrefAutoDJDlg {
Q_OBJECT
diff --git a/src/preferences/dialog/dlgprefbeats.h b/src/preferences/dialog/dlgprefbeats.h
index 69a6bf2db2dc..fea83f484e31 100644
--- a/src/preferences/dialog/dlgprefbeats.h
+++ b/src/preferences/dialog/dlgprefbeats.h
@@ -1,14 +1,14 @@
#pragma once
-#include
-#include
#include
+#include
+#include
#include "analyzer/plugins/analyzerplugin.h"
#include "preferences/beatdetectionsettings.h"
-#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefbeatsdlg.h"
+#include "preferences/usersettings.h"
class DlgPrefBeats : public DlgPreferencePage, public Ui::DlgBeatsDlg {
Q_OBJECT
diff --git a/src/preferences/dialog/dlgprefbroadcast.h b/src/preferences/dialog/dlgprefbroadcast.h
index f8e78c1862f8..a8a1b301a020 100644
--- a/src/preferences/dialog/dlgprefbroadcast.h
+++ b/src/preferences/dialog/dlgprefbroadcast.h
@@ -3,13 +3,13 @@
#include
#include
-#include "preferences/dialog/ui_dlgprefbroadcastdlg.h"
-#include "control/controlobject.h"
-#include "preferences/usersettings.h"
#include "broadcast/defs_broadcast.h"
-#include "preferences/dlgpreferencepage.h"
+#include "control/controlobject.h"
#include "preferences/broadcastsettings.h"
#include "preferences/broadcastsettingsmodel.h"
+#include "preferences/dialog/dlgpreferencepage.h"
+#include "preferences/dialog/ui_dlgprefbroadcastdlg.h"
+#include "preferences/usersettings.h"
class ControlProxy;
diff --git a/src/preferences/dialog/dlgprefcolors.h b/src/preferences/dialog/dlgprefcolors.h
index ee6fada3023f..eec7fd3e1c71 100644
--- a/src/preferences/dialog/dlgprefcolors.h
+++ b/src/preferences/dialog/dlgprefcolors.h
@@ -5,8 +5,8 @@
#include "control/controlproxy.h"
#include "preferences/colorpaletteeditor.h"
#include "preferences/colorpalettesettings.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefcolorsdlg.h"
-#include "preferences/dlgpreferencepage.h"
#include "preferences/usersettings.h"
#include "util/parented_ptr.h"
diff --git a/src/preferences/dialog/dlgprefcrossfader.h b/src/preferences/dialog/dlgprefcrossfader.h
index a6b1a3290db4..ccf2e92646b8 100644
--- a/src/preferences/dialog/dlgprefcrossfader.h
+++ b/src/preferences/dialog/dlgprefcrossfader.h
@@ -2,11 +2,10 @@
#include
+#include "control/controlproxy.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefcrossfaderdlg.h"
#include "preferences/usersettings.h"
-#include "control/controlproxy.h"
-#include "preferences/dlgpreferencepage.h"
-
class DlgPrefCrossfader : public DlgPreferencePage, public Ui::DlgPrefCrossfaderDlg {
Q_OBJECT
diff --git a/src/preferences/dialog/dlgprefdeck.h b/src/preferences/dialog/dlgprefdeck.h
index 7a97c668f8f5..ac885b5c981a 100644
--- a/src/preferences/dialog/dlgprefdeck.h
+++ b/src/preferences/dialog/dlgprefdeck.h
@@ -6,8 +6,8 @@
#include "engine/controls/cuecontrol.h"
#include "engine/controls/ratecontrol.h"
#include "preferences/constants.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefdeckdlg.h"
-#include "preferences/dlgpreferencepage.h"
#include "preferences/usersettings.h"
#include "util/parented_ptr.h"
diff --git a/src/preferences/dialog/dlgprefeffects.h b/src/preferences/dialog/dlgprefeffects.h
index c787804bc1bf..8d254a3496b0 100644
--- a/src/preferences/dialog/dlgprefeffects.h
+++ b/src/preferences/dialog/dlgprefeffects.h
@@ -2,8 +2,8 @@
#include
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefeffectsdlg.h"
-#include "preferences/dlgpreferencepage.h"
#include "preferences/effectsettingsmodel.h"
#include "preferences/usersettings.h"
diff --git a/src/preferences/dialog/dlgprefeq.h b/src/preferences/dialog/dlgprefeq.h
index f6c10c96291c..3beb233b5853 100644
--- a/src/preferences/dialog/dlgprefeq.h
+++ b/src/preferences/dialog/dlgprefeq.h
@@ -1,14 +1,14 @@
#pragma once
-#include
#include
+#include
-#include "preferences/dialog/ui_dlgprefeqdlg.h"
-#include "preferences/usersettings.h"
#include "control/controlproxy.h"
-#include "preferences/dlgpreferencepage.h"
-#include "effects/effectsmanager.h"
#include "effects/effectrack.h"
+#include "effects/effectsmanager.h"
+#include "preferences/dialog/dlgpreferencepage.h"
+#include "preferences/dialog/ui_dlgprefeqdlg.h"
+#include "preferences/usersettings.h"
class DlgPrefEQ : public DlgPreferencePage, public Ui::DlgPrefEQDlg {
Q_OBJECT
diff --git a/src/preferences/dlgpreferencepage.cpp b/src/preferences/dialog/dlgpreferencepage.cpp
similarity index 83%
rename from src/preferences/dlgpreferencepage.cpp
rename to src/preferences/dialog/dlgpreferencepage.cpp
index 61b912b4419e..fc4b3eddd69d 100644
--- a/src/preferences/dlgpreferencepage.cpp
+++ b/src/preferences/dialog/dlgpreferencepage.cpp
@@ -1,4 +1,4 @@
-#include "preferences/dlgpreferencepage.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "defs_urls.h"
#include "moc_dlgpreferencepage.cpp"
diff --git a/src/preferences/dlgpreferencepage.h b/src/preferences/dialog/dlgpreferencepage.h
similarity index 96%
rename from src/preferences/dlgpreferencepage.h
rename to src/preferences/dialog/dlgpreferencepage.h
index 7e8134eca872..59b993a31b09 100644
--- a/src/preferences/dlgpreferencepage.h
+++ b/src/preferences/dialog/dlgpreferencepage.h
@@ -44,10 +44,12 @@ class DlgPreferencePage : public QWidget {
/// Called when the preferences dialog is shown to the user (not necessarily
/// when this PreferencePage is shown to the user).
- virtual void slotShow() {}
+ virtual void slotShow() {
+ }
/// Called when the preferences dialog is hidden from the user.
- virtual void slotHide() {}
+ virtual void slotHide() {
+ }
// Supply a readable text color for all file and website links
inline void createLinkColor() {
diff --git a/src/preferences/dialog/dlgpreferences.cpp b/src/preferences/dialog/dlgpreferences.cpp
index e0b48a338423..a8598aec63c8 100644
--- a/src/preferences/dialog/dlgpreferences.cpp
+++ b/src/preferences/dialog/dlgpreferences.cpp
@@ -16,7 +16,7 @@
#ifdef __VINYLCONTROL__
#include "preferences/dialog/dlgprefvinyl.h"
-#else
+#else /* __VINYLCONTROL__ */
#include "preferences/dialog/dlgprefnovinyl.h"
#endif
@@ -34,7 +34,7 @@
#ifdef __BROADCAST__
#include "preferences/dialog/dlgprefbroadcast.h"
-#endif
+#endif /* __BROADCAST__ */
#include "preferences/dialog/dlgprefrecord.h"
#include "preferences/dialog/dlgprefbeats.h"
@@ -43,24 +43,28 @@
#ifdef __MODPLUG__
#include "preferences/dialog/dlgprefmodplug.h"
-#endif
+#endif /* __MODPLUG__ */
#include "controllers/controllermanager.h"
#include "library/library.h"
#include "library/trackcollectionmanager.h"
#include "mixxx.h"
#include "skin/skinloader.h"
+#include "util/color/color.h"
#include "util/widgethelper.h"
-DlgPreferences::DlgPreferences(MixxxMainWindow * mixxx, SkinLoader* pSkinLoader,
- SoundManager * soundman, PlayerManager* pPlayerManager,
- ControllerManager * controllers, VinylControlManager *pVCManager,
- LV2Backend* pLV2Backend,
- EffectsManager* pEffectsManager,
- SettingsManager* pSettingsManager,
- Library *pLibrary)
- : m_pConfig(pSettingsManager->settings()),
- m_pageSizeHint(QSize(0, 0)) {
+DlgPreferences::DlgPreferences(
+ MixxxMainWindow* pMixxx,
+ SkinLoader* pSkinLoader,
+ SoundManager* pSoundManager,
+ PlayerManager* pPlayerManager,
+ ControllerManager* pControllerManager,
+ VinylControlManager* pVCManager,
+ LV2Backend* pLV2Backend,
+ EffectsManager* pEffectsManager,
+ SettingsManager* pSettingsManager,
+ Library* pLibrary)
+ : m_pConfig(pSettingsManager->settings()), m_pageSizeHint(QSize(0, 0)) {
#ifndef __LILV__
Q_UNUSED(pLV2Backend);
#endif /* __LILV__ */
@@ -73,80 +77,180 @@ DlgPreferences::DlgPreferences(MixxxMainWindow * mixxx, SkinLoader* pSkinLoader,
this,
&DlgPreferences::slotButtonPressed);
- createIcons();
-
while (pagesWidget->count() > 0) {
pagesWidget->removeWidget(pagesWidget->currentWidget());
}
- // Construct widgets for use in tabs.
- m_soundPage = new DlgPrefSound(this, soundman, m_pConfig);
- addPageWidget(m_soundPage);
+ // Construct widgets for use in tabs:
+ // * check the text color of the palette for whether to use dark or light icons
+ // * create the tree view button first (important for 'Controllers' page!)
+ // * instantiate preferences page
+ if (!Color::isDimColor(palette().text().color())) {
+ m_iconsPath.setPath(":/images/preferences/light/");
+ } else {
+ m_iconsPath.setPath(":/images/preferences/dark/");
+ }
+
+ m_pSoundButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
+ m_soundPage = new DlgPrefSound(this, pSoundManager, m_pConfig);
+ addPageWidget(m_soundPage,
+ m_pSoundButton,
+ tr("Sound Hardware"),
+ "ic_preferences_soundhardware.svg");
+
+ m_pLibraryButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_libraryPage = new DlgPrefLibrary(this, m_pConfig, pLibrary);
- addPageWidget(m_libraryPage);
+ addPageWidget(m_libraryPage,
+ m_pLibraryButton,
+ tr("Library"),
+ "ic_preferences_library.svg");
connect(m_libraryPage,
&DlgPrefLibrary::scanLibrary,
pLibrary->trackCollections(),
&TrackCollectionManager::startLibraryScan);
- m_controllersPage = new DlgPrefControllers(this, m_pConfig, controllers,
- m_pControllerTreeItem);
- addPageWidget(m_controllersPage);
+
+ m_pControllersRootButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
+ m_controllersPage = new DlgPrefControllers(
+ this, m_pConfig, pControllerManager, m_pControllersRootButton);
+ addPageWidget(m_controllersPage,
+ m_pControllersRootButton,
+ tr("Controllers"),
+ "ic_preferences_controllers.svg");
#ifdef __VINYLCONTROL__
// It's important for this to be before the connect for wsound.
// TODO(rryan) determine why/if this is still true
+ m_pVinylControlButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_vinylControlPage = new DlgPrefVinyl(this, pVCManager, m_pConfig);
- addPageWidget(m_vinylControlPage);
- Q_UNUSED(m_noVinylControlPage);
-#else
- m_noVinylControlPage = new DlgPrefNoVinyl(this, soundman, m_pConfig);
- addPageWidget(m_noVinylControlPage);
- Q_UNUSED(m_vinylControlPage);
+ addPageWidget(m_vinylControlPage,
+ m_pVinylControlButton,
+ tr("Vinyl Control"),
+ "ic_preferences_vinyl.svg");
+#else /* __VINYLCONTROL__ */
+
+ m_pVinylControlButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
+ m_noVinylControlPage = new DlgPrefNoVinyl(this, pSoundManager, m_pConfig);
+ addPageWidget(m_noVinylControlPage,
+ m_pVinylControlButton,
+ tr("Vinyl Control"),
+ "ic_preferences_vinyl.svg");
#endif
- m_interfacePage = new DlgPrefInterface(this, mixxx, pSkinLoader, m_pConfig);
- addPageWidget(m_interfacePage);
- m_waveformPage = new DlgPrefWaveform(this, mixxx, m_pConfig, pLibrary);
- addPageWidget(m_waveformPage);
+ m_pInterfaceButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
+ m_interfacePage = new DlgPrefInterface(this, pMixxx, pSkinLoader, m_pConfig);
+ addPageWidget(m_interfacePage,
+ m_pInterfaceButton,
+ tr("Interface"),
+ "ic_preferences_interface.svg");
+
+ m_pWaveformButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
+ m_waveformPage = new DlgPrefWaveform(this, pMixxx, m_pConfig, pLibrary);
+ addPageWidget(m_waveformPage,
+ m_pWaveformButton,
+ tr("Waveforms"),
+ "ic_preferences_waveforms.svg");
+
+ m_pDecksButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_deckPage = new DlgPrefDeck(this, m_pConfig);
- addPageWidget(m_deckPage);
+ addPageWidget(m_deckPage,
+ m_pDecksButton,
+ tr("Decks"),
+ "ic_preferences_decks.svg");
+
+ m_pColorsButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_colorsPage = new DlgPrefColors(this, m_pConfig, pLibrary);
- addPageWidget(m_colorsPage);
+ addPageWidget(m_colorsPage,
+ m_pColorsButton,
+ tr("Colors"),
+ "ic_preferences_colors.svg");
+
+ m_pEqButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_equalizerPage = new DlgPrefEQ(this, pEffectsManager, m_pConfig);
- addPageWidget(m_equalizerPage);
+ addPageWidget(m_equalizerPage,
+ m_pEqButton,
+ tr("Equalizers"),
+ "ic_preferences_equalizers.svg");
+
+ m_pCrossfaderButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_crossfaderPage = new DlgPrefCrossfader(this, m_pConfig);
- addPageWidget(m_crossfaderPage);
+ addPageWidget(m_crossfaderPage,
+ m_pCrossfaderButton,
+ tr("Crossfader"),
+ "ic_preferences_crossfader.svg");
+
+ m_pEffectsButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_effectsPage = new DlgPrefEffects(this, m_pConfig, pEffectsManager);
- addPageWidget(m_effectsPage);
+ addPageWidget(m_effectsPage,
+ m_pEffectsButton,
+ tr("Effects"),
+ "ic_preferences_effects.svg");
+
#ifdef __LILV__
+ m_pLV2Button = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_lv2Page = new DlgPrefLV2(this, pLV2Backend, m_pConfig, pEffectsManager);
- addPageWidget(m_lv2Page);
+ addPageWidget(m_lv2Page,
+ m_pLV2Button,
+ tr("LV2 Plugins"),
+ "ic_preferences_lv2.svg");
#endif /* __LILV__ */
+
+ m_pAutoDJButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_autoDjPage = new DlgPrefAutoDJ(this, m_pConfig);
- addPageWidget(m_autoDjPage);
+ addPageWidget(m_autoDjPage,
+ m_pAutoDJButton,
+ tr("Auto DJ"),
+ "ic_preferences_autodj.svg");
#ifdef __BROADCAST__
- m_broadcastingPage = new DlgPrefBroadcast(this,
- pSettingsManager->broadcastSettings());
- addPageWidget(m_broadcastingPage);
-#endif
+ m_pBroadcastButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
+ m_broadcastingPage = new DlgPrefBroadcast(this, pSettingsManager->broadcastSettings());
+ addPageWidget(m_broadcastingPage,
+ m_pBroadcastButton,
+ tr("Live Broadcasting"),
+ "ic_preferences_broadcast.svg");
+#endif /* __BROADCAST__ */
+ m_pRecordingButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_recordingPage = new DlgPrefRecord(this, m_pConfig);
- addPageWidget(m_recordingPage);
+ addPageWidget(m_recordingPage,
+ m_pRecordingButton,
+ tr("Recording"),
+ "ic_preferences_recording.svg");
+ m_pBeatDetectionButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_beatgridPage = new DlgPrefBeats(this, m_pConfig);
- addPageWidget (m_beatgridPage);
+ addPageWidget(m_beatgridPage,
+ m_pBeatDetectionButton,
+ tr("Beat Detection"),
+ "ic_preferences_bpmdetect.svg");
+ m_pKeyDetectionButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_musicalKeyPage = new DlgPrefKey(this, m_pConfig);
- addPageWidget(m_musicalKeyPage);
+ addPageWidget(m_musicalKeyPage,
+ m_pKeyDetectionButton,
+ tr("Key Detection"),
+ "ic_preferences_keydetect.svg");
+ m_pReplayGainButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_replayGainPage = new DlgPrefReplayGain(this, m_pConfig);
- addPageWidget(m_replayGainPage);
+ addPageWidget(m_replayGainPage,
+ m_pReplayGainButton,
+ tr("Normalization"),
+ "ic_preferences_replaygain.svg");
#ifdef __MODPLUG__
+ m_pModplugButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
m_modplugPage = new DlgPrefModplug(this, m_pConfig);
- addPageWidget(m_modplugPage);
-#endif
+ addPageWidget(m_modplugPage,
+ m_pModplugButton,
+ tr("Modplug Decoder"),
+ "ic_preferences_modplug.svg");
+#endif /* __MODPLUG__ */
+
+ connect(contentsTreeWidget,
+ &QTreeWidget::currentItemChanged,
+ this,
+ &DlgPreferences::changePage);
// Install event handler to generate closeDlg signal
installEventFilter(this);
@@ -170,206 +274,60 @@ DlgPreferences::~DlgPreferences() {
delete m_controllersPage;
}
-void DlgPreferences::createIcons() {
- QString iconSetPath(":/images/preferences/");
- // If the text of the OS theme is bright let's also pick a bright icon set.
- QString iconSetColor = QStringLiteral("dark/");
- if (!Color::isDimColor(palette().text().color())) {
- iconSetColor = QStringLiteral("light/");
- }
- iconSetPath += iconSetColor;
- m_pSoundButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pSoundButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_soundhardware.svg"));
- m_pSoundButton->setText(0, tr("Sound Hardware"));
- m_pSoundButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pSoundButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pLibraryButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pLibraryButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_library.svg"));
- m_pLibraryButton->setText(0, tr("Library"));
- m_pLibraryButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pLibraryButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pControllerTreeItem = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pControllerTreeItem->setIcon(0, QIcon(iconSetPath + "ic_preferences_controllers.svg"));
- m_pControllerTreeItem->setText(0, tr("Controllers"));
- m_pControllerTreeItem->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pControllerTreeItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
-#ifdef __VINYLCONTROL__
- m_pVinylControlButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- //QT screws up my nice vinyl svg for some reason, so we'll use a PNG version
- //instead...
- m_pVinylControlButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_vinyl.svg"));
- m_pVinylControlButton->setText(0, tr("Vinyl Control"));
- m_pVinylControlButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pVinylControlButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-#else
- m_pVinylControlButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- //QT screws up my nice vinyl svg for some reason, so we'll use a PNG version
- //instead...
- m_pVinylControlButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_vinyl.svg"));
- m_pVinylControlButton->setText(0, tr("Vinyl Control"));
- m_pVinylControlButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pVinylControlButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-#endif
-
- m_pInterfaceButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pInterfaceButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_interface.svg"));
- m_pInterfaceButton->setText(0, tr("Interface"));
- m_pInterfaceButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pInterfaceButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pWaveformButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pWaveformButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_waveforms.svg"));
- m_pWaveformButton->setText(0, tr("Waveforms"));
- m_pWaveformButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pWaveformButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pDecksButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pDecksButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_decks.svg"));
- m_pDecksButton->setText(0, tr("Decks"));
- m_pDecksButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pDecksButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pColorsButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pColorsButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_colors.svg"));
- m_pColorsButton->setText(0, tr("Colors"));
- m_pColorsButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pColorsButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pEqButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pEqButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_equalizers.svg"));
- m_pEqButton->setText(0, tr("Equalizers"));
- m_pEqButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pEqButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pCrossfaderButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pCrossfaderButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_crossfader.svg"));
- m_pCrossfaderButton->setText(0, tr("Crossfader"));
- m_pCrossfaderButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pCrossfaderButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pEffectsButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pEffectsButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_effects.svg"));
- m_pEffectsButton->setText(0, tr("Effects"));
- m_pEffectsButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pEffectsButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
-#ifdef __LILV__
- m_pLV2Button = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pLV2Button->setIcon(0, QIcon(iconSetPath + "ic_preferences_lv2.svg"));
- m_pLV2Button->setText(0, tr("LV2 Plugins"));
- m_pLV2Button->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pLV2Button->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-#endif /* __LILV__ */
-
- m_pAutoDJButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pAutoDJButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_autodj.svg"));
- m_pAutoDJButton->setText(0, tr("Auto DJ"));
- m_pAutoDJButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pAutoDJButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
-#ifdef __BROADCAST__
- m_pBroadcastButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pBroadcastButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_broadcast.svg"));
- m_pBroadcastButton->setText(0, tr("Live Broadcasting"));
- m_pBroadcastButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pBroadcastButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-#endif
-
- m_pRecordingButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pRecordingButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_recording.svg"));
- m_pRecordingButton->setText(0, tr("Recording"));
- m_pRecordingButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pRecordingButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pBeatDetectionButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pBeatDetectionButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_bpmdetect.svg"));
- m_pBeatDetectionButton->setText(0, tr("Beat Detection"));
- m_pBeatDetectionButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pBeatDetectionButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pKeyDetectionButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pKeyDetectionButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_keydetect.svg"));
- m_pKeyDetectionButton->setText(0, tr("Key Detection"));
- m_pKeyDetectionButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pKeyDetectionButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
- m_pReplayGainButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pReplayGainButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_replaygain.svg"));
- m_pReplayGainButton->setText(0, tr("Normalization"));
- m_pReplayGainButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pReplayGainButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-
-#ifdef __MODPLUG__
- m_pModplugButton = new QTreeWidgetItem(contentsTreeWidget, QTreeWidgetItem::Type);
- m_pModplugButton->setIcon(0, QIcon(iconSetPath + "ic_preferences_modplug.svg"));
- m_pModplugButton->setText(0, tr("Modplug Decoder"));
- m_pModplugButton->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
- m_pModplugButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-#endif
-
- connect(contentsTreeWidget,
- &QTreeWidget::currentItemChanged,
- this,
- &DlgPreferences::changePage);
-}
-
-void DlgPreferences::changePage(QTreeWidgetItem* current, QTreeWidgetItem* previous) {
- if (!current) {
- current = previous;
+void DlgPreferences::changePage(QTreeWidgetItem* pCurrent, QTreeWidgetItem* pPrevious) {
+ if (!pCurrent) {
+ pCurrent = pPrevious;
}
- if (current == m_pSoundButton) {
+ if (pCurrent == m_pSoundButton) {
switchToPage(m_soundPage);
- } else if (current == m_pLibraryButton) {
+ } else if (pCurrent == m_pLibraryButton) {
switchToPage(m_libraryPage);
- } else if (m_controllersPage->handleTreeItemClick(current)) {
+ } else if (m_controllersPage->handleTreeItemClick(pCurrent)) {
// Do nothing. m_controllersPage handled this click.
#ifdef __VINYLCONTROL__
- } else if (current == m_pVinylControlButton) {
+ } else if (pCurrent == m_pVinylControlButton) {
switchToPage(m_vinylControlPage);
-#else
- } else if (current == m_pVinylControlButton) {
+#else /* __VINYLCONTROL__ */
+ } else if (pCurrent == m_pVinylControlButton) {
switchToPage(m_noVinylControlPage);
#endif
- } else if (current == m_pInterfaceButton) {
+ } else if (pCurrent == m_pInterfaceButton) {
switchToPage(m_interfacePage);
- } else if (current == m_pWaveformButton) {
+ } else if (pCurrent == m_pWaveformButton) {
switchToPage(m_waveformPage);
- } else if (current == m_pDecksButton) {
+ } else if (pCurrent == m_pDecksButton) {
switchToPage(m_deckPage);
- } else if (current == m_pColorsButton) {
+ } else if (pCurrent == m_pColorsButton) {
switchToPage(m_colorsPage);
- } else if (current == m_pEqButton) {
+ } else if (pCurrent == m_pEqButton) {
switchToPage(m_equalizerPage);
- } else if (current == m_pCrossfaderButton) {
+ } else if (pCurrent == m_pCrossfaderButton) {
switchToPage(m_crossfaderPage);
- } else if (current == m_pEffectsButton) {
+ } else if (pCurrent == m_pEffectsButton) {
switchToPage(m_effectsPage);
#ifdef __LILV__
- } else if (current == m_pLV2Button) {
+ } else if (pCurrent == m_pLV2Button) {
switchToPage(m_lv2Page);
#endif /* __LILV__ */
- } else if (current == m_pAutoDJButton) {
+ } else if (pCurrent == m_pAutoDJButton) {
switchToPage(m_autoDjPage);
#ifdef __BROADCAST__
- } else if (current == m_pBroadcastButton) {
+ } else if (pCurrent == m_pBroadcastButton) {
switchToPage(m_broadcastingPage);
-#endif
- } else if (current == m_pRecordingButton) {
+#endif /* __BROADCAST__ */
+ } else if (pCurrent == m_pRecordingButton) {
switchToPage(m_recordingPage);
- } else if (current == m_pBeatDetectionButton) {
+ } else if (pCurrent == m_pBeatDetectionButton) {
switchToPage(m_beatgridPage);
- } else if (current == m_pKeyDetectionButton) {
+ } else if (pCurrent == m_pKeyDetectionButton) {
switchToPage(m_musicalKeyPage);
- } else if (current == m_pReplayGainButton) {
+ } else if (pCurrent == m_pReplayGainButton) {
switchToPage(m_replayGainPage);
#ifdef __MODPLUG__
- } else if (current == m_pModplugButton) {
+ } else if (pCurrent == m_pModplugButton) {
switchToPage(m_modplugPage);
-#endif
+#endif /* __MODPLUG__ */
}
}
@@ -433,10 +391,11 @@ void DlgPreferences::onShow() {
// Update geometry with last values
#ifdef __WINDOWS__
resize(m_geometry[2].toInt(), m_geometry[3].toInt());
-#else
- // On linux, when the window is opened for the first time by the window manager, QT does not have
- // information about the frame size so the offset is zero. As such, the first time it opens the window
- // does not include the offset, so it is moved from the last position it had.
+#else /* __WINDOWS__ */
+ // On linux, when the window is opened for the first time by the window manager,
+ // QT does not have information about the frame size so the offset is zero.
+ // As such, the first time it opens the window does not include the offset,
+ // so it is moved from the last position it had.
// Excluding the offset from the saved value tries to fix that.
int offsetX = geometry().left() - frameGeometry().left();
int offsetY = geometry().top() - frameGeometry().top();
@@ -490,11 +449,19 @@ void DlgPreferences::slotButtonPressed(QAbstractButton* pButton) {
}
}
-void DlgPreferences::addPageWidget(DlgPreferencePage* pWidget) {
+void DlgPreferences::addPageWidget(DlgPreferencePage* pWidget,
+ QTreeWidgetItem* pTreeItem,
+ const QString& pageTitle,
+ const QString& iconFile) {
+ // Configure the tree button linked to the page
+ pTreeItem->setIcon(0, QIcon(m_iconsPath.filePath(iconFile)));
+ pTreeItem->setText(0, pageTitle);
+ pTreeItem->setTextAlignment(0, Qt::AlignLeft | Qt::AlignVCenter);
+ pTreeItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
connect(this, &DlgPreferences::showDlg, pWidget, &DlgPreferencePage::slotShow);
connect(this, &DlgPreferences::closeDlg, pWidget, &DlgPreferencePage::slotHide);
connect(this, &DlgPreferences::showDlg, pWidget, &DlgPreferencePage::slotUpdate);
-
connect(this, &DlgPreferences::applyPreferences, pWidget, &DlgPreferencePage::slotApply);
connect(this, &DlgPreferences::cancelPreferences, pWidget, &DlgPreferencePage::slotCancel);
connect(this,
@@ -502,16 +469,15 @@ void DlgPreferences::addPageWidget(DlgPreferencePage* pWidget) {
pWidget,
&DlgPreferencePage::slotResetToDefaults);
+ // Add a new scroll area to the stacked pages widget containing the page
QScrollArea* sa = new QScrollArea(pagesWidget);
sa->setWidgetResizable(true);
-
sa->setWidget(pWidget);
pagesWidget->addWidget(sa);
int iframe = 2 * sa->frameWidth();
m_pageSizeHint = m_pageSizeHint.expandedTo(
pWidget->sizeHint()+QSize(iframe, iframe));
-
}
DlgPreferencePage* DlgPreferences::currentPage() {
@@ -558,7 +524,7 @@ void DlgPreferences::moveEvent(QMoveEvent* e) {
Q_UNUSED(e);
m_geometry[0] = QString::number(frameGeometry().left());
m_geometry[1] = QString::number(frameGeometry().top());
-#else
+#else /* __WINDOWS__ */
// Warning! geometry does NOT include the frame/title.
int offsetX = geometry().left() - frameGeometry().left();
int offsetY = geometry().top() - frameGeometry().top();
diff --git a/src/preferences/dialog/dlgpreferences.h b/src/preferences/dialog/dlgpreferences.h
index f19b7b955eb2..b57d3db257c3 100644
--- a/src/preferences/dialog/dlgpreferences.h
+++ b/src/preferences/dialog/dlgpreferences.h
@@ -1,15 +1,16 @@
#pragma once
#include
+#include
#include
#include
#include
-#include "preferences/dialog/ui_dlgpreferencesdlg.h"
-#include "preferences/usersettings.h"
#include "control/controlpushbutton.h"
-#include "preferences/dlgpreferencepage.h"
+#include "preferences/dialog/dlgpreferencepage.h"
+#include "preferences/dialog/ui_dlgpreferencesdlg.h"
#include "preferences/settingsmanager.h"
+#include "preferences/usersettings.h"
class MixxxMainWindow;
class SoundManager;
@@ -49,11 +50,11 @@ class DlgPrefModplug;
class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg {
Q_OBJECT
public:
- DlgPreferences(MixxxMainWindow* mixxx,
+ DlgPreferences(MixxxMainWindow* pMixxx,
SkinLoader* pSkinLoader,
- SoundManager* soundman,
+ SoundManager* pSoundManager,
PlayerManager* pPlayerManager,
- ControllerManager* controllers,
+ ControllerManager* pControllerManager,
VinylControlManager* pVCManager,
LV2Backend* pLV2Backend,
EffectsManager* pEffectsManager,
@@ -61,13 +62,16 @@ class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg {
Library* pLibrary);
virtual ~DlgPreferences();
- void addPageWidget(DlgPreferencePage* pWidget);
+ void addPageWidget(DlgPreferencePage* pWidget,
+ QTreeWidgetItem* pTreeItem,
+ const QString& pageTitle,
+ const QString& iconFile);
void removePageWidget(DlgPreferencePage* pWidget);
void expandTreeItem(QTreeWidgetItem* pItem);
void switchToPage(DlgPreferencePage* pWidget);
public slots:
- void changePage(QTreeWidgetItem* current, QTreeWidgetItem* previous);
+ void changePage(QTreeWidgetItem* pCurrent, QTreeWidgetItem* pPrevious);
void showSoundHardwarePage();
void slotButtonPressed(QAbstractButton* pButton);
signals:
@@ -88,7 +92,6 @@ class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg {
private:
DlgPreferencePage* currentPage();
- void createIcons();
void onShow();
void onHide();
QRect getDefaultGeometry();
@@ -98,8 +101,11 @@ class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg {
DlgPrefSound* m_soundPage;
DlgPrefLibrary* m_libraryPage;
DlgPrefControllers *m_controllersPage;
+#ifdef __VINYLCONTROL__
DlgPrefVinyl* m_vinylControlPage;
+#else /* __VINYLCONTROL__ */
DlgPrefNoVinyl* m_noVinylControlPage;
+#endif
DlgPrefInterface* m_interfacePage;
DlgPrefWaveform* m_waveformPage;
DlgPrefDeck* m_deckPage;
@@ -118,11 +124,11 @@ class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg {
#endif /* __LILV__ */
#ifdef __MODPLUG__
DlgPrefModplug* m_modplugPage;
-#endif
+#endif /* __MODPLUG__ */
QTreeWidgetItem* m_pSoundButton;
QTreeWidgetItem* m_pLibraryButton;
- QTreeWidgetItem* m_pControllerTreeItem;
+ QTreeWidgetItem* m_pControllersRootButton;
QTreeWidgetItem* m_pVinylControlButton;
QTreeWidgetItem* m_pInterfaceButton;
QTreeWidgetItem* m_pWaveformButton;
@@ -134,7 +140,6 @@ class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg {
#endif /* __LILV__ */
QTreeWidgetItem* m_pEffectsButton;
QTreeWidgetItem* m_pCrossfaderButton;
- //QTreeWidgetItem* m_pEffectsButton;
QTreeWidgetItem* m_pAutoDJButton;
QTreeWidgetItem* m_pBroadcastButton;
QTreeWidgetItem* m_pRecordingButton;
@@ -143,7 +148,9 @@ class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg {
QTreeWidgetItem* m_pReplayGainButton;
#ifdef __MODPLUG__
QTreeWidgetItem* m_pModplugButton;
-#endif
+#endif /* __MODPLUG__ */
QSize m_pageSizeHint;
+
+ QDir m_iconsPath;
};
diff --git a/src/preferences/dialog/dlgprefinterface.h b/src/preferences/dialog/dlgprefinterface.h
index 1dfe7aaf6e20..0b635abc9237 100644
--- a/src/preferences/dialog/dlgprefinterface.h
+++ b/src/preferences/dialog/dlgprefinterface.h
@@ -3,9 +3,9 @@
#include
#include "preferences/constants.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefinterfacedlg.h"
#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
class ControlProxy;
class ControlPotmeter;
diff --git a/src/preferences/dialog/dlgprefkey.h b/src/preferences/dialog/dlgprefkey.h
index f76a02babc0d..fa541a6533e7 100644
--- a/src/preferences/dialog/dlgprefkey.h
+++ b/src/preferences/dialog/dlgprefkey.h
@@ -7,8 +7,8 @@
#include "analyzer/plugins/analyzerplugin.h"
#include "control/controlproxy.h"
#include "defs_urls.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefkeydlg.h"
-#include "preferences/dlgpreferencepage.h"
#include "preferences/keydetectionsettings.h"
#include "preferences/usersettings.h"
#include "track/keyutils.h"
diff --git a/src/preferences/dialog/dlgpreflibrary.h b/src/preferences/dialog/dlgpreflibrary.h
index 09bbd9a33601..341b7e61f1bc 100644
--- a/src/preferences/dialog/dlgpreflibrary.h
+++ b/src/preferences/dialog/dlgpreflibrary.h
@@ -7,8 +7,8 @@
#include "defs_urls.h"
#include "library/library.h"
#include "library/library_preferences.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgpreflibrarydlg.h"
-#include "preferences/dlgpreferencepage.h"
#include "preferences/usersettings.h"
class DlgPrefLibrary : public DlgPreferencePage, public Ui::DlgPrefLibraryDlg {
diff --git a/src/preferences/dialog/dlgpreflv2.h b/src/preferences/dialog/dlgpreflv2.h
index b3c9318d6c96..fe37ca05f565 100644
--- a/src/preferences/dialog/dlgpreflv2.h
+++ b/src/preferences/dialog/dlgpreflv2.h
@@ -1,12 +1,12 @@
#pragma once
-#include
#include
+#include
+#include "effects/lv2/lv2backend.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgpreflv2dlg.h"
#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
-#include "effects/lv2/lv2backend.h"
class EffectsManager;
diff --git a/src/preferences/dialog/dlgprefmodplug.h b/src/preferences/dialog/dlgprefmodplug.h
index 1e59f528f6a6..34855047d716 100644
--- a/src/preferences/dialog/dlgprefmodplug.h
+++ b/src/preferences/dialog/dlgprefmodplug.h
@@ -3,8 +3,9 @@
#pragma once
#include
+
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
namespace Ui {
class DlgPrefModplug;
diff --git a/src/preferences/dialog/dlgprefnovinyl.h b/src/preferences/dialog/dlgprefnovinyl.h
index b03d9237b8e8..e6987fa972cc 100644
--- a/src/preferences/dialog/dlgprefnovinyl.h
+++ b/src/preferences/dialog/dlgprefnovinyl.h
@@ -2,9 +2,9 @@
#include
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefnovinyldlg.h"
#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
class SoundManager;
diff --git a/src/preferences/dialog/dlgprefrecord.h b/src/preferences/dialog/dlgprefrecord.h
index c6ff03eb2524..1f2df3f647f3 100644
--- a/src/preferences/dialog/dlgprefrecord.h
+++ b/src/preferences/dialog/dlgprefrecord.h
@@ -4,10 +4,10 @@
#include
#include
+#include "encoder/encoder.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefrecorddlg.h"
#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
-#include "encoder/encoder.h"
class ControlObject;
class ControlProxy;
diff --git a/src/preferences/dialog/dlgprefreplaygain.h b/src/preferences/dialog/dlgprefreplaygain.h
index 6153a51f2ad3..5266f413ea0a 100644
--- a/src/preferences/dialog/dlgprefreplaygain.h
+++ b/src/preferences/dialog/dlgprefreplaygain.h
@@ -3,10 +3,10 @@
#include
#include
+#include "control/controlproxy.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefreplaygaindlg.h"
#include "preferences/replaygainsettings.h"
-#include "control/controlproxy.h"
-#include "preferences/dlgpreferencepage.h"
class DlgPrefReplayGain: public DlgPreferencePage,
public Ui::DlgPrefReplayGainDlg {
diff --git a/src/preferences/dialog/dlgprefsound.h b/src/preferences/dialog/dlgprefsound.h
index 8eea151afe01..63cdfa12e31b 100644
--- a/src/preferences/dialog/dlgprefsound.h
+++ b/src/preferences/dialog/dlgprefsound.h
@@ -1,8 +1,8 @@
#pragma once
#include "defs_urls.h"
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefsounddlg.h"
-#include "preferences/dlgpreferencepage.h"
#include "preferences/usersettings.h"
#include "soundio/sounddevice.h"
#include "soundio/sounddeviceerror.h"
diff --git a/src/preferences/dialog/dlgprefvinyl.h b/src/preferences/dialog/dlgprefvinyl.h
index 16f6fd20c1cd..5c388c6ea04b 100644
--- a/src/preferences/dialog/dlgprefvinyl.h
+++ b/src/preferences/dialog/dlgprefvinyl.h
@@ -3,8 +3,8 @@
#include
#include
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefvinyldlg.h"
-#include "preferences/dlgpreferencepage.h"
#include "preferences/usersettings.h"
#include "vinylcontrol/vinylcontrolsignalwidget.h"
diff --git a/src/preferences/dialog/dlgprefwaveform.h b/src/preferences/dialog/dlgprefwaveform.h
index e3325cf1ec60..a400e0b92902 100644
--- a/src/preferences/dialog/dlgprefwaveform.h
+++ b/src/preferences/dialog/dlgprefwaveform.h
@@ -2,9 +2,9 @@
#include
+#include "preferences/dialog/dlgpreferencepage.h"
#include "preferences/dialog/ui_dlgprefwaveformdlg.h"
#include "preferences/usersettings.h"
-#include "preferences/dlgpreferencepage.h"
class MixxxMainWindow;
class Library;