tools: replace 'foreach' with 'range for'

Mark some local variables or parameters as const
to prevent detach()'ing.
Use qAsConst where is not possible mark as const.

Change-Id: I0a777c3bd855abd3bb1ad0907152360cf4a1050e
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This commit is contained in:
Anton Kudryavtsev 2016-08-11 13:08:00 +03:00
parent c754b71eb4
commit 3ef4fac9ff
10 changed files with 53 additions and 53 deletions

View File

@ -192,7 +192,7 @@ public Q_SLOTS:
checkForWindow(o); checkForWindow(o);
haveOne = true; haveOne = true;
if (conf && qae) if (conf && qae)
foreach (PartialScene *ps, conf->completers) for (PartialScene *ps : qAsConst(conf->completers))
if (o->inherits(ps->itemType().toUtf8().constData())) if (o->inherits(ps->itemType().toUtf8().constData()))
contain(o, ps->container()); contain(o, ps->container());
} }
@ -413,8 +413,8 @@ static void loadDummyDataFiles(QQmlEngine &engine, const QString& directory)
QObject *dummyData = comp.create(); QObject *dummyData = comp.create();
if (comp.isError()) { if (comp.isError()) {
QList<QQmlError> errors = comp.errors(); const QList<QQmlError> errors = comp.errors();
foreach (const QQmlError &error, errors) for (const QQmlError &error : errors)
qWarning() << error; qWarning() << error;
} }
@ -566,7 +566,7 @@ int main(int argc, char *argv[])
if (!dummyDir.isEmpty() && QFileInfo (dummyDir).isDir()) if (!dummyDir.isEmpty() && QFileInfo (dummyDir).isDir())
loadDummyDataFiles(e, dummyDir); loadDummyDataFiles(e, dummyDir);
foreach (const QString &path, files) { for (const QString &path : qAsConst(files)) {
//QUrl::fromUserInput doesn't treat no scheme as relative file paths //QUrl::fromUserInput doesn't treat no scheme as relative file paths
#ifndef QT_NO_REGULAREXPRESSION #ifndef QT_NO_REGULAREXPRESSION
QRegularExpression urlRe("[[:word:]]+://.*"); QRegularExpression urlRe("[[:word:]]+://.*");

View File

@ -288,7 +288,7 @@ QHash<QString, QEasingCurve> SplineEditor::presets() const
QString SplineEditor::generateCode() QString SplineEditor::generateCode()
{ {
QString s = QLatin1String("["); QString s = QLatin1String("[");
foreach (const QPointF &point, m_controlPoints) { for (const QPointF &point : qAsConst(m_controlPoints)) {
s += QString::number(point.x(), 'g', 2) + QLatin1Char(',') s += QString::number(point.x(), 'g', 2) + QLatin1Char(',')
+ QString::number(point.y(), 'g', 3) + QLatin1Char(','); + QString::number(point.y(), 'g', 3) + QLatin1Char(',');
} }

View File

@ -171,7 +171,7 @@ QString resolveImportPath(const QString &uri, const QString &version)
QString ver = version; QString ver = version;
while (true) { while (true) {
foreach (const QString &qmlImportPath, g_qmlImportPaths) { for (const QString &qmlImportPath : qAsConst(g_qmlImportPaths)) {
// Search for the most specific version first, and search // Search for the most specific version first, and search
// also for the version in parent modules. For example: // also for the version in parent modules. For example:
// - qml/QtQml/Models.2.0 // - qml/QtQml/Models.2.0
@ -230,8 +230,8 @@ QVariantList findPathsForModuleImports(const QVariantList &imports)
if (!classnames.isEmpty()) if (!classnames.isEmpty())
import.insert(QStringLiteral("classname"), classnames); import.insert(QStringLiteral("classname"), classnames);
if (plugininfo.contains(dependenciesLiteral())) { if (plugininfo.contains(dependenciesLiteral())) {
QStringList dependencies = plugininfo.value(dependenciesLiteral()).toStringList(); const QStringList dependencies = plugininfo.value(dependenciesLiteral()).toStringList();
foreach (const QString &line, dependencies) { for (const QString &line : dependencies) {
const auto dep = line.splitRef(QLatin1Char(' ')); const auto dep = line.splitRef(QLatin1Char(' '));
QVariantMap depImport; QVariantMap depImport;
depImport[typeLiteral()] = QStringLiteral("module"); depImport[typeLiteral()] = QStringLiteral("module");
@ -362,7 +362,7 @@ QVariantList findQmlImportsInFile(const QString &filePath)
QVariantList mergeImports(const QVariantList &a, const QVariantList &b) QVariantList mergeImports(const QVariantList &a, const QVariantList &b)
{ {
QVariantList merged = a; QVariantList merged = a;
foreach (const QVariant &variant, b) { for (const QVariant &variant : b) {
if (!merged.contains(variant)) if (!merged.contains(variant))
merged.append(variant); merged.append(variant);
} }
@ -421,16 +421,16 @@ QVariantList findQmlImportsInDirectory(const QString &qmlDir)
continue; continue;
} }
foreach (const QFileInfo &x, entries) for (const QFileInfo &x : entries)
if (x.isFile()) if (x.isFile())
ret = mergeImports(ret, findQmlImportsInFile(x.absoluteFilePath())); ret = mergeImports(ret, findQmlImportsInFile(x.absoluteFilePath()));
} }
return ret; return ret;
} }
QSet<QString> importModulePaths(QVariantList imports) { QSet<QString> importModulePaths(const QVariantList &imports) {
QSet<QString> ret; QSet<QString> ret;
foreach (const QVariant &importVariant, imports) { for (const QVariant &importVariant : imports) {
QVariantMap import = qvariant_cast<QVariantMap>(importVariant); QVariantMap import = qvariant_cast<QVariantMap>(importVariant);
QString path = import.value(pathLiteral()).toString(); QString path = import.value(pathLiteral()).toString();
QString type = import.value(typeLiteral()).toString(); QString type = import.value(typeLiteral()).toString();
@ -448,13 +448,13 @@ QVariantList findQmlImportsRecursively(const QStringList &qmlDirs, const QString
QVariantList ret; QVariantList ret;
// scan all app root qml directories for imports // scan all app root qml directories for imports
foreach (const QString &qmlDir, qmlDirs) { for (const QString &qmlDir : qmlDirs) {
QVariantList imports = findQmlImportsInDirectory(qmlDir); QVariantList imports = findQmlImportsInDirectory(qmlDir);
ret = mergeImports(ret, imports); ret = mergeImports(ret, imports);
} }
// scan app qml files for imports // scan app qml files for imports
foreach (const QString &file, scanFiles) { for (const QString &file : scanFiles) {
QVariantList imports = findQmlImportsInFile(file); QVariantList imports = findQmlImportsInFile(file);
ret = mergeImports(ret, imports); ret = mergeImports(ret, imports);
} }

View File

@ -118,7 +118,7 @@ static void showException(QV4::ExecutionContext *ctx, const QV4::Value &exceptio
std::cerr << "Uncaught exception: " << qPrintable(message->toQStringNoThrow()) << std::endl; std::cerr << "Uncaught exception: " << qPrintable(message->toQStringNoThrow()) << std::endl;
} }
foreach (const QV4::StackFrame &frame, trace) { for (const QV4::StackFrame &frame : trace) {
std::cerr << " at " << qPrintable(frame.function) << " (" << qPrintable(frame.source); std::cerr << " at " << qPrintable(frame.function) << " (" << qPrintable(frame.source);
if (frame.line >= 0) if (frame.line >= 0)
std::cerr << ':' << frame.line; std::cerr << ':' << frame.line;
@ -188,7 +188,7 @@ int main(int argc, char *argv[])
QV4::ScopedObject gc(scope, vm.memoryManager->allocObject<builtins::GC>(ctx)); QV4::ScopedObject gc(scope, vm.memoryManager->allocObject<builtins::GC>(ctx));
vm.globalObject->put(QV4::ScopedString(scope, vm.newIdentifier(QStringLiteral("gc"))).getPointer(), gc); vm.globalObject->put(QV4::ScopedString(scope, vm.newIdentifier(QStringLiteral("gc"))).getPointer(), gc);
foreach (const QString &fn, args) { for (const QString &fn : qAsConst(args)) {
QFile file(fn); QFile file(fn);
if (file.open(QFile::ReadOnly)) { if (file.open(QFile::ReadOnly)) {
const QString code = QString::fromUtf8(file.readAll()); const QString code = QString::fromUtf8(file.readAll());

View File

@ -120,7 +120,7 @@ protected:
static QString quote(const QString &string) static QString quote(const QString &string)
{ {
QString quotedString; QString quotedString;
foreach (const QChar &ch, string) { for (const QChar &ch : string) {
if (ch == QLatin1Char('"')) if (ch == QLatin1Char('"'))
quotedString += QLatin1String("\\\""); quotedString += QLatin1String("\\\"");
else { else {

View File

@ -248,15 +248,15 @@ QSet<const QMetaObject *> collectReachableMetaObjects(QQmlEngine *engine,
QSet<const QQmlType *> baseExports = qmlTypesByCppName.value(it.key()); QSet<const QQmlType *> baseExports = qmlTypesByCppName.value(it.key());
const QSet<QByteArray> extensionCppNames = it.value(); const QSet<QByteArray> extensionCppNames = it.value();
foreach (const QByteArray &extensionCppName, extensionCppNames) { for (const QByteArray &extensionCppName : extensionCppNames) {
const QSet<const QQmlType *> extensionExports = qmlTypesByCppName.value(extensionCppName); const QSet<const QQmlType *> extensionExports = qmlTypesByCppName.value(extensionCppName);
// remove extension exports from base imports // remove extension exports from base imports
// unfortunately the QQmlType pointers don't match, so can't use QSet::subtract // unfortunately the QQmlType pointers don't match, so can't use QSet::subtract
QSet<const QQmlType *> newBaseExports; QSet<const QQmlType *> newBaseExports;
foreach (const QQmlType *baseExport, baseExports) { for (const QQmlType *baseExport : qAsConst(baseExports)) {
bool match = false; bool match = false;
foreach (const QQmlType *extensionExport, extensionExports) { for (const QQmlType *extensionExport : extensionExports) {
if (baseExport->qmlTypeName() == extensionExport->qmlTypeName() if (baseExport->qmlTypeName() == extensionExport->qmlTypeName()
&& baseExport->majorVersion() == extensionExport->majorVersion() && baseExport->majorVersion() == extensionExport->majorVersion()
&& baseExport->minorVersion() == extensionExport->minorVersion()) { && baseExport->minorVersion() == extensionExport->minorVersion()) {
@ -469,7 +469,7 @@ public:
void dumpComposite(QQmlEngine *engine, const QSet<const QQmlType *> &compositeType, QSet<QByteArray> &defaultReachableNames) void dumpComposite(QQmlEngine *engine, const QSet<const QQmlType *> &compositeType, QSet<QByteArray> &defaultReachableNames)
{ {
foreach (const QQmlType *type, compositeType) for (const QQmlType *type : compositeType)
dumpCompositeItem(engine, type, defaultReachableNames); dumpCompositeItem(engine, type, defaultReachableNames);
} }
@ -518,7 +518,7 @@ public:
} }
} }
foreach (const QMetaObject *meta, objectsToMerge) for (const QMetaObject *meta : qAsConst(objectsToMerge))
writeMetaContent(meta, &knownAttributes); writeMetaContent(meta, &knownAttributes);
qml->writeEndObject(); qml->writeEndObject();
@ -542,11 +542,11 @@ public:
if (meta->superClass()) if (meta->superClass())
qml->writeScriptBinding(QLatin1String("prototype"), enquote(convertToId(meta->superClass()))); qml->writeScriptBinding(QLatin1String("prototype"), enquote(convertToId(meta->superClass())));
QSet<const QQmlType *> qmlTypes = qmlTypesByCppName.value(meta->className()); const QSet<const QQmlType *> qmlTypes = qmlTypesByCppName.value(meta->className());
if (!qmlTypes.isEmpty()) { if (!qmlTypes.isEmpty()) {
QHash<QString, const QQmlType *> exports; QHash<QString, const QQmlType *> exports;
foreach (const QQmlType *qmlTy, qmlTypes) { for (const QQmlType *qmlTy : qmlTypes) {
const QString exportString = getExportString(qmlTy->qmlTypeName(), qmlTy->majorVersion(), qmlTy->minorVersion()); const QString exportString = getExportString(qmlTy->qmlTypeName(), qmlTy->majorVersion(), qmlTy->minorVersion());
exports.insert(exportString, qmlTy); exports.insert(exportString, qmlTy);
} }
@ -564,7 +564,7 @@ public:
// write meta object revisions // write meta object revisions
QStringList metaObjectRevisions; QStringList metaObjectRevisions;
foreach (const QString &exportString, exportStrings) { for (const QString &exportString : qAsConst(exportStrings)) {
int metaObjectRevision = exports[exportString]->metaObjectRevision(); int metaObjectRevision = exports[exportString]->metaObjectRevision();
metaObjectRevisions += QString::number(metaObjectRevision); metaObjectRevisions += QString::number(metaObjectRevision);
} }
@ -749,7 +749,7 @@ static bool readDependenciesData(QString dependenciesFile, const QByteArray &fil
if (verbose) { if (verbose) {
std::cerr << "parsing " std::cerr << "parsing "
<< qPrintable( dependenciesFile ) << " skipping"; << qPrintable( dependenciesFile ) << " skipping";
foreach (const QString &uriToSkip, urisToSkip) for (const QString &uriToSkip : urisToSkip)
std::cerr << ' ' << qPrintable(uriToSkip); std::cerr << ' ' << qPrintable(uriToSkip);
std::cerr << std::endl; std::cerr << std::endl;
} }
@ -763,13 +763,13 @@ static bool readDependenciesData(QString dependenciesFile, const QByteArray &fil
return false; return false;
} }
if (doc.isArray()) { if (doc.isArray()) {
QStringList requiredKeys = QStringList() << QStringLiteral("name") const QStringList requiredKeys = QStringList() << QStringLiteral("name")
<< QStringLiteral("type") << QStringLiteral("type")
<< QStringLiteral("version"); << QStringLiteral("version");
foreach (const QJsonValue &dep, doc.array()) { foreach (const QJsonValue &dep, doc.array()) {
if (dep.isObject()) { if (dep.isObject()) {
QJsonObject obj = dep.toObject(); QJsonObject obj = dep.toObject();
foreach (const QString &requiredKey, requiredKeys) for (const QString &requiredKey : requiredKeys)
if (!obj.contains(requiredKey) || obj.value(requiredKey).isString()) if (!obj.contains(requiredKey) || obj.value(requiredKey).isString())
continue; continue;
if (obj.value(QStringLiteral("type")).toString() != QLatin1String("module")) if (obj.value(QStringLiteral("type")).toString() != QLatin1String("module"))
@ -850,7 +850,7 @@ static bool getDependencies(const QQmlEngine &engine, const QString &pluginImpor
if (!importScanner.waitForFinished()) { if (!importScanner.waitForFinished()) {
std::cerr << "failure to start " << qPrintable(command); std::cerr << "failure to start " << qPrintable(command);
foreach (const QString &arg, commandArgs) for (const QString &arg : qAsConst(commandArgs))
std::cerr << ' ' << qPrintable(arg); std::cerr << ' ' << qPrintable(arg);
std::cerr << std::endl; std::cerr << std::endl;
return false; return false;
@ -863,7 +863,7 @@ static bool getDependencies(const QQmlEngine &engine, const QString &pluginImpor
} }
QStringList aux; QStringList aux;
foreach (const QString &str, *dependencies) { for (const QString &str : qAsConst(*dependencies)) {
if (!str.startsWith("Qt.test.qtestroot")) if (!str.startsWith("Qt.test.qtestroot"))
aux += str; aux += str;
} }
@ -1124,7 +1124,7 @@ int main(int argc, char *argv[])
// load the QtQml builtins and the dependencies // load the QtQml builtins and the dependencies
{ {
QByteArray code(qtQmlImportString.toUtf8()); QByteArray code(qtQmlImportString.toUtf8());
foreach (const QString &moduleToImport, dependencies) { for (const QString &moduleToImport : qAsConst(dependencies)) {
code.append("\nimport "); code.append("\nimport ");
code.append(moduleToImport.toUtf8()); code.append(moduleToImport.toUtf8());
} }
@ -1154,7 +1154,7 @@ int main(int argc, char *argv[])
QSet<const QMetaObject *> metas; QSet<const QMetaObject *> metas;
if (action == Builtins) { if (action == Builtins) {
foreach (const QMetaObject *m, defaultReachable) { for (const QMetaObject *m : qAsConst(defaultReachable)) {
if (m->className() == QLatin1String("Qt")) { if (m->className() == QLatin1String("Qt")) {
metas.insert(m); metas.insert(m);
break; break;
@ -1175,7 +1175,7 @@ int main(int argc, char *argv[])
return EXIT_INVALIDARGUMENTS; return EXIT_INVALIDARGUMENTS;
} }
metas = defaultReachable; metas = defaultReachable;
foreach (const QMetaObject *m, defaultReachable) { for (const QMetaObject *m : qAsConst(defaultReachable)) {
if (m->className() == QLatin1String("Qt")) { if (m->className() == QLatin1String("Qt")) {
metas.remove(m); metas.remove(m);
break; break;
@ -1196,7 +1196,7 @@ int main(int argc, char *argv[])
QString::number(qtObjectType->minorVersion())).toUtf8(); QString::number(qtObjectType->minorVersion())).toUtf8();
} }
// avoid importing dependencies? // avoid importing dependencies?
foreach (const QString &moduleToImport, dependencies) { for (const QString &moduleToImport : qAsConst(dependencies)) {
importCode.append("\nimport "); importCode.append("\nimport ");
importCode.append(moduleToImport.toUtf8()); importCode.append(moduleToImport.toUtf8());
} }
@ -1231,9 +1231,9 @@ int main(int argc, char *argv[])
// Also eliminate meta objects with the same classname. // Also eliminate meta objects with the same classname.
// This is required because extended objects seem not to share // This is required because extended objects seem not to share
// a single meta object instance. // a single meta object instance.
foreach (const QMetaObject *mo, defaultReachable) for (const QMetaObject *mo : qAsConst(defaultReachable))
defaultReachableNames.insert(QByteArray(mo->className())); defaultReachableNames.insert(QByteArray(mo->className()));
foreach (const QMetaObject *mo, candidates) { for (const QMetaObject *mo : qAsConst(candidates)) {
if (!defaultReachableNames.contains(mo->className())) if (!defaultReachableNames.contains(mo->className()))
metas.insert(mo); metas.insert(mo);
} }
@ -1265,19 +1265,19 @@ int main(int argc, char *argv[])
compactDependencies(&dependencies); compactDependencies(&dependencies);
QStringList quotedDependencies; QStringList quotedDependencies;
foreach (const QString &dep, dependencies) for (const QString &dep : qAsConst(dependencies))
quotedDependencies << enquote(dep); quotedDependencies << enquote(dep);
qml.writeArrayBinding("dependencies", quotedDependencies); qml.writeArrayBinding("dependencies", quotedDependencies);
// put the metaobjects into a map so they are always dumped in the same order // put the metaobjects into a map so they are always dumped in the same order
QMap<QString, const QMetaObject *> nameToMeta; QMap<QString, const QMetaObject *> nameToMeta;
foreach (const QMetaObject *meta, metas) for (const QMetaObject *meta : qAsConst(metas))
nameToMeta.insert(convertToId(meta), meta); nameToMeta.insert(convertToId(meta), meta);
Dumper dumper(&qml); Dumper dumper(&qml);
if (relocatable) if (relocatable)
dumper.setRelocatableModuleUri(pluginImportUri); dumper.setRelocatableModuleUri(pluginImportUri);
foreach (const QMetaObject *meta, nameToMeta) { for (const QMetaObject *meta : qAsConst(nameToMeta)) {
dumper.dump(QQmlEnginePrivate::get(&engine), meta, uncreatableMetas.contains(meta), singletonMetas.contains(meta)); dumper.dump(QQmlEnginePrivate::get(&engine), meta, uncreatableMetas.contains(meta), singletonMetas.contains(meta));
} }

View File

@ -179,7 +179,7 @@ void QmlStreamWriter::flushPotentialLinesWithNewlines()
{ {
if (m_maybeOneline) if (m_maybeOneline)
m_stream->write("\n"); m_stream->write("\n");
foreach (const QByteArray &line, m_pendingLines) { for (const QByteArray &line : qAsConst(m_pendingLines)) {
writeIndent(); writeIndent();
m_stream->write(line); m_stream->write(line);
m_stream->write("\n"); m_stream->write("\n");

View File

@ -274,8 +274,8 @@ quint64 QmlProfilerApplication::parseFeatures(const QStringList &featureList, co
bool exclude) bool exclude)
{ {
quint64 features = exclude ? std::numeric_limits<quint64>::max() : 0; quint64 features = exclude ? std::numeric_limits<quint64>::max() : 0;
QStringList givenFeatures = values.split(QLatin1Char(',')); const QStringList givenFeatures = values.split(QLatin1Char(','));
foreach (const QString &f, givenFeatures) { for (const QString &f : givenFeatures) {
int index = featureList.indexOf(f); int index = featureList.indexOf(f);
if (index < 0) { if (index < 0) {
logError(tr("Unknown feature '%1'").arg(f)); logError(tr("Unknown feature '%1'").arg(f));

View File

@ -572,7 +572,7 @@ bool QmlProfilerData::save(const QString &filename)
stream.writeEndElement(); // eventData stream.writeEndElement(); // eventData
stream.writeStartElement(QStringLiteral("profilerDataModel")); stream.writeStartElement(QStringLiteral("profilerDataModel"));
foreach (const QmlRangeEventStartInstance &event, d->startInstanceList) { for (const QmlRangeEventStartInstance &event : qAsConst(d->startInstanceList)) {
stream.writeStartElement(QStringLiteral("range")); stream.writeStartElement(QStringLiteral("range"));
stream.writeAttribute(QStringLiteral("startTime"), QString::number(event.startTime)); stream.writeAttribute(QStringLiteral("startTime"), QString::number(event.startTime));
if (event.duration >= 0) if (event.duration >= 0)

View File

@ -175,10 +175,10 @@ QFileInfoList findQmlFiles(const QString &dirName)
QFileInfoList ret; QFileInfoList ret;
if (dir.exists()) { if (dir.exists()) {
QFileInfoList fileInfos = dir.entryInfoList(QStringList() << "*.qml", const QFileInfoList fileInfos = dir.entryInfoList(QStringList() << "*.qml",
QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot); QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot);
foreach (QFileInfo fileInfo, fileInfos) { for (const QFileInfo &fileInfo : fileInfos) {
if (fileInfo.isDir()) if (fileInfo.isDir())
ret += findQmlFiles(fileInfo.filePath()); ret += findQmlFiles(fileInfo.filePath());
else if (fileInfo.fileName().length() > 0 && fileInfo.fileName().at(0).isLower()) else if (fileInfo.fileName().length() > 0 && fileInfo.fileName().at(0).isLower())
@ -196,9 +196,9 @@ static int displayOptionsDialog(Options *options)
QFormLayout *layout = new QFormLayout(&dialog); QFormLayout *layout = new QFormLayout(&dialog);
QComboBox *qmlFileComboBox = new QComboBox(&dialog); QComboBox *qmlFileComboBox = new QComboBox(&dialog);
QFileInfoList fileInfos = findQmlFiles(":/bundle") + findQmlFiles("./qmlscene-resources"); const QFileInfoList fileInfos = findQmlFiles(":/bundle") + findQmlFiles("./qmlscene-resources");
foreach (QFileInfo fileInfo, fileInfos) for (const QFileInfo &fileInfo : fileInfos)
qmlFileComboBox->addItem(fileInfo.dir().dirName() + QLatin1Char('/') + fileInfo.fileName(), QVariant::fromValue(fileInfo)); qmlFileComboBox->addItem(fileInfo.dir().dirName() + QLatin1Char('/') + fileInfo.fileName(), QVariant::fromValue(fileInfo));
QCheckBox *originalCheckBox = new QCheckBox(&dialog); QCheckBox *originalCheckBox = new QCheckBox(&dialog);
@ -319,8 +319,8 @@ static void loadDummyDataFiles(QQmlEngine &engine, const QString& directory)
QObject *dummyData = comp.create(); QObject *dummyData = comp.create();
if(comp.isError()) { if(comp.isError()) {
QList<QQmlError> errors = comp.errors(); const QList<QQmlError> errors = comp.errors();
foreach (const QQmlError &error, errors) for (const QQmlError &error : errors)
fprintf(stderr, "%s\n", qPrintable(error.toString())); fprintf(stderr, "%s\n", qPrintable(error.toString()));
} }
@ -457,7 +457,7 @@ int main(int argc, char ** argv)
options.applicationAttributes.append(Qt::AA_DisableHighDpiScaling); options.applicationAttributes.append(Qt::AA_DisableHighDpiScaling);
} }
foreach (Qt::ApplicationAttribute a, options.applicationAttributes) for (Qt::ApplicationAttribute a : qAsConst(options.applicationAttributes))
QCoreApplication::setAttribute(a); QCoreApplication::setAttribute(a);
#ifdef QT_WIDGETS_LIB #ifdef QT_WIDGETS_LIB
QApplication app(argc, argv); QApplication app(argc, argv);