summaryrefslogtreecommitdiffstats
path: root/archiveview.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-06-02 00:43:09 +0200
committerArno <am@disconnect.de>2013-06-02 00:43:09 +0200
commit459f58c57bfa1021783134b11853e8e4140055f3 (patch)
tree48c8bebb968eac10ced310ec33e204b17dee32f8 /archiveview.cpp
parent6fec376f7f44145efa509668927a0179c8ffa65e (diff)
downloadSheMov-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.cpp29
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) {