From 0f4f0d5860e4a261f37ae6f294c154c3009c4562 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 5 Apr 2013 17:01:57 +0200 Subject: Make FilesystemWidget headers configurable Save headerView on exit, create a Menu for selecting headers and read headerConfig on startup. --- fileview.cpp | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'fileview.cpp') diff --git a/fileview.cpp b/fileview.cpp index 7797d73..489338b 100644 --- a/fileview.cpp +++ b/fileview.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include "fileview.h" #include "hoverwindow.h" @@ -41,7 +42,6 @@ FileView::FileView(QWidget *parent) : QTreeView(parent), mDeleteA(0) { mHoverWin = new HoverWindow(this); QSize curSize = SmGlobals::instance()->cursorSize(); mHoverWin->setHoverOffset(QPoint(curSize.width() + 30, 0)); - readConfig(); SmGlobals::instance()->treeWidgets().append(this); } @@ -109,6 +109,11 @@ void FileView::readConfig(){ mWhen = s.value("ui/grabframe", "00:00:00").toString(); mHoverWin->setWindowOpacity(s.value("ui/hoveropacity", 10).toFloat() / 10.0); mCursorOffset = s.value("ui/cursoroffset").toInt(); + readHeaderConfig(); +} + +void FileView::writeConfig(){ + writeHeaderConfig(); } void FileView::resizeColumns(int columns) { @@ -259,6 +264,38 @@ void FileView::restoreSelection(){ } } +void FileView::readHeaderConfig(){ + QSettings s; + QByteArray headerPos = s.value("ui/fsheaderpos").toByteArray(); + if(!headerPos.isEmpty()){ + header()->restoreState(headerPos); + } + QHeaderView *hv = header(); + QHash headerActions; + foreach(QAction *a, mHeaderGroup->actions()){ + headerActions.insert(a->data().toInt(), a); + } + for(int i = 0; i < hv->count(); ++i){ + if(!hv->isSectionHidden(i)){ + headerActions.value(i)->setChecked(true); + } + } +} + +void FileView::writeHeaderConfig(){ + QSettings s; + s.setValue("ui/fsheaderpos", header()->saveState()); +} + + +void FileView::toggleHeader(QObject *action){ + QAction *a = qobject_cast(action); + Q_ASSERT(a); + int logicalIndex = a->data().toInt(); + QHeaderView *hv = header(); + hv->setSectionHidden(logicalIndex, !a->isChecked()); +} + bool FileView::exitHover(bool exitVal){ mHoverWin->setVisible(false); mCurHover = QModelIndex(); -- cgit v1.2.3-70-g09d2