1 /* This file is part of Clementine. 2 Copyright 2010, David Sansome <me@davidsansome.com> 3 4 Clementine is free software: you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation, either version 3 of the License, or 7 (at your option) any later version. 8 9 Clementine is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with Clementine. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef SETTINGSPAGE_H 19 #define SETTINGSPAGE_H 20 21 #include <QWidget> 22 23 #include "widgets/osd.h" 24 25 class SettingsDialog; 26 27 class SettingsPage : public QWidget { 28 Q_OBJECT 29 30 public: 31 SettingsPage(SettingsDialog* dialog); 32 33 // Return false to grey out the page's item in the list. IsEnabled()34 virtual bool IsEnabled() const { return true; } 35 36 // Load is called when the dialog is shown, Save when the user clicks OK, and 37 // Cancel when the user clicks on Cancel 38 virtual void Load() = 0; 39 virtual void Save() = 0; Cancel()40 virtual void Cancel() {} 41 42 // The dialog that this page belongs to. dialog()43 SettingsDialog* dialog() const { return dialog_; } 44 45 signals: 46 void NotificationPreview(OSD::Behaviour, QString, QString); 47 void SetWiimotedevInterfaceActived(bool); 48 49 private: 50 SettingsDialog* dialog_; 51 }; 52 53 #endif // SETTINGSPAGE_H 54