From 046503ba7830427fcd055da569326f0ac814b979 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 5 Apr 2013 21:23:45 +0200 Subject: New Class: SmTreeView Code reusage: all 3 tabs had the same funtions: readHeaderConfig, writeHeaderConfig and toggleHeader, so turn it into a class derived from QTreeView. Unfortunately mATree didn't do things as later added Views, so it took some time to find the culprit in SheMov::readSettings :( Hopefully I didn't break too much... --- filestreewidget.cpp | 34 +++++----------------------------- 1 file changed, 5 insertions(+), 29 deletions(-) (limited to 'filestreewidget.cpp') diff --git a/filestreewidget.cpp b/filestreewidget.cpp index 3f03636..eec2fc3 100644 --- a/filestreewidget.cpp +++ b/filestreewidget.cpp @@ -358,47 +358,23 @@ void FilesTreeWidget::playItems(const QStringList &paths){ QProcess::startDetached(prog, args); } -FilesTreeView::FilesTreeView(QWidget *parent) : QTreeView(parent), mHoverPics(false){ +FilesTreeView::FilesTreeView(QWidget *parent) : SmTreeView("ui/headerpos", parent), mHoverPics(false){ setAttribute(Qt::WA_Hover); mHoverWin = new HoverWindow(this); SmGlobals::instance()->treeWidgets().append(this); } -void FilesTreeView::setModel(QAbstractItemModel *model){ - QTreeView::setModel(model); - for(int i = 0; i < header()->count(); ++i){ - header()->setSectionHidden(i, true); - } - readHeaderConfig(); -} - void FilesTreeView::readSettings(){ - QSettings s; + QSettings s; mHoverPics = s.value("ui/hoverpics", true).toBool(); mHoverWin->setWindowOpacity(s.value("ui/hoveropacity", 10).toFloat() / 10.0); mHoverMovies = s.value("ui/hovermovies", true).toBool(); mCursorOffest = s.value("ui/cursoroffset").toInt(); + readHeaderConfig(); } -void FilesTreeView::readHeaderConfig(){ - QSettings s; - QByteArray headerPos = s.value("ui/headerpos").toByteArray(); - if(!headerPos.isEmpty()){ - header()->restoreState(headerPos); - } -} - -void FilesTreeView::writeHeaderConfig(){ - QSettings s; - s.setValue("ui/headerpos", header()->saveState()); -} - -void FilesTreeView::toggleHeader(QObject *action){ - QAction *a = qobject_cast(action); - Q_ASSERT(a); - int logicalIndex = a->data().toInt(); - QHeaderView *hv = header(); - hv->setSectionHidden(logicalIndex, !a->isChecked()); +void FilesTreeView::writeSettings(){ + writeHeaderConfig(); } void FilesTreeView::contextMenuEvent(QContextMenuEvent *event){ -- cgit v1.2.3-70-g09d2