#include <QElapsedTimer>
#include <QMimeData>
+#include <QMimeDatabase>
#include <QTimer>
#include <QWidget>
#include <QMutex>
+#include <QIcon>
Q_GLOBAL_STATIC_WITH_ARGS(QMutex, s_collatorMutex, (QMutex::Recursive))
// Note that the parent folder must be expanded before any of its subfolders become visible.
// Therefore, some URLs in m_restoredExpandedUrls might not be visible yet
// -> we expand the first visible URL we find in m_restoredExpandedUrls.
- for (const QUrl& url : qAsConst(m_urlsToExpand)) {
+ QMutableSetIterator<QUrl> it(m_urlsToExpand);
+ while (it.hasNext()) {
+ const QUrl url = it.next();
const int indexForUrl = index(url);
if (indexForUrl >= 0) {
m_urlsToExpand.remove(url);
}
if (item.isMimeTypeKnown()) {
- data.insert(sharedValue("iconName"), item.iconName());
+ QString iconName = item.iconName();
+ if (!QIcon::hasThemeIcon(iconName)) {
+ QMimeType mimeType = QMimeDatabase().mimeTypeForName(item.mimetype());
+ iconName = mimeType.genericIconName();
+ }
+
+ data.insert(sharedValue("iconName"), iconName);
if (m_requestRole[TypeRole]) {
data.insert(sharedValue("type"), item.mimeComment());