summaryrefslogtreecommitdiffstats
path: root/fswidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-07-21 02:14:08 +0200
committerArno <arno@disconnect.de>2018-07-21 02:14:08 +0200
commit8b219f9d250470bb36e1ce1e91a409c13a375a95 (patch)
tree867efb89b178d09f8b9893bbb4ee398605c0cce9 /fswidget.cpp
parent0c20652c4b352e0498583c9fdb98f7e289087433 (diff)
downloadSheMov-8b219f9d250470bb36e1ce1e91a409c13a375a95.tar.gz
SheMov-8b219f9d250470bb36e1ce1e91a409c13a375a95.tar.bz2
SheMov-8b219f9d250470bb36e1ce1e91a409c13a375a95.zip
Make headers for FSWidget selectable
Diffstat (limited to 'fswidget.cpp')
-rw-r--r--fswidget.cpp48
1 files changed, 34 insertions, 14 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index 72cae8c..c084c12 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -14,6 +14,7 @@
#include <QSqlDatabase>
#include <QElapsedTimer>
#include <QMenu>
+#include <QHeaderView>
#include <QMessageBox>
#include <QProcess>
#include <QSettings>
@@ -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){