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... --- pictureswidget.cpp | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) (limited to 'pictureswidget.cpp') diff --git a/pictureswidget.cpp b/pictureswidget.cpp index fd9812e..7951df5 100644 --- a/pictureswidget.cpp +++ b/pictureswidget.cpp @@ -127,7 +127,7 @@ void PicturesWidget::showInPicViewer(const QModelIndex &idx){ } } -PictureView::PictureView(QWidget *parent) : QTreeView(parent) { +PictureView::PictureView(QWidget *parent) : SmTreeView("ui/picheaderpos", parent) { //setup models mModel = static_cast(SmGlobals::instance()->model("PicFiles")); mProxy = new QSortFilterProxyModel(this); @@ -205,37 +205,6 @@ void PictureView::setHoverWinVisible(bool visible) const { mHoverWin->setVisible(visible); } -void PictureView::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 PictureView::readHeaderConfig(){ - QSettings s; - QByteArray headerPos = s.value("ui/picheaderpos").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 PictureView::writeHeaderConfig(){ - QSettings s; - s.setValue("ui/picheaderpos", header()->saveState()); -} - void PictureView::hideEvent(QHideEvent *){ QByteArray pvHeader = header()->saveState(); QSettings s; -- cgit v1.2.3-70-g09d2