From: Frank Reininghaus Date: Sat, 17 Sep 2011 15:49:20 +0000 (+0200) Subject: Implement DolphinView::sorting() X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/01d4b8d0820ee3ab9f05df23c31a8230acfe7083 Implement DolphinView::sorting() This fixes the problem that changing the sorting criterion from 'Name' to 'Date' and then back to 'Name' doesn't work. --- diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index cdcb9f7cb..11fe17ac5 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -358,8 +358,8 @@ void DolphinView::setSorting(Sorting sorting) DolphinView::Sorting DolphinView::sorting() const { - return DolphinView::SortByName; - //return m_viewAccessor.proxyModel()->sorting(); + KItemModelBase* model = m_container->controller()->model(); + return sortingForSortRole(model->sortRole()); } void DolphinView::setSortOrder(Qt::SortOrder order) @@ -1283,4 +1283,21 @@ QByteArray DolphinView::sortRoleForSorting(Sorting sorting) const return QByteArray(); } +DolphinView::Sorting DolphinView::sortingForSortRole(const QByteArray& sortRole) const +{ + static QHash sortHash; + if (sortHash.isEmpty()) { + sortHash.insert("name", SortByName); + sortHash.insert("size", SortBySize); + sortHash.insert("date", SortByDate); + sortHash.insert("permissions", SortByPermissions); + sortHash.insert("owner", SortByOwner); + sortHash.insert("group", SortByGroup); + sortHash.insert("type", SortByType); + sortHash.insert("destination", SortByDestination); + sortHash.insert("path", SortByPath); + } + return sortHash.value(sortRole); +} + #include "dolphinview.moc" diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index 8d1094273..cc2e25b49 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -736,6 +736,7 @@ private: void updateWritableState(); QByteArray sortRoleForSorting(Sorting sorting) const; + Sorting sortingForSortRole(const QByteArray& sortRole) const; private: bool m_active : 1;