From 3dd5dbd7d66a21b8dd8bded05636252d7ef84cba Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 31 Mar 2018 19:32:57 +0200 Subject: More sorting for FSWidget Sort size and duration by their actual numbers instead of alphabetically by the display string. --- fsproxy.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 fsproxy.cpp (limited to 'fsproxy.cpp') diff --git a/fsproxy.cpp b/fsproxy.cpp new file mode 100644 index 0000000..26a70d8 --- /dev/null +++ b/fsproxy.cpp @@ -0,0 +1,21 @@ +#include "fsproxy.h" +#include "fswidget.h" + +FSProxy::FSProxy(QObject *parent) : QSortFilterProxyModel(parent) {} + +bool FSProxy::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const { + //sort by size + if(source_left.column() == 2){ + QVariant leftData = source_left.data(FSWidget::SizeRole); + QVariant rightData = source_right.data(FSWidget::SizeRole); + return leftData.toLongLong() < rightData.toLongLong(); + } + //sort by duration + if(source_left.column() == 3){ + QVariant leftData = source_left.data(FSWidget::DurationRole); + QVariant rightData = source_right.data(FSWidget::DurationRole); + return leftData.toLongLong() < rightData.toLongLong(); + } + return QSortFilterProxyModel::lessThan(source_left, source_right); +} + -- cgit v1.2.3-70-g09d2