#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); }