summaryrefslogtreecommitdiffstats
path: root/seriestreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'seriestreewidget.cpp')
-rw-r--r--seriestreewidget.cpp11
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);
}
}