1 /*
2     SPDX-FileCopyrightText: 2009 Mathias Kraus <k.hias@gmx.de>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef PLAYERSETTINGS_H
8 #define PLAYERSETTINGS_H
9 
10 #include <QKeySequence>
11 #include <QString>
12 #include <QMap>
13 
14 class QStringList;
15 
16 class PlayerSettings
17 {
18 public:
19     PlayerSettings();
20     ~PlayerSettings();
21 
22     const QStringList playerIDs() const;
23     const QString playerName(const QString& strPlayerID) const;
24     const QString playerDesktopFilePath(const QString& strPlayerID) const;
25     const QString playerGraphicsFile(const QString& strPlayerID) const;
26     bool enabled(const QString& strPlayerID) const;
27     const QKeySequence keyUp(const QString& strPlayerID) const;
28     const QKeySequence keyRight(const QString& strPlayerID) const;
29     const QKeySequence keyDown(const QString& strPlayerID) const;
30     const QKeySequence keyLeft(const QString& strPlayerID) const;
31     const QKeySequence keyPutBomb(const QString& strPlayerID) const;
32 
33     void savePlayerSettings();
34     void discardUnsavedSettings();
35     void setPlayerName(const QString& strPlayerID, const QString& strName);
36     void setEnabled(const QString& strPlayerID, const bool enabled);
37     void setKeyUp(const QString& strPlayerID, const QKeySequence& key);
38     void setKeyRight(const QString& strPlayerID, const QKeySequence& key);
39     void setKeyDown(const QString& strPlayerID, const QKeySequence& key);
40     void setKeyLeft(const QString& strPlayerID, const QKeySequence& key);
41     void setKeyPutBomb(const QString& strPlayerID, const QKeySequence& key);
42 
43 private:
44     struct StructPlayerSettings
45     {
46         QString strPlayerID;
47         QString strPlayerName;
48         QString strPlayerDesktopFilePath;
49         QString strPlayerGraphicsFile;
50         bool enabled;
51         QKeySequence keyUp;
52         QKeySequence keyRight;
53         QKeySequence keyDown;
54         QKeySequence keyLeft;
55         QKeySequence keyPutBomb;
56     };
57 
58     QMap <QString, StructPlayerSettings> m_playerSettings;
59     QMap <QString, StructPlayerSettings> m_pendingPlayerSettings;
60 };
61 
62 #endif
63