summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--seriestreemodel.cpp2
-rw-r--r--seriestreemodel.h3
-rw-r--r--seriestreewidget.cpp14
-rw-r--r--seriestreewidget.h1
4 files changed, 16 insertions, 4 deletions
diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp
index 62e2edc..b657d9b 100644
--- a/seriestreemodel.cpp
+++ b/seriestreemodel.cpp
@@ -143,7 +143,7 @@ bool SeriesTreeModel::setData(const QModelIndex &index, const QVariant &value, i
SmTreeItem *curItem = static_cast<SmTreeItem*>(index.internalPointer());
curItem->setData(Name, value);
emit dataChanged(index, index);
- mDb.commit();
+ emit needResort();
return true;
}
}
diff --git a/seriestreemodel.h b/seriestreemodel.h
index a61a4a9..74bb53c 100644
--- a/seriestreemodel.h
+++ b/seriestreemodel.h
@@ -31,6 +31,9 @@ class SeriesTreeModel : public SmTreeModel {
//find
QModelIndex findValue(const QVariant &value, const QModelIndex &parent = QModelIndex(), int column = 0) const;
+ signals:
+ void needResort();
+
private:
void populate();
QSqlDatabase mDb;
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp
index 9395046..d440140 100644
--- a/seriestreewidget.cpp
+++ b/seriestreewidget.cpp
@@ -17,6 +17,7 @@
#include "smubermodel.h"
#include "smtreemodel.h"
#include "smubermodelsingleton.h"
+#include "seriestreemodel.h"
SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){
//filter bar
@@ -34,12 +35,15 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){
//the view
mView = new SeriesTreeView;
mProxy = new QSortFilterProxyModel;
- mProxy->setSourceModel(SmUberModelSingleton::instance()->seriesModel());
+ SeriesTreeModel *sourceModel = SmUberModelSingleton::instance()->seriesModel();
+ mProxy->setSourceModel(sourceModel);
mView->setModel(mProxy);
mView->setSortingEnabled(true);
- mView->setColumnHidden(1, true);
- mView->setColumnHidden(2, true);
+ for(int i = 1; i < 5 ;++i){
+ mView->setColumnHidden(i, true);
+ }
mView->resizeColumnToContents(0);
+ connect(sourceModel, SIGNAL(needResort()), this, SLOT(resort()));
//layout
QVBoxLayout *mainLayout = new QVBoxLayout;
@@ -53,4 +57,8 @@ void SeriesTreeWidget::filter(){
mProxy->setFilterRegExp(mFilterEdit->text());
}
+void SeriesTreeWidget::resort(){
+ mView->sortByColumn(0, mProxy->sortOrder());
+}
+
SeriesTreeView::SeriesTreeView(QWidget *parent) : QTreeView(parent) {}
diff --git a/seriestreewidget.h b/seriestreewidget.h
index 45801b7..fa84419 100644
--- a/seriestreewidget.h
+++ b/seriestreewidget.h
@@ -23,6 +23,7 @@ class SeriesTreeWidget : public QWidget {
private slots:
void filter();
+ void resort();
private:
QLineEdit *mFilterEdit;