-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Expand file tree
/
Copy pathdlgpreferences.h
More file actions
112 lines (95 loc) · 3.21 KB
/
dlgpreferences.h
File metadata and controls
112 lines (95 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#pragma once
#include <QDialog>
#include <QDir>
#include <QEvent>
#include <QRect>
#include <QStringList>
#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"
#include "preferences/usersettings.h"
class ControllerManager;
class DlgPrefControllers;
class DlgPrefSound;
class EffectsManager;
class Library;
class SoundManager;
class VinylControlManager;
namespace mixxx {
class ScreensaverManager;
namespace skin {
class SkinLoader;
} // namespace skin
} // namespace mixxx
class DlgPreferences : public QDialog, public Ui::DlgPreferencesDlg {
Q_OBJECT
public:
struct PreferencesPage {
PreferencesPage() {
}
PreferencesPage(DlgPreferencePage* pDlg, QTreeWidgetItem* pTreeItem)
: pDlg(pDlg),
pTreeItem(pTreeItem) {
}
DlgPreferencePage* pDlg;
QTreeWidgetItem* pTreeItem;
};
DlgPreferences(
std::shared_ptr<mixxx::ScreensaverManager> pScreensaverManager,
std::shared_ptr<mixxx::skin::SkinLoader> pSkinLoader,
std::shared_ptr<SoundManager> pSoundManager,
std::shared_ptr<ControllerManager> pControllerManager,
std::shared_ptr<VinylControlManager> pVCManager,
std::shared_ptr<EffectsManager> pEffectsManager,
std::shared_ptr<SettingsManager> pSettingsManager,
std::shared_ptr<Library> pLibrary);
virtual ~DlgPreferences();
void addPageWidget(PreferencesPage page,
const QString& pageTitle,
const QString& iconFile);
void removePageWidget(DlgPreferencePage* pWidget);
void expandTreeItem(QTreeWidgetItem* pItem);
void switchToPage(const QString& pageTitle, DlgPreferencePage* pPage);
public slots:
void changePage(QTreeWidgetItem* pCurrent, QTreeWidgetItem* pPrevious);
void showSoundHardwarePage(
std::optional<mixxx::preferences::SoundHardwareTab> tab =
std::nullopt);
void slotButtonPressed(QAbstractButton* pButton);
signals:
void closeDlg();
void showDlg();
// Emitted just after the user clicks Apply or OK.
void applyPreferences();
// Emitted if the user clicks Cancel
void cancelPreferences();
// Emitted if the user clicks Reset to Defaults.
void resetToDefaults();
void reloadUserInterface();
void tooltipModeChanged(mixxx::preferences::Tooltips tooltipMode);
void menuBarAutoHideChanged();
protected:
bool eventFilter(QObject*, QEvent*);
void moveEvent(QMoveEvent* e);
void resizeEvent(QResizeEvent* e);
private:
DlgPreferencePage* currentPage();
void fixSliderStyle();
QList<PreferencesPage> m_allPages;
void onShow();
void onHide();
QRect getDefaultGeometry();
QAbstractButton* m_pApplyButton;
QAbstractButton* m_pAcceptButton;
QStringList m_geometry;
UserSettingsPointer m_pConfig;
std::unique_ptr<DlgPrefSound> m_pSoundDlg;
PreferencesPage m_soundPage;
DlgPrefControllers* m_pControllersDlg;
QSize m_pageSizeHint;
QDir m_iconsPath;
bool pendingConfigValidOnAllPages();
};