diff options
Diffstat (limited to 'pictureswidget.cpp')
-rw-r--r-- | pictureswidget.cpp | 28 |
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(){ |