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 WIIMOTESETTINGSPAGE_H
19 #define WIIMOTESETTINGSPAGE_H
20 
21 #include "ui/settingspage.h"
22 
23 #include <QSettings>
24 
25 class QTreeWidgetItem;
26 class Ui_WiimoteSettingsPage;
27 
28 class WiimoteSettingsPage : public SettingsPage {
29   Q_OBJECT
30 
31  public:
32   WiimoteSettingsPage(SettingsDialog* dialog);
33 
34   void Load();
35   void Save();
36 
37   QString GetReadableWiiremoteSequence(quint64 value);
TextActions()38   QStringList TextActions() const { return text_actions_.values(); }
39 
40 signals:
41   void SetWiimotedevInterfaceActived(bool);
42 
43  private slots:
44   void AddAction();
45   void AddShortcut(quint64 button, quint32 action);
46   void DefaultSettings();
47   void DeleteAction();
48   void ItemClicked(QTreeWidgetItem*);
49 
50  private:
51   struct Shortcut {
52     QTreeWidgetItem* object;
53     quint64 button;
54     quint32 action;
55   };
56 
57   Ui_WiimoteSettingsPage* ui_;
58 
59   QString current_id_;
60 
61   QList<Shortcut> actions_;
62   QMap<quint64, QString> text_buttons_;
63   QMap<quint32, QString> text_actions_;
64 
65   QTreeWidgetItem* selected_item_;
66 };
67 
68 #endif  // WIIMOTESETTINGSPAGE_H
69