Chris@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@0: Chris@0: /* Chris@0: Sonic Visualiser Chris@0: An audio file viewer and annotation editor. Chris@0: Centre for Digital Music, Queen Mary, University of London. Chris@0: This file copyright 2006 Chris Cannam. Chris@0: Chris@0: This program is free software; you can redistribute it and/or Chris@0: modify it under the terms of the GNU General Public License as Chris@0: published by the Free Software Foundation; either version 2 of the Chris@0: License, or (at your option) any later version. See the file Chris@0: COPYING included with this distribution for more information. Chris@0: */ Chris@0: Chris@0: #ifndef _PREFERENCES_DIALOG_H_ Chris@0: #define _PREFERENCES_DIALOG_H_ Chris@0: Chris@0: #include Chris@436: #include Chris@1448: #include Chris@0: Chris@0: #include "base/Window.h" Chris@0: Chris@9: class WindowTypeSelector; Chris@0: class QPushButton; Chris@180: class QLineEdit; Chris@436: class QTabWidget; Chris@1397: class QComboBox; Chris@0: Chris@0: class PreferencesDialog : public QDialog Chris@0: { Chris@0: Q_OBJECT Chris@0: Chris@0: public: Chris@528: PreferencesDialog(QWidget *parent = 0); Chris@9: virtual ~PreferencesDialog(); Chris@0: Chris@436: enum Tab { Chris@436: GeneralTab, Chris@1436: AudioIOTab, Chris@436: AppearanceTab, Chris@436: AnalysisTab, Chris@436: TemplateTab Chris@436: }; Chris@436: void switchToTab(Tab tab); Chris@436: Chris@1413: signals: Chris@1413: void audioDeviceChanged(); Chris@1448: void coloursChanged(); Chris@1413: Chris@163: public slots: Chris@163: void applicationClosing(bool quickly); Chris@163: Chris@0: protected slots: Chris@9: void windowTypeChanged(WindowType type); Chris@115: void spectrogramSmoothingChanged(int state); Chris@299: void spectrogramXSmoothingChanged(int state); Chris@1096: void spectrogramGColourChanged(int state); Chris@1096: void spectrogramMColourChanged(int state); Chris@1097: void colour3DColourChanged(int state); Chris@1448: void overviewColourChanged(int state); Chris@0: void propertyLayoutChanged(int layout); Chris@0: void tuningFrequencyChanged(double freq); Chris@1397: void audioImplementationChanged(int impl); Chris@1397: void audioPlaybackDeviceChanged(int device); Chris@1397: void audioRecordDeviceChanged(int device); Chris@180: void resampleOnLoadChanged(int state); Chris@1379: void gaplessModeChanged(int state); Chris@1275: void vampProcessSeparationChanged(int state); Chris@180: void tempDirRootChanged(QString root); Chris@180: void backgroundModeChanged(int mode); Chris@337: void timeToTextModeChanged(int mode); Chris@906: void showHMSChanged(int state); Chris@702: void octaveSystemChanged(int system); Chris@225: void viewFontSizeChanged(int sz); Chris@237: void showSplashChanged(int state); Chris@436: void defaultTemplateChanged(int); Chris@658: void localeChanged(int); Chris@686: void networkPermissionChanged(int state); Chris@950: void retinaChanged(int state); Chris@180: Chris@180: void tempDirButtonClicked(); Chris@0: Chris@0: void okClicked(); Chris@0: void applyClicked(); Chris@0: void cancelClicked(); Chris@0: Chris@0: protected: Chris@9: WindowTypeSelector *m_windowTypeSelector; Chris@0: QPushButton *m_applyButton; Chris@180: Chris@436: QTabWidget *m_tabs; Chris@436: QMap m_tabOrdering; Chris@436: Chris@180: QLineEdit *m_tempDirRootEdit; Chris@436: Chris@1397: QComboBox *m_audioPlaybackDeviceCombo; Chris@1397: QComboBox *m_audioRecordDeviceCombo; Chris@1397: void rebuildDeviceCombos(); Chris@1397: Chris@436: QString m_currentTemplate; Chris@436: QStringList m_templates; Chris@658: Chris@658: QString m_currentLocale; Chris@658: QStringList m_locales; Chris@0: Chris@9: WindowType m_windowType; Chris@180: int m_spectrogramSmoothing; Chris@299: int m_spectrogramXSmoothing; Chris@1096: int m_spectrogramGColour; Chris@1096: int m_spectrogramMColour; Chris@1097: int m_colour3DColour; Chris@1448: QColor m_overviewColour; Chris@180: int m_propertyLayout; Chris@922: double m_tuningFrequency; Chris@1397: int m_audioImplementation; Chris@1397: int m_audioPlaybackDevice; Chris@1397: int m_audioRecordDevice; Chris@180: bool m_resampleOnLoad; Chris@1379: bool m_gapless; Chris@1275: bool m_runPluginsInProcess; Chris@686: bool m_networkPermission; Chris@950: bool m_retina; Chris@180: QString m_tempDirRoot; Chris@180: int m_backgroundMode; Chris@337: int m_timeToTextMode; Chris@906: bool m_showHMS; Chris@702: int m_octaveSystem; Chris@225: int m_viewFontSize; Chris@237: bool m_showSplash; Chris@180: Chris@1413: bool m_audioDeviceChanged; Chris@1448: bool m_coloursChanged; Chris@180: bool m_changesOnRestart; Chris@0: }; Chris@0: Chris@0: #endif