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);
}
void FolderNode::makeEmpty()
{
setFolderNodes({});
setFileNodes({});
}
bool FolderNode::showInSimpleTree() const
{
return false;

View File

@@ -499,7 +499,7 @@ void QbsGroupNode::setupFolder(ProjectExplorer::FolderNode *root,
}
if (isQrcFile)
static_cast<ResourceTopLevelNode *>(fn)->update();
static_cast<ResourceTopLevelNode *>(fn)->addInternalNodes();
else
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 (contents.isEmpty())
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 {
for (const FileName &file : files)

View File

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

View File

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