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