aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/resourceeditor
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2019-05-13 16:42:19 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2019-05-13 15:56:23 +0000
commit4a26c91448aeb7771efef777dce21ce24d5ff332 (patch)
tree8ff58fbfe9fa4e13bfaa6f542843add27ade8c3a /src/plugins/resourceeditor
parentbb3e18f5151fe2c26a7cce7719b2997e62e21877 (diff)
ResourceEditor: Make tree compressable
Fixes: QTCREATORBUG-15761 Change-Id: Ia0f4012a754347fcc17c8d3c1ce42163c8fb6973 Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/resourceeditor')
-rw-r--r--src/plugins/resourceeditor/resourcenode.cpp24
1 files changed, 13 insertions, 11 deletions
diff --git a/src/plugins/resourceeditor/resourcenode.cpp b/src/plugins/resourceeditor/resourcenode.cpp
index 7c411a5126..764ab50269 100644
--- a/src/plugins/resourceeditor/resourcenode.cpp
+++ b/src/plugins/resourceeditor/resourcenode.cpp
@@ -160,7 +160,6 @@ public:
const QString &prefix, const QString &lang, FileName absolutePath,
ResourceTopLevelNode *topLevel, ResourceFolderNode *prefixNode);
- QString displayName() const final;
bool supportsAction(ProjectAction, const Node *node) const final;
bool addFiles(const QStringList &filePaths, QStringList *notAdded) final;
bool removeFiles(const QStringList &filePaths, QStringList *notRemoved) final;
@@ -173,32 +172,23 @@ public:
private:
QString m_folderName;
- QString m_displayName;
QString m_prefix;
QString m_lang;
ResourceTopLevelNode *m_topLevelNode;
ResourceFolderNode *m_prefixNode;
};
-QString SimpleResourceFolderNode::displayName() const
-{
- if (!m_displayName.isEmpty())
- return m_displayName;
- return FolderNode::displayName();
-}
-
SimpleResourceFolderNode::SimpleResourceFolderNode(const QString &afolderName, const QString &displayName,
const QString &prefix, const QString &lang,
FileName absolutePath, ResourceTopLevelNode *topLevel, ResourceFolderNode *prefixNode)
: FolderNode(absolutePath)
, m_folderName(afolderName)
- , m_displayName(displayName)
, m_prefix(prefix)
, m_lang(lang)
, m_topLevelNode(topLevel)
, m_prefixNode(prefixNode)
{
-
+ setDisplayName(displayName);
}
bool SimpleResourceFolderNode::supportsAction(ProjectAction action, const Node *) const
@@ -269,6 +259,17 @@ ResourceTopLevelNode::~ResourceTopLevelNode()
delete m_document;
}
+static void compressTree(FolderNode *n)
+{
+ if (const auto compressable = dynamic_cast<SimpleResourceFolderNode *>(n)) {
+ compressable->compress();
+ return;
+ }
+ const QList<FolderNode *> childFolders = n->folderNodes();
+ for (FolderNode * const c : childFolders)
+ compressTree(c);
+}
+
void ResourceTopLevelNode::addInternalNodes()
{
ResourceFile file(filePath().toString(), m_contents);
@@ -354,6 +355,7 @@ void ResourceTopLevelNode::addInternalNodes()
qrcPath, displayName));
}
}
+ compressTree(this);
}
bool ResourceTopLevelNode::supportsAction(ProjectAction action, const Node *node) const