Skip to content

Commit 29a7f9b

Browse files
hjmjohnsonjcfr
authored andcommitted
chore: Prefer c++11 range for to Qt macros
As of Qt 5.7, `foreach` and `Q_FOREACH` macros are deprecated, and C++11 range-based for loops are preferred. Co-authored-by: Jean-Christophe Fillion-Robin <[email protected]>
1 parent 929a4f6 commit 29a7f9b

21 files changed

+165
-159
lines changed

examples/PyLauncher/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ int main(int argc, char *argv[])
7878
}
7979
PythonQtScriptingConsole console(NULL, mainContext);
8080

81-
Q_FOREACH(QString file, files) {
81+
for (QString file : files) {
8282
mainContext.evalFile(file);
8383
}
8484
if (showConsole || console.hadError()) {

generator/abstractmetalang.cpp

Lines changed: 79 additions & 76 deletions
Large diffs are not rendered by default.

generator/abstractmetalang.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ class AbstractMetaFunction : public AbstractMetaAttributes
437437
// true if one or more of the arguments are of QtJambiObject subclasses
438438
bool argumentsHaveNativeId() const
439439
{
440-
foreach (const AbstractMetaArgument *arg, m_arguments) {
440+
for (const AbstractMetaArgument* arg : m_arguments) {
441441
if (arg->type()->hasNativeId())
442442
return true;
443443
}

generator/generator.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ void Generator::generate()
6363

6464
m_classes.sort();
6565

66-
foreach (AbstractMetaClass *cls, m_classes) {
66+
for (AbstractMetaClass* cls : m_classes) {
6767
if (!shouldGenerate(cls))
6868
continue;
6969

@@ -87,7 +87,7 @@ void Generator::printClasses()
8787
AbstractMetaClassList classes = m_classes;
8888
classes.sort();
8989

90-
foreach (AbstractMetaClass *cls, classes) {
90+
for (AbstractMetaClass* cls : classes) {
9191
if (!shouldGenerate(cls))
9292
continue;
9393
write(s, cls);
@@ -127,10 +127,10 @@ bool Generator::hasDefaultConstructor(const AbstractMetaType *type)
127127
QString full_name = type->typeEntry()->qualifiedTargetLangName();
128128
QString class_name = type->typeEntry()->targetLangName();
129129

130-
foreach (const AbstractMetaClass *java_class, m_classes) {
130+
for (const AbstractMetaClass* java_class : m_classes) {
131131
if (java_class->typeEntry()->qualifiedTargetLangName() == full_name) {
132132
AbstractMetaFunctionList functions = java_class->functions();
133-
foreach (const AbstractMetaFunction *function, functions) {
133+
for (const AbstractMetaFunction* function : functions) {
134134
if (function->arguments().size() == 0 && function->name() == class_name)
135135
return true;
136136
}

generator/parser/binder.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ void Binder::declare_symbol(SimpleDeclarationAST *node, InitDeclaratorAST *init_
331331
fun->setVariadics (decl_cc.isVariadics ());
332332

333333
// ... and the signature
334-
foreach (DeclaratorCompiler::Parameter p, decl_cc.parameters())
334+
for (DeclaratorCompiler::Parameter p : decl_cc.parameters())
335335
{
336336
ArgumentModelItem arg = model()->create<ArgumentModelItem>();
337337
arg->setType(qualifyType(p.type, _M_context));
@@ -361,8 +361,9 @@ void Binder::declare_symbol(SimpleDeclarationAST *node, InitDeclaratorAST *init_
361361
{
362362
typeInfo.setFunctionPointer (true);
363363
decl_cc.run (init_declarator->declarator);
364-
foreach (DeclaratorCompiler::Parameter p, decl_cc.parameters())
364+
for (DeclaratorCompiler::Parameter p : decl_cc.parameters()) {
365365
typeInfo.addArgument(p.type);
366+
}
366367
}
367368

368369
var->setType(qualifyType(typeInfo, _M_context));
@@ -426,7 +427,7 @@ void Binder::visitFunctionDefinition(FunctionDefinitionAST *node)
426427
}
427428

428429
decl_cc.run(declarator);
429-
foreach (DeclaratorCompiler::Parameter p, decl_cc.parameters()) {
430+
for (DeclaratorCompiler::Parameter p : decl_cc.parameters()) {
430431
if (p.type.isRvalueReference()) {
431432
//warnHere();
432433
//std::cerr << "** Skipping function with rvalue reference parameter: "
@@ -481,7 +482,7 @@ void Binder::visitFunctionDefinition(FunctionDefinitionAST *node)
481482
}
482483
_M_current_function->setVariadics (decl_cc.isVariadics ());
483484

484-
foreach (DeclaratorCompiler::Parameter p, decl_cc.parameters())
485+
for (DeclaratorCompiler::Parameter p : decl_cc.parameters())
485486
{
486487
ArgumentModelItem arg = model()->create<ArgumentModelItem>();
487488

@@ -650,8 +651,9 @@ void Binder::visitTypedef(TypedefAST *node)
650651
{
651652
typeInfo.setFunctionPointer (true);
652653
decl_cc.run (init_declarator->declarator);
653-
foreach (DeclaratorCompiler::Parameter p, decl_cc.parameters())
654+
for (DeclaratorCompiler::Parameter p : decl_cc.parameters()) {
654655
typeInfo.addArgument(p.type);
656+
}
655657
}
656658

657659
ScopeModelItem scope = currentScope();
@@ -1029,7 +1031,7 @@ TypeInfo Binder::qualifyType(const TypeInfo &type, const QStringList &context) c
10291031

10301032
if (ClassModelItem klass = scope.dynamicCast<_ClassModelItem> ())
10311033
{
1032-
foreach (QString base, klass->baseClasses ())
1034+
for (QString base : klass->baseClasses())
10331035
{
10341036
QStringList ctx = context;
10351037
ctx.removeLast();

generator/parser/codemodel.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ QString TypeInfo::toString(bool parsable) const
212212
tmp += QLatin1String(")");
213213
}
214214

215-
foreach (QString elt, arrayElements ())
215+
for (QString elt : this->arrayElements())
216216
{
217217
tmp += QLatin1String ("[");
218218
tmp += elt;
@@ -400,7 +400,7 @@ FunctionModelItem _ScopeModelItem::declaredFunction(FunctionModelItem item)
400400
{
401401
FunctionList function_list = findFunctions(item->name());
402402

403-
foreach (FunctionModelItem fun, function_list)
403+
for (FunctionModelItem fun : function_list)
404404
{
405405
if (fun->isSimilar(item))
406406
return fun;

generator/prigenerator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ void PriGenerator::generate()
145145
}
146146

147147
file.stream << "HEADERS += \\\n";
148-
foreach (const QString &entry, list) {
148+
for (const QString& entry : list) {
149149
file.stream << " $$PWD/" << entry << " \\\n";
150150
}
151151

@@ -156,7 +156,7 @@ void PriGenerator::generate()
156156
if (compact) {
157157
list = compactFiles(list, ".cpp", m_out_dir + "/generated_cpp/" + folder, folder);
158158
}
159-
foreach (const QString &entry, list) {
159+
for (const QString& entry : list) {
160160
file.stream << " $$PWD/" << entry << " \\\n";
161161
}
162162
file.stream << " $$PWD/" << folder << "_init.cpp\n";

generator/setupgenerator.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ static QStringList getOperatorCodes(const AbstractMetaClass* cls) {
5656
QSet<QString> operatorCodes;
5757
AbstractMetaFunctionList returned;
5858
AbstractMetaFunctionList functions = cls->functions();
59-
foreach (AbstractMetaFunction *function, functions) {
59+
for (AbstractMetaFunction* function : functions) {
6060
if (function->originalName().startsWith("operator")) {
6161
QString op = function->originalName().mid(8);
6262
operatorCodes.insert(op);
@@ -182,7 +182,7 @@ static void addListRegistration(AbstractMetaType::shared_pointer type, QSet<QStr
182182

183183
/*
184184
QString debugStr;
185-
Q_FOREACH(AbstractMetaType* arg, args) {
185+
for (AbstractMetaType* arg : args) {
186186
debugStr += QString(arg->typeEntry()->isEnum()?"ENUM ":"") + arg->typeEntry()->qualifiedCppName() + ",";
187187
if (arg->typeEntry()->qualifiedCppName() == "QPair") {
188188
debugStr += "(" + arg->instantiations().at(0)->typeEntry()->qualifiedCppName() + ",";
@@ -238,7 +238,7 @@ void SetupGenerator::generate()
238238
while (pack.hasNext()) {
239239
pack.next();
240240
QList<const AbstractMetaClass*> list = pack.value();
241-
foreach (const AbstractMetaClass *cls, list) {
241+
for (const AbstractMetaClass* cls : list) {
242242
if (cls->typeEntry()->isPolymorphicBase()) {
243243
classes_with_polymorphic_id.append((AbstractMetaClass*)cls);
244244
}
@@ -325,7 +325,7 @@ void SetupGenerator::generate()
325325
// declare individual class creation functions
326326
s << "void PythonQt_init_" << initName << "(PyObject* module) {" << endl;
327327

328-
foreach (const AbstractMetaClass *cls, list) {
328+
for (const AbstractMetaClass* cls : list) {
329329
if (cls->qualifiedCppName().contains("Ssl")) {
330330
s << "#ifndef QT_NO_SSL" << endl;
331331
}
@@ -376,7 +376,7 @@ void SetupGenerator::generate()
376376
}
377377
}
378378
s << endl;
379-
foreach (QString handler, polymorphicHandlers) {
379+
for (QString handler : polymorphicHandlers) {
380380
s << "PythonQt::self()->addPolymorphicHandler(\""<< handler << "\", polymorphichandler_" << handler << ");" << endl;
381381
}
382382
s << endl;
@@ -407,14 +407,14 @@ QStringList SetupGenerator::writePolymorphicHandler(QTextStream &s, const QStrin
407407
const AbstractMetaClassList &polybase, QList<const AbstractMetaClass*>& allClasses)
408408
{
409409
QStringList handlers;
410-
foreach (AbstractMetaClass *cls, polybase) {
410+
for (AbstractMetaClass* cls : polybase) {
411411
const ComplexTypeEntry *centry = cls->typeEntry();
412412
if (!centry->isPolymorphicBase())
413413
continue;
414414
bool isGraphicsItem = (cls->qualifiedCppName()=="QGraphicsItem");
415415

416416
bool first = true;
417-
foreach (const AbstractMetaClass *clazz, allClasses) {
417+
for (const AbstractMetaClass* clazz : allClasses) {
418418
bool inherits = false;
419419
if (isGraphicsItem) {
420420
const AbstractMetaClass *currentClazz = clazz;

generator/shellimplgenerator.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla
8888

8989
IncludeList list = meta_class->typeEntry()->extraIncludes();
9090
std::sort(list.begin(), list.end());
91-
foreach (const Include &inc, list) {
91+
for (const Include& inc : list) {
9292
ShellGenerator::writeInclude(s, inc);
9393
}
9494
s << endl;
@@ -122,7 +122,7 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla
122122
s << "}" << endl;
123123

124124
AbstractMetaFunctionList virtualsForShell = getVirtualFunctionsForShell(meta_class);
125-
foreach (const AbstractMetaFunction *fun, virtualsForShell) {
125+
for (const AbstractMetaFunction* fun : virtualsForShell) {
126126
bool hasReturnValue = !fun->type().isNull();
127127
writeFunctionSignature(s, fun, meta_class, QString(),
128128
Option(ShowStatic | UnderscoreSpaces | UseIndexedName),
@@ -234,7 +234,7 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla
234234
if (meta_class->generateShellClass() || !meta_class->isAbstract()) {
235235

236236
// write constructors
237-
foreach (const AbstractMetaFunction *ctor, ctors) {
237+
for (const AbstractMetaFunction* ctor : ctors) {
238238
if (ctor->isAbstract() || (!meta_class->generateShellClass() && !ctor->isPublic())) { continue; }
239239

240240
s << meta_class->qualifiedCppName() << "* ";
@@ -382,7 +382,7 @@ void ShellImplGenerator::write(QTextStream &s, const AbstractMetaClass *meta_cla
382382
void ShellImplGenerator::writeInjectedCode(QTextStream &s, const AbstractMetaClass *meta_class)
383383
{
384384
CodeSnipList code_snips = meta_class->typeEntry()->codeSnips();
385-
foreach (const CodeSnip &cs, code_snips) {
385+
for (const CodeSnip& cs : code_snips) {
386386
if (cs.language == TypeSystem::PyWrapperCode) {
387387
s << cs.code() << endl;
388388
}

generator/typesystem.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,7 +1341,8 @@ bool Handler::startElement(const QString &, const QString &n,
13411341

13421342
if (rc.action == ReferenceCount::Invalid) {
13431343
m_error = "unrecognized value for action attribute. supported actions:";
1344-
foreach (QString action, actions.keys())
1344+
QStringList actionKeys = actions.keys();
1345+
for (QString action : actionKeys)
13451346
m_error += " " + action;
13461347
}
13471348

@@ -1654,8 +1655,8 @@ ContainerTypeEntry *TypeDatabase::findContainerType(const QString &name)
16541655

16551656
PrimitiveTypeEntry *TypeDatabase::findTargetLangPrimitiveType(const QString &java_name)
16561657
{
1657-
foreach (QList<TypeEntry *> entries, m_entries.values()) {
1658-
foreach (TypeEntry *e, entries) {
1658+
for (QList<TypeEntry*> entries : m_entries.values()) {
1659+
for (TypeEntry* e : entries) {
16591660
if (e && e->isPrimitive()) {
16601661
PrimitiveTypeEntry *pe = static_cast<PrimitiveTypeEntry *>(e);
16611662
if (pe->targetLangName() == java_name && pe->preferredConversion())
@@ -1800,7 +1801,7 @@ bool TypeDatabase::isClassRejected(const QString &class_name)
18001801
if (!m_rebuild_classes.isEmpty())
18011802
return !m_rebuild_classes.contains(class_name);
18021803

1803-
foreach (const TypeRejection &r, m_rejections)
1804+
for (const TypeRejection& r : m_rejections)
18041805
if (r.class_name == class_name && r.function_name == "*" && r.field_name == "*" && r.enum_name == "*") {
18051806
return true;
18061807
}
@@ -1809,7 +1810,7 @@ bool TypeDatabase::isClassRejected(const QString &class_name)
18091810

18101811
bool TypeDatabase::isEnumRejected(const QString &class_name, const QString &enum_name)
18111812
{
1812-
foreach (const TypeRejection &r, m_rejections) {
1813+
for (const TypeRejection& r : m_rejections) {
18131814
if (r.enum_name == enum_name
18141815
&& (r.class_name == class_name || r.class_name == "*")) {
18151816
return true;
@@ -1821,7 +1822,7 @@ bool TypeDatabase::isEnumRejected(const QString &class_name, const QString &enum
18211822

18221823
bool TypeDatabase::isFunctionRejected(const QString &class_name, const QString &function_name)
18231824
{
1824-
foreach (const TypeRejection &r, m_rejections)
1825+
for (const TypeRejection& r : m_rejections)
18251826
if (r.function_name == function_name &&
18261827
(r.class_name == class_name || r.class_name == "*"))
18271828
return true;
@@ -1831,7 +1832,7 @@ bool TypeDatabase::isFunctionRejected(const QString &class_name, const QString &
18311832

18321833
bool TypeDatabase::isFieldRejected(const QString &class_name, const QString &field_name)
18331834
{
1834-
foreach (const TypeRejection &r, m_rejections)
1835+
for (const TypeRejection& r : m_rejections)
18351836
if (r.field_name == field_name &&
18361837
(r.class_name == class_name || r.class_name == "*"))
18371838
return true;
@@ -1991,7 +1992,7 @@ QString FunctionModification::toString() const
19911992
if (modifiers & Writable) str += QLatin1String("writable");
19921993

19931994
if (modifiers & CodeInjection) {
1994-
foreach (CodeSnip s, snips) {
1995+
for (CodeSnip s : snips) {
19951996
str += QLatin1String("\n//code injection:\n");
19961997
str += s.code();
19971998
}

0 commit comments

Comments
 (0)