diff options
-rw-r--r-- | src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.cpp | 16 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.h | 1 |
2 files changed, 12 insertions, 5 deletions
diff --git a/src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.cpp index 51dc03d94f..c09854b29a 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.cpp @@ -88,7 +88,7 @@ void CustomFileSystemModel::setFilter(QDir::Filters) } -QString filterMetaIcons(const QString &fileName) +bool filterMetaIcons(const QString &fileName) { QFileInfo info(fileName); @@ -101,7 +101,7 @@ QString filterMetaIcons(const QString &fileName) while (!currentDir.isRoot() && i < 3) { if (currentDir.dirName() == "designer") { if (!currentDir.entryList({"*.metainfo"}).isEmpty()) - return {}; + return false; } currentDir.cdUp(); @@ -109,10 +109,10 @@ QString filterMetaIcons(const QString &fileName) } if (info.dir().dirName() == "designer") - return {}; + return false; } - return fileName; + return true; } QModelIndex CustomFileSystemModel::setRootPath(const QString &newPath) @@ -179,6 +179,12 @@ void CustomFileSystemModel::setSearchFilter(const QString &nameFilterList) setRootPath(m_fileSystemModel->rootPath()); } +void CustomFileSystemModel::appendIfNotFiltered(const QString &file) +{ + if (filterMetaIcons(file)) + m_files.append(file); +} + QModelIndex CustomFileSystemModel::updatePath(const QString &newPath) { beginResetModel(); @@ -205,7 +211,7 @@ QModelIndex CustomFileSystemModel::updatePath(const QString &newPath) QDirIterator fileIterator(newPath, nameFilterList, QDir::Files, QDirIterator::Subdirectories); while (fileIterator.hasNext()) - m_files.append(filterMetaIcons(fileIterator.next())); + appendIfNotFiltered(fileIterator.next()); QDirIterator dirIterator(newPath, {}, QDir::Dirs | QDir::NoDotAndDotDot, QDirIterator::Subdirectories); while (dirIterator.hasNext()) diff --git a/src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.h b/src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.h index 69a0e4b131..e0d8148ce6 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.h +++ b/src/plugins/qmldesigner/components/itemlibrary/customfilesystemmodel.h @@ -63,6 +63,7 @@ public: private: QModelIndex updatePath(const QString &newPath); QModelIndex fileSystemModelIndex(const QModelIndex &index) const; + void appendIfNotFiltered(const QString &file); QFileSystemModel *m_fileSystemModel; QStringList m_files; |