diff options
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); +} + |