File indexing completed on 2024-05-12 04:45:35
0001 /* 0002 SnoreNotify is a Notification Framework based on Qt 0003 Copyright (C) 2015 Hannah von Reth <vonreth@kde.org> 0004 0005 SnoreNotify is free software: you can redistribute it and/or modify 0006 it under the terms of the GNU Lesser General Public License as published by 0007 the Free Software Foundation, either version 3 of the License, or 0008 (at your option) any later version. 0009 0010 SnoreNotify is distributed in the hope that it will be useful, 0011 but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0013 GNU Lesser General Public License for more details. 0014 0015 You should have received a copy of the GNU Lesser General Public License 0016 along with SnoreNotify. If not, see <http://www.gnu.org/licenses/>. 0017 */ 0018 #ifndef SETTINGSDIALOG_H 0019 #define SETTINGSDIALOG_H 0020 0021 #include "libsnore/settings/snore_settings_exports.h" 0022 #include "libsnore/settings/pluginsettingswidget.h" 0023 0024 #include <QWidget> 0025 0026 class QAbstractButton; 0027 0028 namespace Snore 0029 { 0030 class PluginSettingsWidget; 0031 } 0032 0033 namespace Ui 0034 { 0035 class SettingsDialog; 0036 } 0037 0038 namespace Snore 0039 { 0040 0041 /** 0042 * A QWidget providing access to the settings of the plugins. 0043 * If your application does not offer a ui you might call snore-settings insetad. 0044 */ 0045 0046 class SNORE_SETTINGS_EXPORT SettingsDialog : public QWidget 0047 { 0048 Q_OBJECT 0049 0050 public: 0051 explicit SettingsDialog(QWidget *parent = nullptr); 0052 ~SettingsDialog(); 0053 0054 /** 0055 * \todo move to private header or cleanup 0056 */ 0057 void initTabs(); 0058 0059 public Q_SLOTS: 0060 void setVisible(bool b) override; 0061 0062 /** 0063 * Save the settings. 0064 */ 0065 void accept(); 0066 0067 /** 0068 * Reset the settings. 0069 */ 0070 void reset(); 0071 0072 private Q_SLOTS: 0073 void on_pushButton_clicked(); 0074 void load(); 0075 void loadPrimaryBackendBox(const QString &backend); 0076 void save(); 0077 0078 private: 0079 Ui::SettingsDialog *ui; 0080 QList<Snore::PluginSettingsWidget *> m_tabs; 0081 0082 }; 0083 } 0084 0085 #endif // SETTINGSDIALOG_H