diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index 79e5dba9f12..ecd619c830e 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -484,10 +485,11 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::Gro foreach (FileTreeNode *c, fileTree->children) { Utils::FileName path = Utils::FileName::fromString(c->path()); + const ProjectExplorer::FileType newFileType = fileType(group, c->path()); + const bool isQrcFile = newFileType == ProjectExplorer::ResourceType; // Handle files: - if (c->isFile()) { - const ProjectExplorer::FileType newFileType = fileType(group, c->path()); + if (c->isFile() && !isQrcFile) { ProjectExplorer::FileNode *fn = 0; foreach (ProjectExplorer::FileNode *f, root->fileNodes()) { // There can be one match only here! @@ -514,10 +516,15 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::Gro fn = f; break; } + using ResourceEditor::ResourceTopLevelNode; if (!fn) { - fn = new QbsFolderNode(Utils::FileName::fromString(c->path()), - ProjectExplorer::FolderNodeType, - displayNameFromPath(c->path(), baseDir)); + if (isQrcFile) { + fn = new ResourceTopLevelNode(Utils::FileName::fromString(c->path()), root); + } else { + fn = new QbsFolderNode(Utils::FileName::fromString(c->path()), + ProjectExplorer::FolderNodeType, + displayNameFromPath(c->path(), baseDir)); + } root->addFolderNodes(QList() << fn); } else { foldersToRemove.removeOne(fn); @@ -526,7 +533,11 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root, const qbs::Gro fn->setDisplayName(displayNameFromPath(c->path(), baseDir)); } - setupFolder(fn, group, c, c->path(), updateExisting); + if (isQrcFile) + static_cast(fn)->update(); + else + setupFolder(fn, group, c, c->path(), updateExisting); + } } root->removeFileNodes(filesToRemove); diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs index cc353dd9d04..a517a7662eb 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.qbs @@ -41,6 +41,7 @@ QtcPlugin { Depends { name: "ProjectExplorer" } Depends { name: "Core" } Depends { name: "CppTools" } + Depends { name: "ResourceEditor" } Depends { name: "QtSupport" } Depends { name: "QmlJSTools" } diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri b/src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri index b02aabfe7df..bf83df3c151 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager_dependencies.pri @@ -8,4 +8,5 @@ QTC_PLUGIN_DEPENDS += \ projectexplorer \ cpptools \ qtsupport \ - qmljstools + qmljstools \ + resourceeditor