summaryrefslogtreecommitdiffstats
path: root/seriestreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'seriestreewidget.cpp')
-rw-r--r--seriestreewidget.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp
index 553a534..9850138 100644
--- a/seriestreewidget.cpp
+++ b/seriestreewidget.cpp
@@ -38,7 +38,7 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){
//the view
mView = new SeriesTreeView;
- mProxy = new QSortFilterProxyModel;
+ mProxy = new SeriesTreeSortModel(this);
mModel = SmUberModelSingleton::instance()->seriesModel();
mProxy->setSourceModel(mModel);
mView->setModel(mProxy);
@@ -150,3 +150,12 @@ void SeriesTreeView::contextMenuEvent(QContextMenuEvent *e){
}
contextMenu.exec(e->globalPos());
}
+
+SeriesTreeSortModel::SeriesTreeSortModel(QObject *parent) : QSortFilterProxyModel(parent) {}
+
+bool SeriesTreeSortModel::lessThan(const QModelIndex &left, const QModelIndex &right) const{
+ if(left.data(SeriesTreeModel::TypeRole).toInt() == SeriesTreeModel::Part && right.data(SeriesTreeModel::TypeRole).toInt() == SeriesTreeModel::Part){
+ return left.data(SeriesTreeModel::SeriesPartRole).toInt() < right.data(SeriesTreeModel::SeriesPartRole).toInt();
+ }
+ return QSortFilterProxyModel::lessThan(left, right);
+}