diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 53cb9e6e4785d002c709d463b3c8da07fd5e036b..8922ad874ae9a338c026131157d69ec50f72844f 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -466,7 +466,7 @@ bool Qt4Project::fromMap(const QVariantMap &map) QtQuickApp qtQuickApp; const Html5App html5App; - foreach (Qt4ProFileNode *node, applicationProFiles()) { + foreach (Qt4ProFileNode *node, applicationProFiles(Qt4Project::ExactAndCumulativeParse)) { const QString path = node->path(); qtQuickApp.setComponentSet(QtQuickApp::QtQuick10Components); @@ -1074,44 +1074,46 @@ bool Qt4Project::parseInProgress(const QString &proFilePath) const return node && node->parseInProgress(); } -void Qt4Project::collectAllfProFiles(QList<Qt4ProFileNode *> &list, Qt4ProFileNode *node) +void Qt4Project::collectAllfProFiles(QList<Qt4ProFileNode *> &list, Qt4ProFileNode *node, Parsing parse) { - list.append(node); + if (parse == ExactAndCumulativeParse || node->includedInExactParse()) + list.append(node); foreach (ProjectNode *n, node->subProjectNodes()) { Qt4ProFileNode *qt4ProFileNode = qobject_cast<Qt4ProFileNode *>(n); if (qt4ProFileNode) - collectAllfProFiles(list, qt4ProFileNode); + collectAllfProFiles(list, qt4ProFileNode, parse); } } -void Qt4Project::collectApplicationProFiles(QList<Qt4ProFileNode *> &list, Qt4ProFileNode *node) +void Qt4Project::collectApplicationProFiles(QList<Qt4ProFileNode *> &list, Qt4ProFileNode *node, Parsing parse) { if (node->projectType() == ApplicationTemplate || node->projectType() == ScriptTemplate) { - list.append(node); + if (parse == ExactAndCumulativeParse || node->includedInExactParse()) + list.append(node); } foreach (ProjectNode *n, node->subProjectNodes()) { Qt4ProFileNode *qt4ProFileNode = qobject_cast<Qt4ProFileNode *>(n); if (qt4ProFileNode) - collectApplicationProFiles(list, qt4ProFileNode); + collectApplicationProFiles(list, qt4ProFileNode, parse); } } -QList<Qt4ProFileNode *> Qt4Project::allProFiles() const +QList<Qt4ProFileNode *> Qt4Project::allProFiles(Parsing parse) const { QList<Qt4ProFileNode *> list; if (!rootProjectNode()) return list; - collectAllfProFiles(list, rootQt4ProjectNode()); + collectAllfProFiles(list, rootQt4ProjectNode(), parse); return list; } -QList<Qt4ProFileNode *> Qt4Project::applicationProFiles() const +QList<Qt4ProFileNode *> Qt4Project::applicationProFiles(Parsing parse) const { QList<Qt4ProFileNode *> list; if (!rootProjectNode()) return list; - collectApplicationProFiles(list, rootQt4ProjectNode()); + collectApplicationProFiles(list, rootQt4ProjectNode(), parse); return list; } @@ -1127,10 +1129,10 @@ bool Qt4Project::hasApplicationProFile(const QString &path) const return false; } -QStringList Qt4Project::applicationProFilePathes(const QString &prepend) const +QStringList Qt4Project::applicationProFilePathes(const QString &prepend, Parsing parse) const { QStringList proFiles; - foreach (Qt4ProFileNode *node, applicationProFiles()) + foreach (Qt4ProFileNode *node, applicationProFiles(parse)) proFiles.append(prepend + node->path()); return proFiles; } diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h index bcfeaa72394b9c28a1381d848068441effdc4b55..474fe49e386035b8df74a094e343858934d0397e 100644 --- a/src/plugins/qt4projectmanager/qt4project.h +++ b/src/plugins/qt4projectmanager/qt4project.h @@ -93,10 +93,11 @@ public: virtual QStringList files(FilesMode fileMode) const; virtual QString generatedUiHeader(const QString &formFile) const; - QList<Qt4ProFileNode *> allProFiles() const; - QList<Qt4ProFileNode *> applicationProFiles() const; + enum Parsing {ExactParse, ExactAndCumulativeParse }; + QList<Qt4ProFileNode *> allProFiles(Parsing parse = ExactParse) const; + QList<Qt4ProFileNode *> applicationProFiles(Parsing parse = ExactParse) const; bool hasApplicationProFile(const QString &path) const; - QStringList applicationProFilePathes(const QString &prepend = QString()) const; + QStringList applicationProFilePathes(const QString &prepend = QString(), Parsing parse = ExactParse) const; void notifyChanged(const QString &name); @@ -170,8 +171,8 @@ private: void updateCppCodeModel(); void updateQmlJSCodeModel(); - static void collectAllfProFiles(QList<Qt4ProFileNode *> &list, Qt4ProFileNode *node); - static void collectApplicationProFiles(QList<Qt4ProFileNode *> &list, Qt4ProFileNode *node); + static void collectAllfProFiles(QList<Qt4ProFileNode *> &list, Qt4ProFileNode *node, Parsing parse); + static void collectApplicationProFiles(QList<Qt4ProFileNode *> &list, Qt4ProFileNode *node, Parsing parse); static void findProFile(const QString& fileName, Qt4ProFileNode *root, QList<Qt4ProFileNode *> &list); static bool hasSubNode(Qt4PriFileNode *root, const QString &path);