summaryrefslogtreecommitdiffstats
path: root/seriestreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'seriestreewidget.cpp')
-rw-r--r--seriestreewidget.cpp32
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){