File indexing completed on 2024-05-05 04:51:38
0001 /* 0002 SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef K3BOPTIONDIALOG_H 0007 #define K3BOPTIONDIALOG_H 0008 0009 #include <KPageDialog> 0010 #include <QHash> 0011 0012 class KPageWidgetItem; 0013 namespace K3b { 0014 class MiscOptionTab; 0015 } 0016 namespace K3b { 0017 class DeviceOptionTab; 0018 } 0019 namespace K3b { 0020 class ExternalBinOptionTab; 0021 } 0022 namespace K3b { 0023 class NotifyOptionTab; 0024 } 0025 namespace K3b { 0026 class PluginOptionTab; 0027 } 0028 namespace K3b { 0029 class ThemeOptionTab; 0030 } 0031 namespace K3b { 0032 class CddbOptionTab; 0033 } 0034 namespace K3b { 0035 class AdvancedOptionTab; 0036 } 0037 0038 /** 0039 *@author Sebastian Trueg 0040 */ 0041 namespace K3b { 0042 class OptionDialog : public KPageDialog 0043 { 0044 Q_OBJECT 0045 0046 public: 0047 explicit OptionDialog( QWidget* parent = 0 ); 0048 ~OptionDialog() override; 0049 0050 enum ConfigPage { 0051 Misc = 0, 0052 Devices, 0053 Programs, 0054 Notifications, 0055 Plugins, 0056 Themes, 0057 Cddb, 0058 Advanced 0059 }; 0060 0061 public Q_SLOTS: 0062 void setCurrentPage( ConfigPage page ); 0063 0064 protected Q_SLOTS: 0065 void slotOk(); 0066 void slotApply(); 0067 void slotDefault(); 0068 0069 private: 0070 bool saveSettings(); 0071 0072 // misc options 0073 MiscOptionTab* m_miscOptionTab; 0074 KPageWidgetItem* m_miscPage; 0075 void setupMiscPage(); 0076 0077 // device options 0078 DeviceOptionTab* m_deviceOptionTab; 0079 KPageWidgetItem* m_devicePage; 0080 void setupDevicePage(); 0081 0082 // programs options 0083 ExternalBinOptionTab* m_externalBinOptionTab; 0084 KPageWidgetItem* m_programsPage; 0085 void setupProgramsPage(); 0086 0087 // notify options 0088 NotifyOptionTab* m_notifyOptionTab; 0089 KPageWidgetItem* m_notifyPage; 0090 void setupNotifyPage(); 0091 0092 // plugin options 0093 PluginOptionTab* m_pluginOptionTab; 0094 KPageWidgetItem* m_pluginPage; 0095 void setupPluginPage(); 0096 0097 // theme options 0098 ThemeOptionTab* m_themeOptionTab; 0099 KPageWidgetItem* m_themePage; 0100 void setupThemePage(); 0101 0102 // cddb options 0103 CddbOptionTab* m_cddbOptionTab; 0104 KPageWidgetItem* m_cddbPage; 0105 void setupCddbPage(); 0106 0107 // advanced options 0108 AdvancedOptionTab* m_advancedOptionTab; 0109 KPageWidgetItem* m_advancedPage; 0110 void setupAdvancedPage(); 0111 0112 typedef QHash<ConfigPage,KPageWidgetItem*> Pages; 0113 Pages m_pages; 0114 }; 0115 } 0116 0117 #endif