diff options
author | Arno <arno@disconnect.de> | 2018-03-31 19:32:57 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-03-31 19:32:57 +0200 |
commit | 3dd5dbd7d66a21b8dd8bded05636252d7ef84cba (patch) | |
tree | 3ccc57044fc84cc63a750f50c5f837933ef76f57 /fsproxy.cpp | |
parent | d4dae4ba8633ff8c58bbb4135850ddbd1dfa87a9 (diff) | |
download | SheMov-3dd5dbd7d66a21b8dd8bded05636252d7ef84cba.tar.gz SheMov-3dd5dbd7d66a21b8dd8bded05636252d7ef84cba.tar.bz2 SheMov-3dd5dbd7d66a21b8dd8bded05636252d7ef84cba.zip |
More sorting for FSWidget
Sort size and duration by their actual numbers instead of alphabetically
by the display string.
Diffstat (limited to 'fsproxy.cpp')
-rw-r--r-- | fsproxy.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
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); +} + |