Rex Dieter df27ad1
From 187a5b0c6e74e0109e4ec257104428a3c87fb52f Mon Sep 17 00:00:00 2001
Rex Dieter df27ad1
From: Marco Benelli <marco.benelli@theqtcompany.com>
Rex Dieter df27ad1
Date: Wed, 27 Jan 2016 09:18:02 +0100
Rex Dieter df27ad1
Subject: [PATCH] qmlimportscanner: do not use local predicates.
Rex Dieter df27ad1
Rex Dieter df27ad1
Some (?) pre C++11 compilers are not able to resolve template arguments
Rex Dieter df27ad1
for std::find_if when the predicates are local to the function.
Rex Dieter df27ad1
Rex Dieter df27ad1
Change-Id: I1e5c4adc3409bd32081ddedff158ab9dcc2eaa9a
Rex Dieter df27ad1
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Rex Dieter df27ad1
---
Rex Dieter df27ad1
 tools/qmlimportscanner/main.cpp | 31 ++++++++++++++++++-------------
Rex Dieter df27ad1
 1 file changed, 18 insertions(+), 13 deletions(-)
Rex Dieter df27ad1
Rex Dieter df27ad1
diff --git a/tools/qmlimportscanner/main.cpp b/tools/qmlimportscanner/main.cpp
Rex Dieter df27ad1
index b16253a..189459f 100644
Rex Dieter df27ad1
--- a/tools/qmlimportscanner/main.cpp
Rex Dieter df27ad1
+++ b/tools/qmlimportscanner/main.cpp
Rex Dieter df27ad1
@@ -344,6 +344,24 @@ QVariantList mergeImports(const QVariantList &a, const QVariantList &b)
Rex Dieter df27ad1
     return merged;
Rex Dieter df27ad1
 }
Rex Dieter df27ad1
 
Rex Dieter df27ad1
+// Predicates needed by findQmlImportsInDirectory.
Rex Dieter df27ad1
+
Rex Dieter df27ad1
+struct isMetainfo {
Rex Dieter df27ad1
+    bool operator() (const QFileInfo &x) const {
Rex Dieter df27ad1
+        return x.suffix() == QLatin1String("metainfo");
Rex Dieter df27ad1
+    }
Rex Dieter df27ad1
+};
Rex Dieter df27ad1
+
Rex Dieter df27ad1
+struct pathStartsWith {
Rex Dieter df27ad1
+    pathStartsWith(const QString &path) : _path(path) {}
Rex Dieter df27ad1
+    bool operator() (const QString &x) const {
Rex Dieter df27ad1
+        return _path.startsWith(x);
Rex Dieter df27ad1
+    }
Rex Dieter df27ad1
+    const QString _path;
Rex Dieter df27ad1
+};
Rex Dieter df27ad1
+
Rex Dieter df27ad1
+
Rex Dieter df27ad1
+
Rex Dieter df27ad1
 // Scan all qml files in directory for import statements
Rex Dieter df27ad1
 QVariantList findQmlImportsInDirectory(const QString &qmlDir)
Rex Dieter df27ad1
 {
Rex Dieter df27ad1
@@ -353,19 +371,6 @@ QVariantList findQmlImportsInDirectory(const QString &qmlDir)
Rex Dieter df27ad1
 
Rex Dieter df27ad1
     QDirIterator iterator(qmlDir, QDir::AllDirs | QDir::NoDotDot, QDirIterator::Subdirectories);
Rex Dieter df27ad1
     QStringList blacklist;
Rex Dieter df27ad1
-    struct isMetainfo {
Rex Dieter df27ad1
-        bool operator() (const QFileInfo &x) const {
Rex Dieter df27ad1
-            return x.suffix() == QLatin1String("metainfo");
Rex Dieter df27ad1
-        }
Rex Dieter df27ad1
-    };
Rex Dieter df27ad1
-    struct pathStartsWith {
Rex Dieter df27ad1
-        pathStartsWith(const QString &path) : _path(path) {}
Rex Dieter df27ad1
-        bool operator() (const QString &x) const {
Rex Dieter df27ad1
-            return _path.startsWith(x);
Rex Dieter df27ad1
-        }
Rex Dieter df27ad1
-        const QString _path;
Rex Dieter df27ad1
-    };
Rex Dieter df27ad1
-
Rex Dieter df27ad1
 
Rex Dieter df27ad1
     while (iterator.hasNext()) {
Rex Dieter df27ad1
         iterator.next();
Rex Dieter df27ad1
-- 
Rex Dieter df27ad1
1.9.3
Rex Dieter df27ad1