summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-08-26 21:56:03 +0200
committerArno <arno@disconnect.de>2018-08-26 21:56:03 +0200
commit6fcc0807135bee7d2d505d40a243d21cca4a6daa (patch)
treee3275a8a57ba8eb30f8ed39dfbe34d9b2d525fa8
parent02163d24e30d914f82c11edc7a98a9cc08d45310 (diff)
downloadSheMov-6fcc0807135bee7d2d505d40a243d21cca4a6daa.tar.gz
SheMov-6fcc0807135bee7d2d505d40a243d21cca4a6daa.tar.bz2
SheMov-6fcc0807135bee7d2d505d40a243d21cca4a6daa.zip
Add option for using the internal viewer
Also use the new connect syntax for ProgramConfigurator.
-rw-r--r--fswidget.cpp38
-rw-r--r--programconfigurator.cpp41
-rw-r--r--programconfigurator.h6
3 files changed, 55 insertions, 30 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index 405d19d..0215e3a 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -114,8 +114,6 @@ void FSWidget::setupWidget(){
toolbar->addAction(headerA);
toolbar->addSeparator();
toolbar->addAction(SmGlobals::instance()->globalAction());
- QAction *playQtA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Play with QT"), this);
- connect(playQtA, &QAction::triggered, this, &FSWidget::playQt);
QAction *playSelectedA = new QAction(QIcon(":/spreadingpants.png"), tr("Play selected"), this);
connect(playSelectedA, &QAction::triggered, [=] { playSelected(1, QString()); });
playSelectedA->setShortcut(Qt::Key_Return);
@@ -196,7 +194,7 @@ void FSWidget::setupWidget(){
mFileView->sortByColumn(0, Qt::AscendingOrder);
connect(mFileView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &FSWidget::calculateSelectionChanged);
- mFileView->addActions(QList<QAction*>() << playQtA << playSelectedA << playRepeatMA << mPlayWithA << Helper::createSeparator(this) << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << archivePicsA << Helper::createSeparator(this) << unpackA << previewA << selectFilterA << unselectAllA);
+ mFileView->addActions(QList<QAction*>() << playSelectedA << playRepeatMA << mPlayWithA << Helper::createSeparator(this) << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << archivePicsA << Helper::createSeparator(this) << unpackA << previewA << selectFilterA << unselectAllA);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(topWL);
@@ -575,16 +573,32 @@ void FSWidget::playSelected(int count, QString player){
for(const QModelIndex &idx : selected){
paths << idx.data(FullPathRole).toString();
}
- if(player.isEmpty()){
- QSettings s;
- player = s.value("programs_movieviewer/default").toString();
- }
- QPair<QString, QStringList> playerData = Helper::programData("movieviewer", player);
- QStringList args = playerData.second;
- for(int i = 0; i < count; ++i){
- args << paths;
+ QSettings s;
+ bool useInternal = s.value("vw/internal").toBool();
+ if(useInternal && player.isEmpty()){
+ VideoViewer *wv = new VideoViewer;
+ QMediaPlaylist *pl = wv->player()->playlist();
+ pl->clear();
+ for(int i = 0; i < count; ++i){
+ for(const QString &p : paths){
+ pl->addMedia(QUrl::fromLocalFile(p));
+ }
+ }
+ pl->setCurrentIndex(0);
+ wv->setVisible(true);
+ wv->player()->play();
+ }else{
+ if(player.isEmpty()){
+ QSettings s;
+ player = s.value("programs_movieviewer/default").toString();
+ }
+ QPair<QString, QStringList> playerData = Helper::programData("movieviewer", player);
+ QStringList args = playerData.second;
+ for(int i = 0; i < count; ++i){
+ args << paths;
+ }
+ QProcess::startDetached(playerData.first, args);
}
- QProcess::startDetached(playerData.first, args);
}
void FSWidget::playQt(){
diff --git a/programconfigurator.cpp b/programconfigurator.cpp
index fa05e5c..ae272f5 100644
--- a/programconfigurator.cpp
+++ b/programconfigurator.cpp
@@ -5,16 +5,17 @@
2 of the License, or (at your option) any later version.
*/
-#include <QtWidgets/QPushButton>
-#include <QtWidgets/QComboBox>
-#include <QtWidgets/QLineEdit>
-#include <QtWidgets/QLabel>
-#include <QtWidgets/QGridLayout>
-#include <QtWidgets/QHBoxLayout>
-#include <QtWidgets/QCompleter>
+#include <QPushButton>
+#include <QComboBox>
+#include <QLineEdit>
+#include <QLabel>
+#include <QCheckBox>
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QCompleter>
#include <QSettings>
-#include <QtWidgets/QDirModel>
-#include <QtWidgets/QMessageBox>
+#include <QDirModel>
+#include <QMessageBox>
#include <QRegExp>
#include <QFileInfo>
@@ -56,15 +57,21 @@ ProgramConfigurator::ProgramConfigurator(const QString &prefix, const QString &d
buttonLayout->addWidget(mUpdate);
buttonLayout->addWidget(mDefault);
buttonLayout->addStretch();
- mainLayout->addLayout(buttonLayout, 5, 0, 1, 2, Qt::AlignCenter);
+ mainLayout->addLayout(buttonLayout, 5, 0, 1, 2, Qt::AlignCenter);
+ mInternalViewer = new QCheckBox(tr("Use internal Viewer"));
+ QHBoxLayout *intViewerL = new QHBoxLayout;
+ intViewerL->addStretch();
+ intViewerL->addWidget(mInternalViewer);
+ intViewerL->addStretch();
+ mainLayout->addLayout(intViewerL, 6, 0, 1, 2, Qt::AlignCenter);
QVBoxLayout *stretchLayout = new QVBoxLayout;
stretchLayout->addStretch();
mainLayout->addLayout(stretchLayout, 6, 0, 1, 2);
- connect(mProgramSelector, SIGNAL(currentIndexChanged(QString)), this, SLOT(programChanged(QString)));
- connect(mAdd, SIGNAL(clicked()), this, SLOT(addProgram()));
- connect(mRemove, SIGNAL(clicked()), this, SLOT(removeProgram()));
- connect(mUpdate, SIGNAL(clicked()), this, SLOT(updateProgram()));
- connect(mDefault, SIGNAL(clicked()), this, SLOT(setDefault()));
+ connect(mProgramSelector, QOverload<const QString &>::of(&QComboBox::currentIndexChanged), this, &ProgramConfigurator::programChanged);
+ connect(mAdd, &QPushButton::clicked, this, &ProgramConfigurator::addProgram);
+ connect(mRemove, &QPushButton::clicked, this, &ProgramConfigurator::removeProgram);
+ connect(mUpdate, &QPushButton::clicked, this, &ProgramConfigurator::updateProgram);
+ connect(mDefault, &QPushButton::clicked, this, &ProgramConfigurator::setDefault);
readSettings();
setLayout(mainLayout);
}
@@ -76,6 +83,7 @@ void ProgramConfigurator::writeSettings(){
QSettings s;
s.setValue(defaultString, mDefautProg);
s.setValue(dataString, mData);
+ s.setValue("vw/internal", mInternalViewer->isChecked());
}
void ProgramConfigurator::programChanged(const QString &program){
@@ -162,7 +170,7 @@ void ProgramConfigurator::readSettings(){
QSettings s;
mData = s.value(dataString).toHash();
QStringList progs;
- foreach(QString p, mData.keys()){
+ for(QString p : mData.keys()){
progs << p;
}
mProgramSelector->addItems(progs);
@@ -171,6 +179,7 @@ void ProgramConfigurator::readSettings(){
if(idx != -1){
mProgramSelector->setCurrentIndex(idx);
}
+ mInternalViewer->setChecked(s.value("vw/internal").toBool());
setDefault();
}
diff --git a/programconfigurator.h b/programconfigurator.h
index 05e3e9e..3df66a5 100644
--- a/programconfigurator.h
+++ b/programconfigurator.h
@@ -8,7 +8,7 @@
#ifndef PROGRAMCONFIGURATOR_H
#define PROGRAMCONFIGURATOR_H
-#include <QtWidgets/QWidget>
+#include <QWidget>
#include <QString>
#include <QHash>
#include <QVariant>
@@ -19,11 +19,12 @@ class QComboBox;
class QStringList;
class QLabel;
class QStringList;
+class QCheckBox;
class ProgramConfigurator : public QWidget {
Q_OBJECT
public:
- ProgramConfigurator(const QString &prefix, const QString &description, QWidget *parent = 0);
+ ProgramConfigurator(const QString &prefix, const QString &description, QWidget *parent = nullptr);
~ProgramConfigurator() {}
public slots:
@@ -50,6 +51,7 @@ class ProgramConfigurator : public QWidget {
QPushButton *mRemove;
QPushButton *mUpdate;
QPushButton *mDefault;
+ QCheckBox *mInternalViewer;
QLabel *mDefaultLabel;
QHash<QString, QVariant> mData;
QString mDefautProg;