diff options
author | Arno <am@disconnect.de> | 2010-06-18 18:01:17 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-06-18 18:01:17 +0200 |
commit | df74e7f25fe763f100d3d034cc8d54fa0b39ae26 (patch) | |
tree | 67f14a56c91c1c612bbcbc6bff59f9b1dae34efd /seriestreewidget.cpp | |
parent | 514b5f95cb5399fb36dcd0561ebb3775609c7bb7 (diff) | |
download | SheMov-df74e7f25fe763f100d3d034cc8d54fa0b39ae26.tar.gz SheMov-df74e7f25fe763f100d3d034cc8d54fa0b39ae26.tar.bz2 SheMov-df74e7f25fe763f100d3d034cc8d54fa0b39ae26.zip |
read/write settings for SeriesTreeWidget
SeriesTreeWidget now retains its last state regarding sort order and
expanded items.
Diffstat (limited to 'seriestreewidget.cpp')
-rw-r--r-- | seriestreewidget.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index 9850138..9b45dcd 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -16,6 +16,7 @@ #include <QMenu> #include <QAction> #include <QMessageBox> +#include <QSettings> #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<Qt::SortOrder>(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){ |