@@ -35,8 +35,30 @@ QString FilesContents::classPri(const QString &className, bool hasForm)
35
35
36
36
// ========================================================================================================================
37
37
38
- QString FilesContents::classHeader (const QString &className, bool hasForm)
38
+ QString FilesContents::classHeader (const QString &className, bool hasForm, bool hasModel )
39
39
{
40
+ QString camelCaseClassName = className;
41
+ camelCaseClassName.replace (QString (" View" ), QString (" " ));
42
+
43
+ QString headerInclude =
44
+ QString (
45
+ " #include \" I%1.h\"\n "
46
+ ).arg (camelCaseClassName);
47
+
48
+ QString memberValue =
49
+ QString (
50
+ " I%1 *m_"
51
+ ).arg (camelCaseClassName);
52
+
53
+ QString setModelOverride =
54
+ QString (
55
+ " void setModel(I%1 *model) override;\n "
56
+ ).arg (camelCaseClassName);
57
+
58
+ camelCaseClassName[0 ] = camelCaseClassName[0 ].toLower ();
59
+
60
+ memberValue.append (camelCaseClassName + " ;" );
61
+
40
62
QString uiNamespace =
41
63
QString (
42
64
" namespace Ui\n "
@@ -60,43 +82,88 @@ QString FilesContents::classHeader(const QString &className, bool hasForm)
60
82
" #include \" I%2.h\"\n "
61
83
" \n "
62
84
" %3"
85
+ " %4"
63
86
" class %2 final : public I%2\n "
64
87
" {\n "
65
88
" public:\n "
66
89
" %2();\n "
67
90
" ~%2() override;\n "
68
91
" \n "
92
+ " public:\n "
93
+ " %7\n "
69
94
" private:\n "
95
+ " %5\n "
70
96
" \n "
71
- " %4 "
97
+ " %6 "
72
98
" };\n "
73
99
" \n "
74
100
" #endif"
75
101
)
76
102
.arg (className.toUpper ())
77
103
.arg (className)
104
+ .arg (hasModel ? headerInclude : " " )
78
105
.arg (hasForm ? uiNamespace : " " )
79
- .arg (hasForm ? uiVariableDefine : " " )
106
+ .arg (hasModel ? memberValue : " " )
107
+ .arg (hasForm ? uiVariableDefine : " " ).
108
+ arg (hasModel ? setModelOverride : " " )
80
109
;
81
110
82
111
return content;
83
112
}
84
113
85
114
// ========================================================================================================================
86
115
87
- QString FilesContents::classCpp (const QString &className, bool hasForm)
116
+ QString FilesContents::classCpp (const QString &className, bool hasForm, bool hasModel )
88
117
{
89
118
QString uiHeader =
90
119
QString (
91
120
" #include \" ui_%1.h\"\n "
92
121
).arg (className);
93
122
123
+ QString camelCaseClassName = className;
124
+ camelCaseClassName.replace (QString (" View" ), QString (" " ));
125
+
126
+ if (hasModel)
127
+ {
128
+ uiHeader.append (" \n " );
129
+ uiHeader.append (" #include \" " );
130
+ uiHeader.append (camelCaseClassName);
131
+ uiHeader.append (" Factory.h\"\n " );
132
+ }
133
+
94
134
QString uiInitialize =
95
135
QString (
96
136
" :\n "
97
137
" ui(new Ui::%1)\n "
98
138
).arg (className);
99
139
140
+ QString membrValue = className;
141
+ membrValue.replace (QString (" View" ), QString (" " ));
142
+ membrValue[0 ] = membrValue[0 ].toLower ();
143
+
144
+ QString setModelFunction =
145
+ QString (
146
+ " \n "
147
+ " \n "
148
+ " void %1::setModel(I%2 *model)\n "
149
+ " {\n "
150
+ " m_%3 = model;\n "
151
+ " }\n "
152
+ " \n "
153
+ " //========================================================================================================================\n "
154
+ " \n "
155
+ )
156
+ .arg (className)
157
+ .arg (camelCaseClassName)
158
+ .arg (membrValue);
159
+
160
+ camelCaseClassName[0 ] = camelCaseClassName[0 ].toLower ();
161
+
162
+ if (hasModel)
163
+ {
164
+ uiInitialize.append (" , m_" + camelCaseClassName + " (nullptr)\n " );
165
+ }
166
+
100
167
QString uiSetup =
101
168
" ui->setupUi(this);\n " ;
102
169
@@ -123,12 +190,14 @@ QString FilesContents::classCpp(const QString &className, bool hasForm)
123
190
" }\n "
124
191
" \n "
125
192
" //========================================================================================================================"
193
+ " %6\n "
126
194
)
127
195
.arg (className)
128
196
.arg (hasForm ? uiHeader : " " )
129
197
.arg (hasForm ? uiInitialize : " \n " )
130
198
.arg (hasForm ? uiSetup : " " )
131
199
.arg (hasForm ? uiDelete : " " )
200
+ .arg (hasModel ? setModelFunction : " " )
132
201
;
133
202
134
203
return content;
@@ -151,28 +220,46 @@ QString FilesContents::interfacePri(const QString &className)
151
220
152
221
// ========================================================================================================================
153
222
154
- QString FilesContents::interfaceHeader (const QString &className, const QString &baseClassName)
223
+ QString FilesContents::interfaceHeader (const QString &className, const QString &baseClassName, bool hasModel )
155
224
{
225
+ QString camelCaseClassName = className;
226
+ camelCaseClassName.replace (QString (" View" ), QString (" " ));
227
+
228
+ QString setModel =
229
+ QString (
230
+ " virtual void setModel(I%1 *model) = 0;\n "
231
+ ).arg (camelCaseClassName);
232
+
233
+ QString defineModelInterface =
234
+ QString (" class I%1;\n " ).arg (camelCaseClassName);
235
+
156
236
QString content =
157
237
QString (
158
238
" #ifndef I%1_H\n "
159
239
" #define I%1_H\n "
160
240
" \n "
161
241
" #include <%3>\n "
162
242
" \n "
243
+ " %5\n "
244
+ " \n "
163
245
" class I%2 : public %3\n "
164
246
" {\n "
165
247
" Q_OBJECT\n "
166
248
" public:\n "
167
249
" virtual ~I%2() = default;\n "
168
250
" \n "
251
+ " public:\n "
252
+ " %4\n "
253
+ " \n "
169
254
" };\n "
170
255
" \n "
171
256
" #endif"
172
257
)
173
258
.arg (className.toUpper ())
174
259
.arg (className)
175
- .arg (baseClassName);
260
+ .arg (baseClassName)
261
+ .arg (hasModel ? setModel : " " )
262
+ .arg (hasModel ? defineModelInterface : " " );
176
263
177
264
return content;
178
265
}
@@ -330,7 +417,7 @@ QString FilesContents::providerCpp(const QString &className)
330
417
" : m_%2(%1Factory::create())\n "
331
418
" , m_%2View(%1ViewFactory::create())\n "
332
419
" {\n "
333
- " /* set Model for View*/ \n "
420
+ " m_%2View->setModel(m_%2); \n "
334
421
" }\n "
335
422
" \n "
336
423
" //========================================================================================================================"
0 commit comments