From kde-commits Tue May 31 21:10:01 2016 From: Jean-Baptiste Mardelle Date: Tue, 31 May 2016 21:10:01 +0000 To: kde-commits Subject: [kdenlive] src/bin: Use natural sort order in Bin Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=146472900915754 Git commit bbb0bc62aae117b3080d63d524178762a4e56417 by Jean-Baptiste Mardel= le. Committed on 31/05/2016 at 21:09. Pushed by mardelle into branch 'master'. Use natural sort order in Bin CCBUG: 363604 M +2 -1 src/bin/projectsortproxymodel.cpp M +2 -0 src/bin/projectsortproxymodel.h http://commits.kde.org/kdenlive/bbb0bc62aae117b3080d63d524178762a4e56417 diff --git a/src/bin/projectsortproxymodel.cpp b/src/bin/projectsortproxymo= del.cpp index 9e1eb43..15a7235 100644 --- a/src/bin/projectsortproxymodel.cpp +++ b/src/bin/projectsortproxymodel.cpp @@ -28,6 +28,7 @@ along with this program. If not, see . ProjectSortProxyModel::ProjectSortProxyModel(QObject *parent) : QSortFilterProxyModel(parent) { + m_collator.setNumericMode(true); m_selection =3D new QItemSelectionModel(this); connect(m_selection, SIGNAL(selectionChanged(QItemSelection,QItemSelec= tion)), this, SLOT(onCurrentRowChanged(QItemSelection,QItemSelection))); setDynamicSortFilter(true); @@ -95,7 +96,7 @@ bool ProjectSortProxyModel::lessThan(const QModelIndex & = left, const QModelIndex if (leftData.type() =3D=3D QVariant::DateTime) { return leftData.toDateTime() < rightData.toDateTime(); } - return QSortFilterProxyModel::lessThan(right, left); + return m_collator.compare(leftData.toString(), rightData.toString(= )) < 0; } if (sortOrder() =3D=3D Qt::AscendingOrder) return leftType < rightType; return leftType > rightType; diff --git a/src/bin/projectsortproxymodel.h b/src/bin/projectsortproxymode= l.h index a8ae977..365c5d8 100644 --- a/src/bin/projectsortproxymodel.h +++ b/src/bin/projectsortproxymodel.h @@ -23,6 +23,7 @@ along with this program. If not, see . #define PROJECTSORTPROXYMODEL_H = #include +#include = class QItemSelectionModel; = @@ -61,6 +62,7 @@ protected: private: QItemSelectionModel*m_selection; QString m_searchString; + QCollator m_collator; = signals: /** @brief Emitted when the row changes, used to prepare action for se= lected item */