diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index f6cd9a55bed..909f6d14c7c 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -44,6 +44,8 @@ #include #include +#include + #include using namespace Core; @@ -161,7 +163,7 @@ void QmlProject::parseProject(RefreshOptions options) } } } - rootProjectNode()->refresh(); + generateProjectTree(); } if (options & Configuration) { @@ -177,7 +179,7 @@ void QmlProject::refresh(RefreshOptions options) parseProject(options); if (options & Files) - rootProjectNode()->refresh(); + generateProjectTree(); if (!modelManager()) return; @@ -382,5 +384,20 @@ Project::RestoreResult QmlProject::fromMap(const QVariantMap &map, QString *erro return RestoreResult::Ok; } +void QmlProject::generateProjectTree() +{ + QStringList allFiles = files(); + + QList fileNodes = Utils::transform(allFiles, [this](const QString &f) { + FileType fileType = FileType::Source; // ### FIXME + if (f == projectFilePath().toString()) + fileType = FileType::Project; + return new FileNode(Utils::FileName::fromString(f), fileType, false); + }); + + rootProjectNode()->makeEmpty(); + rootProjectNode()->buildTree(fileNodes); +} + } // namespace QmlProjectManager diff --git a/src/plugins/qmlprojectmanager/qmlproject.h b/src/plugins/qmlprojectmanager/qmlproject.h index 8c3b80d562b..bfc642a540c 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.h +++ b/src/plugins/qmlprojectmanager/qmlproject.h @@ -82,6 +82,7 @@ protected: RestoreResult fromMap(const QVariantMap &map, QString *errorMessage) override; private: + void generateProjectTree(); void refreshFiles(const QSet &added, const QSet &removed); void addedTarget(ProjectExplorer::Target *target); void onActiveTargetChanged(ProjectExplorer::Target *target); diff --git a/src/plugins/qmlprojectmanager/qmlprojectnodes.cpp b/src/plugins/qmlprojectmanager/qmlprojectnodes.cpp index 8b6bdc1f9a6..c3e1034baf1 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectnodes.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectnodes.cpp @@ -39,9 +39,8 @@ using namespace ProjectExplorer; namespace QmlProjectManager { namespace Internal { -QmlProjectNode::QmlProjectNode(QmlProject *project) - : ProjectNode(project->projectDirectory()), - m_project(project) +QmlProjectNode::QmlProjectNode(QmlProject *project) : ProjectNode(project->projectDirectory()), + m_project(project) { setDisplayName(project->projectFilePath().toFileInfo().completeBaseName()); // make overlay @@ -53,22 +52,6 @@ QmlProjectNode::QmlProjectNode(QmlProject *project) setIcon(QIcon(projectPixmap)); } -void QmlProjectNode::refresh() -{ - QStringList files = m_project->files(); - files.removeAll(m_project->projectFilePath().toString()); - - QList fileNodes = Utils::transform(files, [](const QString &f) { - FileType fileType = FileType::Source; // ### FIXME - return new FileNode(Utils::FileName::fromString(f), fileType, false); - - }); - fileNodes.append(new FileNode(m_project->projectFilePath(), FileType::Project, false)); - - makeEmpty(); - buildTree(fileNodes); -} - bool QmlProjectNode::showInSimpleTree() const { return true; diff --git a/src/plugins/qmlprojectmanager/qmlprojectnodes.h b/src/plugins/qmlprojectmanager/qmlprojectnodes.h index d87f32af59b..3df7d7e3be1 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectnodes.h +++ b/src/plugins/qmlprojectmanager/qmlprojectnodes.h @@ -46,8 +46,6 @@ public: virtual bool deleteFiles(const QStringList &filePaths) override; virtual bool renameFile(const QString &filePath, const QString &newFilePath) override; - void refresh(); - private: QmlProject *m_project; };