##// END OF EJS Templates
added support for qflags, which where previously missing...
florianlink -
r49:d99de02fe548
parent child
Show More
@@ -147,10 +147,14 void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c
147
147
148 AbstractMetaEnumList enums1 = meta_class->enums();
148 AbstractMetaEnumList enums1 = meta_class->enums();
149 AbstractMetaEnumList enums;
149 AbstractMetaEnumList enums;
150 QList<FlagsTypeEntry*> flags;
150 foreach(AbstractMetaEnum* enum1, enums1) {
151 foreach(AbstractMetaEnum* enum1, enums1) {
151 // catch gadgets and enums that are not exported on QObjects...
152 // catch gadgets and enums that are not exported on QObjects...
152 if (enum1->wasPublic() && (!meta_class->isQObject() || !enum1->hasQEnumsDeclaration())) {
153 if (enum1->wasPublic() && (!meta_class->isQObject() || !enum1->hasQEnumsDeclaration())) {
153 enums << enum1;
154 enums << enum1;
155 if (enum1->typeEntry()->flags()) {
156 flags << enum1->typeEntry()->flags();
157 }
154 }
158 }
155 }
159 }
156 if (enums.count()) {
160 if (enums.count()) {
@@ -159,7 +163,20 void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c
159 s << enum1->name() << " ";
163 s << enum1->name() << " ";
160 }
164 }
161 s << ")" << endl;
165 s << ")" << endl;
162
166
167 if (flags.count()) {
168 s << "Q_FLAGS(";
169 foreach(FlagsTypeEntry* flag1, flags) {
170 QString origName = flag1->originalName();
171 int idx = origName.lastIndexOf("::");
172 if (idx!= -1) {
173 origName = origName.mid(idx+2);
174 }
175 s << origName << " ";
176 }
177 s << ")" << endl;
178 }
179
163 foreach(AbstractMetaEnum* enum1, enums) {
180 foreach(AbstractMetaEnum* enum1, enums) {
164 s << "enum " << enum1->name() << "{" << endl;
181 s << "enum " << enum1->name() << "{" << endl;
165 bool first = true;
182 bool first = true;
@@ -170,8 +187,19 void ShellHeaderGenerator::write(QTextStream &s, const AbstractMetaClass *meta_c
170 }
187 }
171 s << "};" << endl;
188 s << "};" << endl;
172 }
189 }
190 if (flags.count()) {
191 foreach(AbstractMetaEnum* enum1, enums) {
192 if (enum1->typeEntry()->flags()) {
193 QString origName = enum1->typeEntry()->flags()->originalName();
194 int idx = origName.lastIndexOf("::");
195 if (idx!= -1) {
196 origName = origName.mid(idx+2);
197 }
198 s << "Q_DECLARE_FLAGS("<< origName << ", " << enum1->name() <<")"<<endl;
199 }
200 }
201 }
173 }
202 }
174
175 s << "public slots:" << endl;
203 s << "public slots:" << endl;
176 if (meta_class->generateShellClass() || !meta_class->isAbstract()) {
204 if (meta_class->generateShellClass() || !meta_class->isAbstract()) {
177
205
General Comments 0
You need to be logged in to leave comments. Login now