summaryrefslogtreecommitdiffstats
path: root/pictureswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureswidget.cpp')
-rw-r--r--pictureswidget.cpp36
1 files changed, 35 insertions, 1 deletions
diff --git a/pictureswidget.cpp b/pictureswidget.cpp
index 7de52b5..99091c9 100644
--- a/pictureswidget.cpp
+++ b/pictureswidget.cpp
@@ -19,6 +19,8 @@
#include <QMenu>
#include <QFile>
#include <QSettings>
+#include <QActionGroup>
+#include <QHash>
#include "pictureswidget.h"
#include "picfilesmodel.h"
@@ -53,7 +55,6 @@ PicturesWidget::PicturesWidget(QWidget *parent) : QWidget(parent), mWindowTitleB
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(splitter);
setLayout(mainLayout);
- readSettings();
}
void PicturesWidget::showPicViewer(bool toggled){
@@ -64,12 +65,14 @@ void PicturesWidget::writeSettings(){
QSettings s;
MappingData selected = mMappingTree->selectedItem();
s.setValue("ui/selectedmapping", selected.path.first());
+ mPictureView->writeHeaderConfig();
}
void PicturesWidget::readSettings(){
QSettings s;
QStringList selPath = s.value("ui/selectedmapping").toStringList();
mMappingTree->selectPath(selPath.join("/"));
+ mPictureView->readHeaderConfig();
}
void PicturesWidget::editMappings(){
@@ -197,6 +200,37 @@ void PictureView::setHoverWinVisible(bool visible) const {
mHoverWin->setVisible(visible);
}
+void PictureView::toggleHeader(QObject *action){
+ QAction *a = qobject_cast<QAction*>(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<int, QAction*> 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;