diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-05-13 16:42:19 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-05-13 15:56:23 +0000 |
commit | 4a26c91448aeb7771efef777dce21ce24d5ff332 (patch) | |
tree | 8ff58fbfe9fa4e13bfaa6f542843add27ade8c3a /src/plugins/resourceeditor | |
parent | bb3e18f5151fe2c26a7cce7719b2997e62e21877 (diff) | |
download | qt-creator-4a26c91448aeb7771efef777dce21ce24d5ff332.tar.gz |
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.cpp | 24 |
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 |