From 9ee818708389b508c38bcafb2735530e83df8506 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Tue, 8 Nov 2016 13:30:18 +0100 Subject: [PATCH] Sort folder list alphabetically #5299 --- src/gui/folderstatusmodel.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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(); } -- 2.30.2