diff options
-rw-r--r-- | seriestreemodel.cpp | 2 | ||||
-rw-r--r-- | seriestreemodel.h | 3 | ||||
-rw-r--r-- | seriestreewidget.cpp | 14 | ||||
-rw-r--r-- | seriestreewidget.h | 1 |
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; |