summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--seriestreewidget.cpp11
-rw-r--r--seriestreewidget.h14
2 files changed, 23 insertions, 2 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);
+}
diff --git a/seriestreewidget.h b/seriestreewidget.h
index 4f23afb..38c111f 100644
--- a/seriestreewidget.h
+++ b/seriestreewidget.h
@@ -10,12 +10,14 @@
#include <QWidget>
#include <QTreeView>
+#include <QSortFilterProxyModel>
class QLineEdit;
class QPushButton;
class QSortFilterProxyModel;
class SeriesTreeModel;
class SeriesTreeView;
+class SeriesTreeSortModel;
class SeriesTreeWidget : public QWidget {
Q_OBJECT
@@ -35,7 +37,7 @@ class SeriesTreeWidget : public QWidget {
QLineEdit *mFilterEdit;
QPushButton *mFilter;
SeriesTreeView *mView;
- QSortFilterProxyModel *mProxy;
+ SeriesTreeSortModel *mProxy;
SeriesTreeModel *mModel;
};
@@ -48,4 +50,14 @@ class SeriesTreeView : public QTreeView {
virtual void contextMenuEvent(QContextMenuEvent *e);
};
+class SeriesTreeSortModel : public QSortFilterProxyModel {
+ Q_OBJECT
+ public:
+ SeriesTreeSortModel(QObject *parent = 0);
+ ~SeriesTreeSortModel() {}
+
+ protected:
+ virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
+};
+
#endif