diff options
Diffstat (limited to 'seriestreewidget.cpp')
-rw-r--r-- | seriestreewidget.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index 35276a1..3452931 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -93,6 +93,9 @@ void SeriesTreeWidget::seriesAdded(QString seriesName, int seriesPart, bool reso } QModelIndex destIdx = mModel->findValue(seriesName); if(destIdx.isValid()){ + QModelIndex proxySeries = mProxy->mapFromSource(destIdx); + mView->expand(proxySeries); + mView->scrollTo(proxySeries, QAbstractItemView::PositionAtCenter); QModelIndex seriesPartIdx = mModel->findValue(seriesPart, destIdx, SeriesTreeModel::SeriesPart); if(seriesPartIdx.isValid()){ destIdx = seriesPartIdx; @@ -100,10 +103,7 @@ void SeriesTreeWidget::seriesAdded(QString seriesName, int seriesPart, bool reso } if(destIdx.isValid()){ QModelIndex proxyIndex = mProxy->mapFromSource(destIdx); - if(destIdx.parent().isValid()){ - mView->expand(destIdx); - } - mView->selectionModel()->select(proxyIndex, QItemSelectionModel::ClearAndSelect); + mView->selectionModel()->select(proxyIndex, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Current | QItemSelectionModel::Rows); } } @@ -136,6 +136,9 @@ void SeriesTreeWidget::deleteFromSeries(){ foreach(QPersistentModelIndex s, series){ files.append(mModel->findFiles(s)); } + foreach(QPersistentModelIndex p, parts){ + files.append(mModel->findFiles(p)); + } QString message; if(!files.isEmpty()){ @@ -181,7 +184,9 @@ void SeriesTreeWidget::readSettings(){ QModelIndex seriesIdx = mModel->findValue(selectedSeries); if(seriesIdx.isValid()){ QModelIndex real = mProxy->mapFromSource(seriesIdx); - mView->selectionModel()->setCurrentIndex(real, QItemSelectionModel::SelectCurrent); + mView->scrollTo(real, QAbstractItemView::PositionAtCenter); + mView->selectionModel()->select(real, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Current | QItemSelectionModel::Rows); + mView->setCurrentIndex(real); } } @@ -189,8 +194,10 @@ void SeriesTreeWidget::writeSettings(){ QSettings s; s.setValue("archive/expanded", mExpandedItems); s.setValue("archive/sortorder", mProxy->sortOrder()); - QString selected = mView->selectionModel()->currentIndex().data(SeriesTreeModel::NameRole).toString(); - s.setValue("archive/selectedseries", selected); + QModelIndexList selected = mView->selectionModel()->selectedRows(); + if(!selected.isEmpty()){ + s.setValue("archive/selectedseries", selected.at(0).data(SeriesTreeModel::NameRole).toString()); + } } void SeriesTreeWidget::expandCurrent(){ |