ProjectManager: Show .qrc contents again

This fixes the second regression introduced by 04a525877b.

Change-Id: I5c5c72a036f139fa564c40e95ebf6acafc99792c
Reviewed-by: Mathias Hasselmann <mathias.hasselmann@kdab.com>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
hjk
2017-02-10 13:23:53 +01:00
committed by Tim Jenssen
parent 1f540c6c9d
commit a2c6e28478
4 changed files with 16 additions and 22 deletions

View File

@@ -546,20 +546,13 @@ void FolderNode::removeNode(Node *node)
and emits the corresponding signals from the projectNode. and emits the corresponding signals from the projectNode.
*/ */
void FolderNode::setNodes(const QList<Node *> &nodes)
{
qDeleteAll(m_nodes);
m_nodes = nodes;
for (Node *node : m_nodes)
node->setParentFolderNode(this);
}
/*! /*!
Removes all files and subfolders from this folder node. Removes all files and subfolders from this folder node.
*/ */
void FolderNode::makeEmpty() void FolderNode::makeEmpty()
{ {
setNodes({}); qDeleteAll(m_nodes);
m_nodes.clear();
} }
bool FolderNode::showInSimpleTree() const bool FolderNode::showInSimpleTree() const

View File

@@ -248,7 +248,6 @@ public:
void addNode(Node *node); void addNode(Node *node);
void removeNode(Node *node); void removeNode(Node *node);
void setNodes(const QList<Node *> &nodes);
// all subFolders that are projects // all subFolders that are projects
QList<ProjectNode*> projectNodes() const; QList<ProjectNode*> projectNodes() const;

View File

@@ -122,7 +122,6 @@ ResourceTopLevelNode::~ResourceTopLevelNode()
void ResourceTopLevelNode::addInternalNodes() void ResourceTopLevelNode::addInternalNodes()
{ {
QMap<PrefixFolderLang, QList<ProjectExplorer::Node *>> nodesToAdd; QMap<PrefixFolderLang, QList<ProjectExplorer::Node *>> nodesToAdd;
QMap<PrefixFolderLang, QList<ProjectExplorer::FolderNode *>> foldersToAddToFolders;
QMap<PrefixFolderLang, QList<ProjectExplorer::FolderNode *>> foldersToAddToPrefix; QMap<PrefixFolderLang, QList<ProjectExplorer::FolderNode *>> foldersToAddToPrefix;
ResourceFile file(filePath().toString(), m_contents); ResourceFile file(filePath().toString(), m_contents);
@@ -186,9 +185,9 @@ void ResourceTopLevelNode::addInternalNodes()
this, currentPrefixNode); this, currentPrefixNode);
if (parentIsPrefix) { if (parentIsPrefix) {
foldersToAddToPrefix[prefixId] << newNode; foldersToAddToPrefix[prefixId] << newNode;
nodesToAdd[prefixId] << newNode;
} else { } else {
PrefixFolderLang parentFolderId(prefix, parentFolderName, lang); PrefixFolderLang parentFolderId(prefix, parentFolderName, lang);
foldersToAddToFolders[parentFolderId] << newNode;
nodesToAdd[parentFolderId] << newNode; nodesToAdd[parentFolderId] << newNode;
} }
folderNodes.insert(folderId, newNode); folderNodes.insert(folderId, newNode);
@@ -207,13 +206,17 @@ void ResourceTopLevelNode::addInternalNodes()
} }
} }
foreach (FolderNode *sfn, folderNodes()) { const QList<FolderNode *> fnodes = folderNodes();
for (FolderNode *sfn : fnodes) {
ResourceFolderNode *srn = static_cast<ResourceFolderNode *>(sfn); ResourceFolderNode *srn = static_cast<ResourceFolderNode *>(sfn);
PrefixFolderLang folderId(srn->prefix(), QString(), srn->lang()); PrefixFolderLang folderId(srn->prefix(), QString(), srn->lang());
srn->setNodes(nodesToAdd[folderId]); const QList<ProjectExplorer::Node *> nodes = nodesToAdd[folderId];
foreach (FolderNode* ssfn, sfn->folderNodes()) { for (Node *n : nodes)
srn->addNode(n);
const QList<FolderNode *> sfnodes = sfn->folderNodes();
for (FolderNode *ssfn : sfnodes) {
SimpleResourceFolderNode *sssn = static_cast<SimpleResourceFolderNode *>(ssfn); SimpleResourceFolderNode *sssn = static_cast<SimpleResourceFolderNode *>(ssfn);
sssn->addFilesAndSubfolders(foldersToAddToFolders, nodesToAdd, srn->prefix(), srn->lang()); sssn->addFilesAndSubfolders(nodesToAdd, srn->prefix(), srn->lang());
} }
} }
} }
@@ -649,13 +652,13 @@ ResourceFolderNode *SimpleResourceFolderNode::prefixNode() const
return m_prefixNode; return m_prefixNode;
} }
void SimpleResourceFolderNode::addFilesAndSubfolders(const QMap<PrefixFolderLang, QList<ProjectExplorer::FolderNode*> > &foldersToAdd, void SimpleResourceFolderNode::addFilesAndSubfolders(const QMap<PrefixFolderLang, QList<Node *>> &nodesToAdd,
const QMap<PrefixFolderLang, QList<ProjectExplorer::Node*> > &nodesToAdd,
const QString &prefix, const QString &lang) const QString &prefix, const QString &lang)
{ {
setNodes(nodesToAdd.value(PrefixFolderLang(prefix, m_folderName, lang))); for (Node *node : nodesToAdd.value(PrefixFolderLang(prefix, m_folderName, lang)))
addNode(node);
foreach (FolderNode* subNode, folderNodes()) { foreach (FolderNode* subNode, folderNodes()) {
SimpleResourceFolderNode* sn = static_cast<SimpleResourceFolderNode*>(subNode); SimpleResourceFolderNode* sn = static_cast<SimpleResourceFolderNode*>(subNode);
sn->addFilesAndSubfolders(foldersToAdd, nodesToAdd, prefix, lang); sn->addFilesAndSubfolders(nodesToAdd, prefix, lang);
} }
} }

View File

@@ -122,8 +122,7 @@ public:
const QString &prefix, const QString &lang, Utils::FileName absolutePath, const QString &prefix, const QString &lang, Utils::FileName absolutePath,
ResourceTopLevelNode *topLevel, ResourceFolderNode *prefixNode); ResourceTopLevelNode *topLevel, ResourceFolderNode *prefixNode);
QList<ProjectExplorer::ProjectAction> supportedActions(ProjectExplorer::Node *node) const; QList<ProjectExplorer::ProjectAction> supportedActions(ProjectExplorer::Node *node) const;
void addFilesAndSubfolders(const QMap<PrefixFolderLang, QList<FolderNode *> > &foldersToAdd, void addFilesAndSubfolders(const QMap<PrefixFolderLang, QList<Node *> > &nodesToAdd,
const QMap<PrefixFolderLang, QList<Node *> > &nodesToAdd,
const QString &prefix, const QString &lang); const QString &prefix, const QString &lang);
bool addFiles(const QStringList &filePaths, QStringList *notAdded); bool addFiles(const QStringList &filePaths, QStringList *notAdded);
bool removeFiles(const QStringList &filePaths, QStringList *notRemoved); bool removeFiles(const QStringList &filePaths, QStringList *notRemoved);