ProjectExplorer: Fix display of .qrc contents

Change-Id: I2779e12daa8a7972380f51b72a56de3466d453a5
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2017-01-30 14:26:44 +01:00
parent e8b4e180cd
commit cbfedd4328
5 changed files with 14 additions and 5 deletions

View File

@@ -560,6 +560,12 @@ void FolderNode::setFolderNodes(const QList<FolderNode *> &folders)
node->setParentFolderNode(this); node->setParentFolderNode(this);
} }
void FolderNode::makeEmpty()
{
setFolderNodes({});
setFileNodes({});
}
bool FolderNode::showInSimpleTree() const bool FolderNode::showInSimpleTree() const
{ {
return false; return false;

View File

@@ -499,7 +499,7 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root,
} }
if (isQrcFile) if (isQrcFile)
static_cast<ResourceTopLevelNode *>(fn)->update(); static_cast<ResourceTopLevelNode *>(fn)->addInternalNodes();
else else
setupFolder(fn, fileTypeHash, c, c->path(), generated); setupFolder(fn, fileTypeHash, c, c->path(), generated);
} }

View File

@@ -451,7 +451,9 @@ struct InternalNode
// If the cumulative evaluation botched the file too much, try the exact one. // If the cumulative evaluation botched the file too much, try the exact one.
if (contents.isEmpty()) if (contents.isEmpty())
vfs->readVirtualFile(file.toString(), QMakeVfs::VfsExact, &contents); vfs->readVirtualFile(file.toString(), QMakeVfs::VfsExact, &contents);
folder->addFolderNode(new ResourceEditor::ResourceTopLevelNode(file, contents, folder)); auto resourceNode = new ResourceEditor::ResourceTopLevelNode(file, contents, folder);
folder->addFolderNode(resourceNode);
resourceNode->addInternalNodes();
} }
} else { } else {
for (const FileName &file : files) for (const FileName &file : files)

View File

@@ -119,7 +119,7 @@ ResourceTopLevelNode::~ResourceTopLevelNode()
delete m_document; delete m_document;
} }
void ResourceTopLevelNode::update() void ResourceTopLevelNode::addInternalNodes()
{ {
QMap<PrefixFolderLang, QList<ProjectExplorer::FileNode *>> filesToAdd; QMap<PrefixFolderLang, QList<ProjectExplorer::FileNode *>> filesToAdd;
QMap<PrefixFolderLang, QList<ProjectExplorer::FolderNode *>> foldersToAddToFolders; QMap<PrefixFolderLang, QList<ProjectExplorer::FolderNode *>> foldersToAddToFolders;
@@ -518,7 +518,8 @@ bool ResourceFileWatcher::reload(QString *errorString, ReloadFlag flag, ChangeTy
Q_UNUSED(flag) Q_UNUSED(flag)
if (type == TypePermissions) if (type == TypePermissions)
return true; return true;
m_node->update(); m_node->makeEmpty();
m_node->addInternalNodes();
return true; return true;
} }

View File

@@ -41,7 +41,7 @@ class RESOURCE_EXPORT ResourceTopLevelNode : public ProjectExplorer::FolderNode
public: public:
ResourceTopLevelNode(const Utils::FileName &filePath, const QString &contents, FolderNode *parent); ResourceTopLevelNode(const Utils::FileName &filePath, const QString &contents, FolderNode *parent);
~ResourceTopLevelNode() override; ~ResourceTopLevelNode() override;
void update(); void addInternalNodes();
QString addFileFilter() const override; QString addFileFilter() const override;