-
Notifications
You must be signed in to change notification settings - Fork 341
/
gamesettings.h
148 lines (115 loc) · 3.9 KB
/
gamesettings.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#ifndef GAMESETTINGS_H
#define GAMESETTINGS_H
// Qt headers
#include <QString>
#include <QCoreApplication>
// MythTV headers
#include <settings.h>
#include <mythcontext.h>
// The real work.
struct GameTypes {
QString nameStr;
QString idStr;
QString extensions;
};
#define MAX_GAME_TYPES 12
const GameTypes GameTypeList[MAX_GAME_TYPES] =
{
{ QT_TRANSLATE_NOOP("(GameTypes)", "OTHER"), "OTHER", "" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "AMIGA"), "AMIGA", "adf,ipf" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "ATARI"), "ATARI", "bin,a26" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "GAMEGEAR"), "GAMEGEAR", "gg" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "GENESIS/MEGADRIVE"), "GENESIS", "smd,bin,md" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "MAME"), "MAME", "" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "N64"), "N64", "v64,n64" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "NES"), "NES", "zip,nes" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "PC GAME"), "PC", "" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "PCE/TG16"),"PCE", "pce" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "SEGA/MASTER SYSTEM"), "SEGA", "sms" },
{ QT_TRANSLATE_NOOP("(GameTypes)", "SNES"), "SNES", "zip,smc,sfc,fig,swc" }
};
const QString GetGameTypeName(const QString GameType);
const QString GetGameTypeExtensions(const QString GameType);
class MythGameGeneralSettings;
class MythGamePlayerSettings;
class MythGamePlayerEditor;
class GameDBStorage : public SimpleDBStorage
{
protected:
GameDBStorage(StorageUser *_user,
const MythGamePlayerSettings &_parent,
const QString &_name) :
SimpleDBStorage(_user, "gameplayers", _name), parent(_parent)
{
}
virtual QString GetSetClause(MSqlBindings &bindings) const;
virtual QString GetWhereClause(MSqlBindings &bindings) const;
const MythGamePlayerSettings &parent;
};
class MythGameGeneralSettings : public ConfigurationWizard
{
Q_DECLARE_TR_FUNCTIONS(MythGameGeneralSettings)
public:
MythGameGeneralSettings();
};
class MythGamePlayerSettings : public QObject, public ConfigurationWizard
{
Q_OBJECT
public:
MythGamePlayerSettings();
int getGamePlayerID(void) const { return id->intValue(); };
void loadByID(int id);
static void fillSelections(SelectSetting* setting);
static QString idToName(int id);
QString getSourceName(void) const { return name->getValue(); };
virtual void Save(void)
{
if (name)
ConfigurationWizard::Save();
}
virtual void Save(QString /*destination*/) { }
private:
class ID : public AutoIncrementDBSetting
{
public:
ID() : AutoIncrementDBSetting("gameplayers", "gameplayerid")
{
setName("GamePlayerName");
setVisible(false);
}
};
class Name : public LineEditSetting, public GameDBStorage
{
public:
Name(const MythGamePlayerSettings &parent) :
LineEditSetting(this), GameDBStorage(this, parent, "playername")
{
setLabel(MythGamePlayerSettings::tr("Player Name"));
setHelpText(MythGamePlayerSettings::tr("Name of this Game and or "
"Emulator"));
}
};
private:
QString settingValue;
ID *id;
Name *name;
};
class MPUBLIC MythGamePlayerEditor : public QObject, public ConfigurationDialog
{
Q_OBJECT
public:
MythGamePlayerEditor();
virtual MythDialog *dialogWidget(MythMainWindow *parent,
const char *widgetName=0);
virtual DialogCode exec(bool saveOnExec = true, bool doLoad = true);
virtual void Load(void);
virtual void Save(void) { }
virtual void Save(QString /*destination*/) { }
public slots:
void menu();
void edit();
void del();
private:
ListBoxSetting *listbox;
};
#endif