diff options
Diffstat (limited to 'seriestreewidget.cpp')
-rw-r--r-- | seriestreewidget.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index 7e60c53..35276a1 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -77,7 +77,7 @@ void SeriesTreeWidget::newSeries(){ QModelIndex newRow = mModel->index(mModel->rowCount(QModelIndex()) - 1, 0, QModelIndex()); if(newRow.isValid()){ QModelIndex proxyIndex = mProxy->mapFromSource(newRow); - mView->selectionModel()->setCurrentIndex(proxyIndex, QItemSelectionModel::ClearAndSelect); + mView->selectionModel()->select(proxyIndex, QItemSelectionModel::ClearAndSelect); mView->edit(proxyIndex); } } @@ -86,6 +86,10 @@ void SeriesTreeWidget::newSeries(){ void SeriesTreeWidget::seriesAdded(QString seriesName, int seriesPart, bool resort){ if(resort){ mProxy->invalidate(); + foreach(QString e, mExpandedItems){ + QModelIndex idx = mProxy->mapFromSource(mModel->findValue(e)); + mView->expand(idx); + } } QModelIndex destIdx = mModel->findValue(seriesName); if(destIdx.isValid()){ @@ -96,7 +100,10 @@ void SeriesTreeWidget::seriesAdded(QString seriesName, int seriesPart, bool reso } if(destIdx.isValid()){ QModelIndex proxyIndex = mProxy->mapFromSource(destIdx); - mView->selectionModel()->setCurrentIndex(proxyIndex, QItemSelectionModel::ClearAndSelect); + if(destIdx.parent().isValid()){ + mView->expand(destIdx); + } + mView->selectionModel()->select(proxyIndex, QItemSelectionModel::ClearAndSelect); } } |