summaryrefslogtreecommitdiffstats
path: root/fswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fswidget.cpp')
-rw-r--r--fswidget.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index c35f6cf..d003200 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -38,6 +38,9 @@ FSWidget::FSWidget(QWidget *parent) : QWidget(parent) {
mViewer = new Viewer;
mNewPicsDlg = new NewPicsDialog;
mPlayer = new QProcess(qApp);
+ mVideoViewer = new VideoViewer;
+ mVideoViewer->setVisible(false);
+ connect(mVideoViewer->player(), &QMediaPlayer::stateChanged, this, &FSWidget::playerStateChanged);
connect(mPlayer, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished), this, &FSWidget::doPlay);
setPalette(qApp->palette());
setupWidget();
@@ -580,8 +583,7 @@ void FSWidget::playSelected(int count, QString player){
QSettings s;
bool useInternal = s.value("vw/internal").toBool();
if(useInternal && player.isEmpty()){
- VideoViewer *wv = new VideoViewer;
- QMediaPlaylist *pl = wv->player()->playlist();
+ QMediaPlaylist *pl = mVideoViewer->player()->playlist();
pl->clear();
for(int i = 0; i < count; ++i){
for(const QString &p : paths){
@@ -589,8 +591,8 @@ void FSWidget::playSelected(int count, QString player){
}
}
pl->setCurrentIndex(0);
- wv->setVisible(true);
- wv->player()->play();
+ mVideoViewer->setVisible(true);
+ mVideoViewer->player()->play();
}else{
if(mPlayer->state() != QProcess::NotRunning){
int retval = QMessageBox::question(this, tr("Terminate player?"), tr("Terminate running instance?"));
@@ -660,3 +662,9 @@ void FSWidget::calculateSelectionChanged(){
}
emit selectionChanged(count, size, duration);
}
+
+void FSWidget::playerStateChanged(QMediaPlayer::State s){
+ if(s == QMediaPlayer::StoppedState){
+ mVideoViewer->hide();
+ }
+}