src/configuration.cc

changeset 739
152b33a6d51b
parent 662
2f1bd9112408
child 757
8ab9fa53142b
equal deleted inserted replaced
738:16b63398aa1f 739:152b33a6d51b
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)

mercurial