QmlDesigner: Filter item library assets

Change-Id: I3d6b1dbfc071e73277ad8ea60ec0e14ec1602bfb
Reviewed-by: Brook Cronin <brook.cronin@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2019-07-05 11:26:07 +02:00
parent 1ac8927665
commit 3987d4fe02

View File

@@ -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,6 +201,7 @@ void FileResourcesModel::setupModel()
QDirIterator it(m_dirPath.absolutePath(), filterList, QDir::Files, QDirIterator::Subdirectories);
while (it.hasNext()) {
QString absolutePath = it.next();
if (filterMetaIcons(absolutePath))
m_model.append(m_dirPath.relativeFilePath(absolutePath));
}