From 60ea493ca2fb960c5ef83bc16f2f3e00e4da2cda Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Tue, 3 Aug 2021 16:03:02 +0200 Subject: [PATCH] UI: Add the video view creation to the vivy doc view --- src/UI/DocumentViews/MpvContainer.cc | 3 +++ src/UI/VivyDocumentView.cc | 14 +++++++++++++- src/UI/VivyDocumentView.hh | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/UI/DocumentViews/MpvContainer.cc b/src/UI/DocumentViews/MpvContainer.cc index 326f8c2b..24e95974 100644 --- a/src/UI/DocumentViews/MpvContainer.cc +++ b/src/UI/DocumentViews/MpvContainer.cc @@ -179,6 +179,9 @@ MpvContainer::onMpvEvent() noexcept void MpvContainer::loadFile(const QString &filename) noexcept { + if (filename.isEmpty()) + return; + const QByteArray c_filename = filename.toUtf8(); const char *args[] = { "loadfile", c_filename.data(), nullptr }; printMpvError(mpv_command_async(mpv, 0, args)); diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc index c35b0179..31d659a1 100644 --- a/src/UI/VivyDocumentView.cc +++ b/src/UI/VivyDocumentView.cc @@ -78,7 +78,19 @@ VivyDocumentView::getDocumentTabToolTip() const noexcept void VivyDocumentView::loadVideoView() noexcept { - if (document->checkDocumentCapabilities(VivyDocument::Capabilities::VideoAble)) { + if (document->checkDocumentCapabilities(VivyDocument::Capabilities::VideoAble) && + (!videoView)) { + if (!videoView) { + videoView = new QDockWidget("Video View", this); + videoView->setFeatures(QDockWidget::DockWidgetMovable | + QDockWidget::DockWidgetFloatable); + videoView->setAllowedAreas(Qt::AllDockWidgetAreas); + videoView->setWidget(new VideoView(videoView)); + addDockWidget(Qt::BottomDockWidgetArea, videoView, Qt::Vertical); + } + + qobject_cast<VideoView *>(videoView->widget()) + ->loadFile(document->getVideoSubDocument()->getFilePath()); } } diff --git a/src/UI/VivyDocumentView.hh b/src/UI/VivyDocumentView.hh index 13d802cc..4cdcc8ef 100644 --- a/src/UI/VivyDocumentView.hh +++ b/src/UI/VivyDocumentView.hh @@ -15,6 +15,7 @@ namespace Vivy class PropertyModel; class AssLinesModel; class VivyDocument; +class VideoView; class VivyDocumentView final : public AbstractDocumentView { Q_OBJECT -- GitLab