38 # define EXTENSION ".cfg" |
38 # define EXTENSION ".cfg" |
39 #endif // _WIN32 |
39 #endif // _WIN32 |
40 |
40 |
41 Config* g_configPointers[MAX_CONFIG]; |
41 Config* g_configPointers[MAX_CONFIG]; |
42 static int g_cfgPointerCursor = 0; |
42 static int g_cfgPointerCursor = 0; |
43 static QMap<QString, Config*> g_configsByName; |
43 static QMap<String, Config*> g_configsByName; |
44 static QList<Config*> g_configs; |
44 static QList<Config*> g_configs; |
45 |
45 |
46 // ============================================================================= |
46 // ============================================================================= |
47 // Get the QSettings object. |
47 // Get the QSettings object. |
48 // ============================================================================= |
48 // ============================================================================= |
49 static QSettings* getSettingsObject() |
49 static QSettings* getSettingsObject() |
50 { |
50 { |
51 QString path = qApp->applicationDirPath() + "/" UNIXNAME EXTENSION; |
51 String path = qApp->applicationDirPath() + "/" UNIXNAME EXTENSION; |
52 return new QSettings (path, QSettings::IniFormat); |
52 return new QSettings (path, QSettings::IniFormat); |
53 } |
53 } |
54 |
54 |
55 Config::Config (QString name) : |
55 Config::Config (String name) : |
56 m_name (name) {} |
56 m_name (name) {} |
57 |
57 |
58 // ============================================================================= |
58 // ============================================================================= |
59 // Load the configuration from file |
59 // Load the configuration from file |
60 // ============================================================================= |
60 // ============================================================================= |
110 } |
110 } |
111 |
111 |
112 // ============================================================================= |
112 // ============================================================================= |
113 // Where is the configuration file located at? |
113 // Where is the configuration file located at? |
114 // ============================================================================= |
114 // ============================================================================= |
115 QString Config::filepath (QString file) |
115 String Config::filepath (String file) |
116 { |
116 { |
117 return Config::dirpath() + DIRSLASH + file; |
117 return Config::dirpath() + DIRSLASH + file; |
118 } |
118 } |
119 |
119 |
120 // ============================================================================= |
120 // ============================================================================= |
121 // Directory of the configuration file. |
121 // Directory of the configuration file. |
122 // ============================================================================= |
122 // ============================================================================= |
123 QString Config::dirpath() |
123 String Config::dirpath() |
124 { |
124 { |
125 QSettings* cfg = getSettingsObject(); |
125 QSettings* cfg = getSettingsObject(); |
126 return dirname (cfg->fileName()); |
126 return dirname (cfg->fileName()); |
127 } |
127 } |
128 |
128 |
140 g_configPointers[g_cfgPointerCursor++] = ptr; |
140 g_configPointers[g_cfgPointerCursor++] = ptr; |
141 } |
141 } |
142 |
142 |
143 // ============================================================================= |
143 // ============================================================================= |
144 // ============================================================================= |
144 // ============================================================================= |
145 template<class T> T* getConfigByName (QString name, Config::Type type) |
145 template<class T> T* getConfigByName (String name, Config::Type type) |
146 { |
146 { |
147 auto it = g_configsByName.find (name); |
147 auto it = g_configsByName.find (name); |
148 |
148 |
149 if (it == g_configsByName.end()) |
149 if (it == g_configsByName.end()) |
150 return null; |
150 return null; |
163 // ============================================================================= |
163 // ============================================================================= |
164 // ============================================================================= |
164 // ============================================================================= |
165 #undef IMPLEMENT_CONFIG |
165 #undef IMPLEMENT_CONFIG |
166 |
166 |
167 #define IMPLEMENT_CONFIG(NAME) \ |
167 #define IMPLEMENT_CONFIG(NAME) \ |
168 NAME##Config* NAME##Config::getByName (QString name) \ |
168 NAME##Config* NAME##Config::getByName (String name) \ |
169 { \ |
169 { \ |
170 return getConfigByName<NAME##Config> (name, E##NAME##Type); \ |
170 return getConfigByName<NAME##Config> (name, E##NAME##Type); \ |
171 } |
171 } |
172 |
172 |
173 IMPLEMENT_CONFIG (Int) |
173 IMPLEMENT_CONFIG (Int) |