Merge pull request #7899 from nextcloud/bugfix/settingswindow-performance-improvement

FolderStatusModel: only create a single QFileIconProvider object
This commit is contained in:
Jyrki Gadinger 2025-02-20 17:23:58 +01:00 committed by GitHub
commit b05a2bc8e3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 2 deletions

View File

@ -21,7 +21,6 @@
#include <account.h>
#include <theme.h>
#include <QFileIconProvider>
#include <QVarLengthArray>
#include <set>
@ -194,7 +193,7 @@ QVariant FolderStatusModel::data(const QModelIndex &index, int role) const
} else if (subfolderInfo._size > 0 && isAnyAncestorEncrypted(index)) {
return QIcon(QLatin1String(":/client/theme/lock-broken.svg"));
}
return QFileIconProvider().icon(subfolderInfo._isExternal ? QFileIconProvider::Network : QFileIconProvider::Folder);
return _fileIconProvider.icon(subfolderInfo._isExternal ? QFileIconProvider::Network : QFileIconProvider::Folder);
}
case Qt::ForegroundRole:
if (subfolderInfo._isUndecided || (subfolderInfo._isNonDecryptable && subfolderInfo._checked)) {

View File

@ -21,6 +21,7 @@
#include <QVector>
#include <QElapsedTimer>
#include <QPointer>
#include <QFileIconProvider>
class QNetworkReply;
namespace OCC {
@ -161,6 +162,8 @@ private:
*/
QMap<QPersistentModelIndex, QElapsedTimer> _fetchingItems;
QFileIconProvider _fileIconProvider;
signals:
void dirtyChanged();