From: Christian Kamm Date: Tue, 8 Nov 2016 12:30:18 +0000 (+0100) Subject: Sort folder list alphabetically #5299 X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~1033 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=9ee818708389b508c38bcafb2735530e83df8506;p=nextcloud-desktop.git Sort folder list alphabetically #5299 --- diff --git a/src/gui/folderstatusmodel.cpp b/src/gui/folderstatusmodel.cpp index 4c74d0e2f..51c18d51c 100644 --- a/src/gui/folderstatusmodel.cpp +++ b/src/gui/folderstatusmodel.cpp @@ -38,6 +38,12 @@ FolderStatusModel::FolderStatusModel(QObject *parent) FolderStatusModel::~FolderStatusModel() { } +static bool sortByFolderHeader(const FolderStatusModel::SubFolderInfo& lhs, const FolderStatusModel::SubFolderInfo& rhs) +{ + return QString::compare(lhs._folder->shortGuiRemotePathOrAppName(), + rhs._folder->shortGuiRemotePathOrAppName(), + Qt::CaseInsensitive) < 0; +} void FolderStatusModel::setAccountState(const AccountState* accountState) { @@ -58,7 +64,6 @@ void FolderStatusModel::setAccountState(const AccountState* accountState) if (f->accountState() != accountState) continue; SubFolderInfo info; - info._pathIdx << _folders.size(); info._name = f->alias(); info._path = "/"; info._folder = f; @@ -69,6 +74,14 @@ void FolderStatusModel::setAccountState(const AccountState* accountState) connect(f, SIGNAL(newBigFolderDiscovered(QString)), this, SLOT(slotNewBigFolder()), Qt::UniqueConnection); } + // Sort by header text + qSort(_folders.begin(), _folders.end(), sortByFolderHeader); + + // Set the root _pathIdx after the sorting + for (int i = 0; i < _folders.size(); ++i) { + _folders[i]._pathIdx << i; + } + endResetModel(); emit dirtyChanged(); }