diff options
author | Arno <am@disconnect.de> | 2010-07-24 16:28:35 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-07-24 16:28:35 +0200 |
commit | b465c59cce7418968f268b9888a8236be281fda5 (patch) | |
tree | cb11f3f09d60a8355cb378acbe2ef23a404072a4 | |
parent | 00ea6b7931e65ae184bbcbcc67360dead499c739 (diff) | |
download | SheMov-b465c59cce7418968f268b9888a8236be281fda5.tar.gz SheMov-b465c59cce7418968f268b9888a8236be281fda5.tar.bz2 SheMov-b465c59cce7418968f268b9888a8236be281fda5.zip |
Remember last selected series
SeriesTreeWidget::writeSettings() writes currentIndex() to QSettings on
close. readSettings() selects it again on startup.
I tried to remember all selected indexes, but that got way too complex
and didn't work when SeriesParts were selected. Somehow
QItemSelectionModel wouldn't select indexes with parents other than
QModelIndex().
-rw-r--r-- | seriestreewidget.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index e65d67f..46ef609 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -165,12 +165,20 @@ void SeriesTreeWidget::readSettings(){ } int sortOrder = s.value("archive/sortorder", Qt::DescendingOrder).toInt(); mView->sortByColumn(0, static_cast<Qt::SortOrder>(sortOrder)); + QString selectedSeries = s.value("archive/selectedseries").toString(); + QModelIndex seriesIdx = mModel->findValue(selectedSeries); + if(seriesIdx.isValid()){ + QModelIndex real = mProxy->mapFromSource(seriesIdx); + mView->selectionModel()->select(real, QItemSelectionModel::Select); + } } 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); } void SeriesTreeWidget::expandCurrent(){ |