summaryrefslogtreecommitdiffstats
path: root/fsproxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fsproxy.cpp')
-rw-r--r--fsproxy.cpp21
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);
+}
+