From 8b219f9d250470bb36e1ce1e91a409c13a375a95 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 21 Jul 2018 02:14:08 +0200 Subject: Make headers for FSWidget selectable --- fswidget.cpp | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) (limited to 'fswidget.cpp') diff --git a/fswidget.cpp b/fswidget.cpp index 72cae8c..c084c12 100644 --- a/fswidget.cpp +++ b/fswidget.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -38,6 +39,18 @@ FSWidget::FSWidget(QWidget *parent) : QWidget(parent) { } void FSWidget::setupWidget(){ + QStringList headers = QStringList() << tr("Name") << tr("MIME") << tr("Size") << tr("Duration") << tr("MD5") << tr("Presence") << tr("Full path"); + mModel = new QStandardItemModel; + mModel->setHorizontalHeaderLabels(headers); + mFileView = new SmView; + mFileView->setAlternatingRowColors(true); + mFileView->setSortingEnabled(true); + mFileView->setUniformRowHeights(true); + mFileView->setSelectionBehavior(QAbstractItemView::SelectRows); + mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); + mFileView->setRootIsDecorated(false); + connect(mFileView, &QTreeView::doubleClicked, this, &FSWidget::doubleClicked); + QToolBar *toolbar = new QToolBar; QPixmap buttplug(":/butt_plug.png"); QMatrix rotatematrix; @@ -77,6 +90,26 @@ void FSWidget::setupWidget(){ connect(previewA, &QAction::triggered, this, &FSWidget::preview); toolbar->addAction(previewA); toolbar->addSeparator(); + QSettings s; + mFileView->header()->restoreState(s.value("fs/headerdata").toByteArray()); + QActionGroup *headerAG = new QActionGroup(this); + headerAG->setExclusive(false); + for(int i = 0; i < headers.count(); ++i){ + QAction *a = new QAction(headers.at(i), this); + a->setCheckable(true); + if(!mFileView->header()->isSectionHidden(i)){ + a->setChecked(true); + } + connect(a, &QAction::triggered, [=] { mFileView->header()->setSectionHidden(i, a->isChecked() == false); }); + headerAG->addAction(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(headerAG->actions()); + headerA->setMenu(headerMenu); + toolbar->addAction(headerA); + toolbar->addSeparator(); toolbar->addAction(SmGlobals::instance()->globalAction()); QAction *playSelectedA = new QAction(QIcon(":/spreadingpants.png"), tr("Play selected"), this); connect(playSelectedA, &QAction::triggered, [=] { playSelected(1, QString()); }); @@ -152,20 +185,6 @@ void FSWidget::setupWidget(){ topWL->addWidget(mFilterCB); topWL->addWidget(filterTB); - mFileView = new SmView; - mFileView->setAlternatingRowColors(true); - mFileView->setSortingEnabled(true); - mFileView->setUniformRowHeights(true); - mFileView->setSelectionBehavior(QAbstractItemView::SelectRows); - mFileView->setSelectionMode(QAbstractItemView::ExtendedSelection); - mFileView->setRootIsDecorated(false); - connect(mFileView, &QTreeView::doubleClicked, this, &FSWidget::doubleClicked); - mModel = new QStandardItemModel; - QStringList headers = QStringList() << tr("Name") << tr("MIME") << tr("Size") << tr("Duration") << tr("MD5") << tr("Presence") << tr("Full path"); - for(int i = 0; i < headers.count(); ++i){ - mHeaderData.insert(headers.at(i), i); - } - mModel->setHorizontalHeaderLabels(headers); mProxy = new FSProxy; mProxy->setSourceModel(mModel); mFileView->setModel(mProxy); @@ -226,6 +245,7 @@ void FSWidget::writeSettings(){ } s.setValue("fs/filters", filters); s.setValue("fs/curfilter", curFilter); + s.setValue("fs/headerdata", mFileView->header()->saveState()); } void FSWidget::insertItem(QComboBox *cb, const QString &text){ -- cgit v1.2.3-70-g09d2