src/Configuration.h

changeset 690
9e9c52ca955e
parent 642
751a8df42842
equal deleted inserted replaced
689:397870c6ed38 690:9e9c52ca955e
14 * 14 *
15 * You should have received a copy of the GNU General Public License 15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. 16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */ 17 */
18 18
19 #ifndef LDFORGE_CONFIG_H 19 #pragma once
20 #define LDFORGE_CONFIG_H
21
22 #include "PropertyMacro.h"
23 #include "Types.h"
24
25 // =============================================================================
26 #include <QString> 20 #include <QString>
27 #include <QVariant> 21 #include <QVariant>
28 #include <QKeySequence> 22 #include <QKeySequence>
23 #include "Macros.h"
24 #include "Types.h"
25
29 class QSettings; 26 class QSettings;
30 27
31 #define MAX_INI_LINE 512 28 #define MAX_INI_LINE 512
32 #define MAX_CONFIG 512 29 #define MAX_CONFIG 512
33 30
38 #define extern_cfg(T, NAME) extern Config::T##Type NAME; 35 #define extern_cfg(T, NAME) extern Config::T##Type NAME;
39 36
40 // ========================================================= 37 // =========================================================
41 class Config 38 class Config
42 { 39 {
43 PROPERTY (private, QString, Name, STR_OPS, STOCK_WRITE) 40 PROPERTY (private, QString, name, setName, STOCK_WRITE)
44 41
45 public: 42 public:
46 enum Type 43 enum Type
47 { 44 {
48 EIntType, 45 EIntType,
146 private: \ 143 private: \
147 ValueType* m_valueptr; \ 144 ValueType* m_valueptr; \
148 ValueType m_default; 145 ValueType m_default;
149 146
150 // ============================================================================= 147 // =============================================================================
148 //
151 class IntConfig : public Config 149 class IntConfig : public Config
152 { 150 {
153 IMPLEMENT_CONFIG (Int) 151 IMPLEMENT_CONFIG (Int)
154 }; 152 };
155 153
156 // ============================================================================= 154 // =============================================================================
155 //
157 class StringConfig : public Config 156 class StringConfig : public Config
158 { 157 {
159 IMPLEMENT_CONFIG (String) 158 IMPLEMENT_CONFIG (String)
160 }; 159 };
161 160
162 // ============================================================================= 161 // =============================================================================
162 //
163 class FloatConfig : public Config 163 class FloatConfig : public Config
164 { 164 {
165 IMPLEMENT_CONFIG (Float) 165 IMPLEMENT_CONFIG (Float)
166 }; 166 };
167 167
168 // ============================================================================= 168 // =============================================================================
169 //
169 class BoolConfig : public Config 170 class BoolConfig : public Config
170 { 171 {
171 IMPLEMENT_CONFIG (Bool) 172 IMPLEMENT_CONFIG (Bool)
172 }; 173 };
173 174
174 // ============================================================================= 175 // =============================================================================
176 //
175 class KeySequenceConfig : public Config 177 class KeySequenceConfig : public Config
176 { 178 {
177 IMPLEMENT_CONFIG (KeySequence) 179 IMPLEMENT_CONFIG (KeySequence)
178 }; 180 };
179 181
180 // ============================================================================= 182 // =============================================================================
183 //
181 class ListConfig : public Config 184 class ListConfig : public Config
182 { 185 {
183 IMPLEMENT_CONFIG (List) 186 IMPLEMENT_CONFIG (List)
184 }; 187 };
185 188
186 // ============================================================================= 189 // =============================================================================
190 //
187 class VertexConfig : public Config 191 class VertexConfig : public Config
188 { 192 {
189 IMPLEMENT_CONFIG (Vertex) 193 IMPLEMENT_CONFIG (Vertex)
190 }; 194 };
191
192 #endif // LDFORGE_CONFIG_H

mercurial