From 3987d4fe020c79534b1ba43955929255241ccf0b Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Fri, 5 Jul 2019 11:26:07 +0200 Subject: [PATCH] QmlDesigner: Filter item library assets Change-Id: I3d6b1dbfc071e73277ad8ea60ec0e14ec1602bfb Reviewed-by: Brook Cronin Reviewed-by: Tim Jenssen --- .../propertyeditor/fileresourcesmodel.cpp | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp b/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp index 245d6047074..0b5f79a39e7 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/fileresourcesmodel.cpp @@ -162,6 +162,33 @@ QVariant FileResourcesModel::modelNodeBackend() const return QVariant(); } +bool filterMetaIcons(const QString &fileName) +{ + + QFileInfo info(fileName); + + if (info.dir().path().split("/").contains("designer")) { + + QDir currentDir = info.dir(); + + int i = 0; + while (!currentDir.isRoot() && i < 3) { + if (currentDir.dirName() == "designer") { + if (!currentDir.entryList({"*.metainfo"}).isEmpty()) + return false; + } + + currentDir.cdUp(); + ++i; + } + + if (info.dir().dirName() == "designer") + return false; + } + + return true; +} + void FileResourcesModel::setupModel() { m_lock = true; @@ -174,7 +201,8 @@ void FileResourcesModel::setupModel() QDirIterator it(m_dirPath.absolutePath(), filterList, QDir::Files, QDirIterator::Subdirectories); while (it.hasNext()) { QString absolutePath = it.next(); - m_model.append(m_dirPath.relativeFilePath(absolutePath)); + if (filterMetaIcons(absolutePath)) + m_model.append(m_dirPath.relativeFilePath(absolutePath)); } m_lock = false;