diff options
author | Arno <am@disconnect.de> | 2013-06-02 00:43:09 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-06-02 00:43:09 +0200 |
commit | 459f58c57bfa1021783134b11853e8e4140055f3 (patch) | |
tree | 48c8bebb968eac10ced310ec33e204b17dee32f8 /archiveview.cpp | |
parent | 6fec376f7f44145efa509668927a0179c8ffa65e (diff) | |
download | SheMov-459f58c57bfa1021783134b11853e8e4140055f3.tar.gz SheMov-459f58c57bfa1021783134b11853e8e4140055f3.tar.bz2 SheMov-459f58c57bfa1021783134b11853e8e4140055f3.zip |
Remember expanded Items
For the current SortOrder the expanded items are written to the config
file and read on startup.
Diffstat (limited to 'archiveview.cpp')
-rw-r--r-- | archiveview.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/archiveview.cpp b/archiveview.cpp index dbc3c39..9edfd0b 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -39,6 +39,8 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent), mConstructing(true) mTree->setColumnHidden(ArchiveModel::Subtitle, true); mTree->setColumnHidden(ArchiveModel::Count, true); mTree->resizeColumnToContents(ArchiveModel::Name); + connect(mTree, SIGNAL(expanded(QModelIndex)), this, SLOT(expandItem(QModelIndex))); + connect(mTree, SIGNAL(collapsed(QModelIndex)), this, SLOT(collapseItem(QModelIndex))); QString sortOrderName = s.value("archivemodel/sortorder", "Series Name").toString(); mSortOrder = new QComboBox; @@ -89,12 +91,30 @@ void ArchiveView::writeSettings() { QSettings s; s.setValue("archivemodel/sortorder", mSortOrder->currentText()); s.setValue("archivemodel/filter", mFilter->text()); + QVariantList expandedItems; + foreach(QPersistentModelIndex idx, mExpandedItems){ + QStringList path = mArchiveModel->indexToPath(mProxy->mapToSource(idx)); + expandedItems << path; + } + s.setValue("archivemodel/expandeditems", expandedItems); } QWidget *ArchiveView::progressDialog(){ return qobject_cast<QWidget *>(mProgress); } +void ArchiveView::setExpanded(){ + QSettings s; + QVariantList expanded = s.value("archivemodel/expandeditems").toList(); + foreach(QVariant pathList, expanded){ + QStringList path = pathList.toStringList(); + QModelIndexList expand = mArchiveModel->pathToIndex(path); + foreach(QModelIndex idx, expand){ + mTree->expand(mProxy->mapFromSource(idx)); + } + } +} + void ArchiveView::setFilter(){ QString filter = mFilter->text(); mProxy->setFilter(filter, currentSortOrder()); @@ -116,6 +136,15 @@ void ArchiveView::collectorStarted(){ void ArchiveView::collectorFinished(){ mProgress->hide(); + setExpanded(); +} + +void ArchiveView::expandItem(const QModelIndex &idx){ + mExpandedItems << QPersistentModelIndex(idx); +} + +void ArchiveView::collapseItem(const QModelIndex &idx){ + mExpandedItems.removeAll(QPersistentModelIndex(idx)); } ArchiveTree::ArchiveTree(QWidget *parent) : SmTreeView(parent) { |