From 1ce2c60e99837f3b16e7af35c856b81d31eb06e7 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 31 Mar 2018 22:00:55 +0200 Subject: Implement preview for videos Comes at almost no cost when using Viewer :) --- fswidget.cpp | 17 ++++++++++++++++- fswidget.h | 1 + shemov.qrc | 1 + snapshot.png | Bin 0 -> 1988 bytes viewer.cpp | 1 - 5 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 snapshot.png diff --git a/fswidget.cpp b/fswidget.cpp index 7cce362..4e00225 100644 --- a/fswidget.cpp +++ b/fswidget.cpp @@ -62,6 +62,9 @@ void FSWidget::setupWidget(){ QAction *unpackA = new QAction(QIcon(":/clitoris.png"), tr("Unpack"), this); connect(unpackA, &QAction::triggered, this, &FSWidget::unpack); toolbar->addAction(unpackA); + QAction *previewA = new QAction(QIcon(":/snapshot.png"), tr("Preview..."), this); + connect(previewA, &QAction::triggered, this, &FSWidget::preview); + toolbar->addAction(previewA); QIcon plusIcon = Helper::icon(QColor(255,85,255), '+'); QIcon minusIcon = Helper::icon(QColor(255,85,255), '-'); @@ -126,7 +129,7 @@ void FSWidget::setupWidget(){ mFileView->setModel(mProxy); mFileView->sortByColumn(0, Qt::AscendingOrder); - addActions(QList() << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << unpackA); + addActions(QList() << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << unpackA << previewA); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addLayout(topWL); @@ -429,3 +432,15 @@ void FSWidget::doubleClicked(const QModelIndex &idx){ } mViewer->showMaximized(); } + +void FSWidget::preview(){ + QModelIndexList selected = mFileView->selectionModel()->selectedRows(); + if(selected.isEmpty()){ + return; + } + QString mime = selected.first().data(MimeRole).toString(); + if(mime.startsWith("video")){ + mViewer->preview(selected.first().data(FullPathRole).toString()); + mViewer->showMaximized(); + } +} diff --git a/fswidget.h b/fswidget.h index 2bc6352..a66fbd6 100644 --- a/fswidget.h +++ b/fswidget.h @@ -39,6 +39,7 @@ class FSWidget : public QWidget { void filterMime(const QString &mime); void unpack(); void doubleClicked(const QModelIndex &idx); + void preview(); signals: void message(QString msg); diff --git a/shemov.qrc b/shemov.qrc index cf6379c..18a42ff 100644 --- a/shemov.qrc +++ b/shemov.qrc @@ -48,5 +48,6 @@ rename.png delete.png refresh.png + snapshot.png diff --git a/snapshot.png b/snapshot.png new file mode 100644 index 0000000..d2e8880 Binary files /dev/null and b/snapshot.png differ diff --git a/viewer.cpp b/viewer.cpp index fec9c81..b42a725 100644 --- a/viewer.cpp +++ b/viewer.cpp @@ -56,7 +56,6 @@ void Viewer::preview(const QString &file){ mLabel->setPixmap(pm); QString winTitle = QString(tr("%1 Viewer: [Preview %2]")).arg(qApp->applicationName()).arg(file); setWindowTitle(winTitle); - adjustSize(); } -- cgit v1.2.3-70-g09d2