┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRafael Fernández López <[email protected]>2007-06-18 09:27:12 +0000
committerRafael Fernández López <[email protected]>2007-06-18 09:27:12 +0000
commit4bf98b33866f92685719842092b9499c50fea4f2 (patch)
treef85128fce078ad79b995899e39cd5e73d4358a6f /src
parentd098f9641a158243584b12d6d6174804b3e58589 (diff)
Let Descending order work
svn path=/trunk/KDE/kdebase/apps/; revision=677018
Diffstat (limited to 'src')
-rw-r--r--src/dolphinsortfilterproxymodel.cpp4
-rw-r--r--src/klistview.cpp8
-rw-r--r--src/ksortfilterproxymodel.cpp12
-rw-r--r--src/ksortfilterproxymodel.h7
4 files changed, 27 insertions, 4 deletions
diff --git a/src/dolphinsortfilterproxymodel.cpp b/src/dolphinsortfilterproxymodel.cpp
index 4097cbe9d..2860e213f 100644
--- a/src/dolphinsortfilterproxymodel.cpp
+++ b/src/dolphinsortfilterproxymodel.cpp
@@ -89,7 +89,7 @@ void DolphinSortFilterProxyModel::sort(int column, Qt::SortOrder sortOrder)
dirModelColumnToDolphinView[column] :
DolphinView::SortByName;
setSortRole(m_sorting);
- QSortFilterProxyModel::sort(column, sortOrder);
+ KSortFilterProxyModel::sort(column, sortOrder);
}
bool DolphinSortFilterProxyModel::hasChildren(const QModelIndex& parent) const
@@ -249,7 +249,7 @@ bool DolphinSortFilterProxyModel::lessThan(const QModelIndex& left,
}
int DolphinSortFilterProxyModel::naturalCompare(const QString& a,
- const QString& b)
+ const QString& b)
{
// This method chops the input a and b into pieces of
// digits and non-digits (a1.05 becomes a | 1 | . | 05)
diff --git a/src/klistview.cpp b/src/klistview.cpp
index b38f18263..acdc70220 100644
--- a/src/klistview.cpp
+++ b/src/klistview.cpp
@@ -55,10 +55,14 @@ public:
{
if (purpose == GeneralPurpose)
{
- return proxyModel->lessThanGeneralPurpose(left, right);
+ return proxyModel->sortOrder() == Qt::AscendingOrder ?
+ proxyModel->lessThanGeneralPurpose(left, right) :
+ !proxyModel->lessThanGeneralPurpose(left, right);
}
- return proxyModel->lessThanCategoryPurpose(left, right);
+ return proxyModel->sortOrder() == Qt::AscendingOrder ?
+ proxyModel->lessThanCategoryPurpose(left, right) :
+ !proxyModel->lessThanCategoryPurpose(left, right);
}
private:
diff --git a/src/ksortfilterproxymodel.cpp b/src/ksortfilterproxymodel.cpp
index b716c399b..259b1b130 100644
--- a/src/ksortfilterproxymodel.cpp
+++ b/src/ksortfilterproxymodel.cpp
@@ -29,6 +29,18 @@ KSortFilterProxyModel::~KSortFilterProxyModel()
{
}
+void KSortFilterProxyModel::sort(int column, Qt::SortOrder order)
+{
+ QSortFilterProxyModel::sort(column, order);
+
+ m_sortOrder = order;
+}
+
+Qt::SortOrder KSortFilterProxyModel::sortOrder() const
+{
+ return m_sortOrder;
+}
+
bool KSortFilterProxyModel::lessThanCategoryPurpose(const QModelIndex &left,
const QModelIndex &right) const
{
diff --git a/src/ksortfilterproxymodel.h b/src/ksortfilterproxymodel.h
index efe12cbc0..5184f510f 100644
--- a/src/ksortfilterproxymodel.h
+++ b/src/ksortfilterproxymodel.h
@@ -32,11 +32,18 @@ public:
KSortFilterProxyModel(QObject *parent = 0);
~KSortFilterProxyModel();
+ virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
+
+ Qt::SortOrder sortOrder() const;
+
virtual bool lessThanGeneralPurpose(const QModelIndex &left,
const QModelIndex &right) const = 0;
virtual bool lessThanCategoryPurpose(const QModelIndex &left,
const QModelIndex &right) const;
+
+private:
+ Qt::SortOrder m_sortOrder;
};
#endif