diff options
Diffstat (limited to 'fswidget.cpp')
-rw-r--r-- | fswidget.cpp | 16 |
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(); + } +} |