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