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