mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-19 16:31:21 +00:00
Let Descending order work
svn path=/trunk/KDE/kdebase/apps/; revision=677018
This commit is contained in:
parent
d098f9641a
commit
4bf98b3386
|
@ -89,7 +89,7 @@ void DolphinSortFilterProxyModel::sort(int column, Qt::SortOrder sortOrder)
|
||||||
dirModelColumnToDolphinView[column] :
|
dirModelColumnToDolphinView[column] :
|
||||||
DolphinView::SortByName;
|
DolphinView::SortByName;
|
||||||
setSortRole(m_sorting);
|
setSortRole(m_sorting);
|
||||||
QSortFilterProxyModel::sort(column, sortOrder);
|
KSortFilterProxyModel::sort(column, sortOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DolphinSortFilterProxyModel::hasChildren(const QModelIndex& parent) const
|
bool DolphinSortFilterProxyModel::hasChildren(const QModelIndex& parent) const
|
||||||
|
@ -249,7 +249,7 @@ bool DolphinSortFilterProxyModel::lessThan(const QModelIndex& left,
|
||||||
}
|
}
|
||||||
|
|
||||||
int DolphinSortFilterProxyModel::naturalCompare(const QString& a,
|
int DolphinSortFilterProxyModel::naturalCompare(const QString& a,
|
||||||
const QString& b)
|
const QString& b)
|
||||||
{
|
{
|
||||||
// This method chops the input a and b into pieces of
|
// This method chops the input a and b into pieces of
|
||||||
// digits and non-digits (a1.05 becomes a | 1 | . | 05)
|
// digits and non-digits (a1.05 becomes a | 1 | . | 05)
|
||||||
|
|
|
@ -55,10 +55,14 @@ public:
|
||||||
{
|
{
|
||||||
if (purpose == GeneralPurpose)
|
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:
|
private:
|
||||||
|
|
|
@ -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,
|
bool KSortFilterProxyModel::lessThanCategoryPurpose(const QModelIndex &left,
|
||||||
const QModelIndex &right) const
|
const QModelIndex &right) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -32,11 +32,18 @@ public:
|
||||||
KSortFilterProxyModel(QObject *parent = 0);
|
KSortFilterProxyModel(QObject *parent = 0);
|
||||||
~KSortFilterProxyModel();
|
~KSortFilterProxyModel();
|
||||||
|
|
||||||
|
virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder);
|
||||||
|
|
||||||
|
Qt::SortOrder sortOrder() const;
|
||||||
|
|
||||||
virtual bool lessThanGeneralPurpose(const QModelIndex &left,
|
virtual bool lessThanGeneralPurpose(const QModelIndex &left,
|
||||||
const QModelIndex &right) const = 0;
|
const QModelIndex &right) const = 0;
|
||||||
|
|
||||||
virtual bool lessThanCategoryPurpose(const QModelIndex &left,
|
virtual bool lessThanCategoryPurpose(const QModelIndex &left,
|
||||||
const QModelIndex &right) const;
|
const QModelIndex &right) const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
Qt::SortOrder m_sortOrder;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue