summaryrefslogtreecommitdiffstats
path: root/pictureswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureswidget.cpp')
-rw-r--r--pictureswidget.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/pictureswidget.cpp b/pictureswidget.cpp
index 157dd81..5a90a71 100644
--- a/pictureswidget.cpp
+++ b/pictureswidget.cpp
@@ -12,6 +12,8 @@
#include <QMessageBox>
#include <QSettings>
#include <QAction>
+#include <QMenu>
+#include <QHeaderView>
#include <QToolBar>
#include "pictureswidget.h"
@@ -27,6 +29,7 @@ PicturesWidget::PicturesWidget(QWidget *parent) : QWidget(parent), mWindowTitleB
mMappingTree = new MappingTreeWidget;
mPictureListView = new PictureListView;
mPictureListView->setItemDelegateForColumn(PicFilesModel::Size, new SizeDelegate(this));
+ mPictureListView->readHeaderConfig();
connect(mMappingTree, &MappingTreeWidget::mappingChanged, mPictureListView, &PictureListView::mappingChanged);
connect(mMappingTree, &MappingTreeWidget::mappingChanged, this, &PicturesWidget::constructWindowTitle);
connect(mPictureListView, &PictureListView::doubleClicked, this, &PicturesWidget::showInPicViewer);
@@ -76,6 +79,29 @@ void PicturesWidget::setupWidget(){
toolBar->addAction(refreshA);
mPictureListView->addAction(refreshA);
toolBar->addSeparator();
+ QHash<QString, int> hData = mPictureListView->filesModel()->headerData();
+ QStringList hDataSorted = hData.keys();
+ std::sort(hDataSorted.begin(), hDataSorted.end());
+ QActionGroup *hDataAG = new QActionGroup(this);
+ hDataAG->setExclusive(false);
+ for(const QString &h : hDataSorted){
+ QAction *a = new QAction(h, this);
+ a->setCheckable(true);
+ a->setData(hData.value(h));
+ hDataAG->addAction(a);
+ if(!mPictureListView->header()->isSectionHidden(hData.value(h))){
+ a->setChecked(true);
+ }
+ connect(a, &QAction::triggered, [=] { mPictureListView->toggleHeader(a); });
+ }
+ QIcon headerIcon = Helper::icon(QColor(255,85,255), Qt::white, 'H', true, true);
+ QAction *headerA = new QAction(headerIcon, tr("Show headers"), this);
+ QMenu *headerMenu = new QMenu;
+ headerMenu->addActions(hDataAG->actions());
+ headerA->setMenu(headerMenu);
+ toolBar->addAction(headerA);
+ mPictureListView->addAction(headerA);
+ toolBar->addSeparator();
toolBar->addAction(SmGlobals::instance()->globalAction());
QWidget *spacer2 = new QWidget;
spacer2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
@@ -123,7 +149,7 @@ void PicturesWidget::readSettings(){
for(int i = 0; i < ps.count(); ++i){
path << ps.at(i).toInt();
}
- mPictureListView->readHeaderConfig();
+
}
void PicturesWidget::editMappings(){