From df74e7f25fe763f100d3d034cc8d54fa0b39ae26 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 18 Jun 2010 18:01:17 +0200 Subject: read/write settings for SeriesTreeWidget SeriesTreeWidget now retains its last state regarding sort order and expanded items. --- seriestreewidget.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'seriestreewidget.cpp') diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index 9850138..9b45dcd 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include "seriestreewidget.h" #include "smubermodel.h" @@ -49,6 +50,8 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){ mView->resizeColumnToContents(0); mView->setSelectionMode(QAbstractItemView::ExtendedSelection); connect(mModel, SIGNAL(needResort()), this, SLOT(resort())); + connect(mView, SIGNAL(expanded(QModelIndex)), this, SLOT(itemExpanded(QModelIndex))); + connect(mView, SIGNAL(collapsed(QModelIndex)), this, SLOT(itemCollaped(QModelIndex))); //layout QVBoxLayout *mainLayout = new QVBoxLayout; @@ -132,6 +135,24 @@ void SeriesTreeWidget::deleteFromSeries(){ } } +void SeriesTreeWidget::readSettings(){ + QSettings s; + QStringList expanded = s.value("archive/expanded").toStringList(); + foreach(QString s, expanded){ + QModelIndex idx = mProxy->mapFromSource(mModel->findValue(s)); + mView->expand(idx); + mExpandedItems << s; + } + int sortOrder = s.value("archive/sortorder", Qt::DescendingOrder).toInt(); + mView->sortByColumn(0, static_cast(sortOrder)); +} + +void SeriesTreeWidget::writeSettings(){ + QSettings s; + s.setValue("archive/expanded", mExpandedItems); + s.setValue("archive/sortorder", mProxy->sortOrder()); +} + void SeriesTreeWidget::filter(){ mProxy->setFilterRegExp(mFilterEdit->text()); } @@ -141,6 +162,17 @@ void SeriesTreeWidget::resort(){ mView->scrollTo(mView->selectionModel()->currentIndex(), QAbstractItemView::PositionAtCenter); } +void SeriesTreeWidget::itemExpanded(const QModelIndex &what){ + mExpandedItems << what.data(SeriesTreeModel::NameRole).toString(); +} + +void SeriesTreeWidget::itemCollaped(const QModelIndex &what){ + QString itemName = what.data(SeriesTreeModel::NameRole).toString(); + if(mExpandedItems.contains(itemName)){ + mExpandedItems.removeAll(itemName); + } +} + SeriesTreeView::SeriesTreeView(QWidget *parent) : QTreeView(parent) {} void SeriesTreeView::contextMenuEvent(QContextMenuEvent *e){ -- cgit v1.2.3-70-g09d2