From 9316baa7659537ba8ec81a2b5a4c8c92479c16bd Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Fri, 19 Nov 2021 11:50:50 +0100
Subject: [PATCH] MPV: Re create the MPV context at first toggle request if not
 already initialized

---
 src/UI/DocumentViews/MpvContainer.cc | 4 ++++
 src/UI/DocumentViews/MpvControls.cc  | 4 ----
 src/UI/DocumentViews/MpvControls.hh  | 1 -
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/UI/DocumentViews/MpvContainer.cc b/src/UI/DocumentViews/MpvContainer.cc
index fb094d4e..1ba5067b 100644
--- a/src/UI/DocumentViews/MpvContainer.cc
+++ b/src/UI/DocumentViews/MpvContainer.cc
@@ -297,6 +297,10 @@ MpvContainer::mpvPause() noexcept
 void
 MpvContainer::mpvTogglePlayback() noexcept
 {
+    if (!isMpvAlreadyInitialized) {
+        reCreateMpvContext();
+    }
+
     logDebug() << "MPV: Toggling the playback";
     asyncCommand(AsyncCmdType::TogglePlayback, { "cycle", "pause", "up", nullptr });
 }
diff --git a/src/UI/DocumentViews/MpvControls.cc b/src/UI/DocumentViews/MpvControls.cc
index a9d63a8f..453c87c5 100644
--- a/src/UI/DocumentViews/MpvControls.cc
+++ b/src/UI/DocumentViews/MpvControls.cc
@@ -9,8 +9,6 @@ MpvControls::MpvControls(MpvContainer *passedContainer, QWidget *parent) noexcep
 {
     auto *progressBar          = new QSlider(this);
     auto *togglePlaybackButton = new QPushButton(playIcon, "", this); // Be default MPV is paused
-    auto *reCreateMpvButton    = new QPushButton(
-        reCreateMpvIcon, "", this); // Recreate the MPV context if something went wrong
 
     progressBar->setTracking(false);
     progressBar->setOrientation(Qt::Horizontal);
@@ -56,7 +54,6 @@ MpvControls::MpvControls(MpvContainer *passedContainer, QWidget *parent) noexcep
     });
 
     connect(togglePlaybackButton, &QAbstractButton::clicked, mpv, &MpvContainer::mpvTogglePlayback);
-    connect(reCreateMpvButton, &QAbstractButton::clicked, mpv, &MpvContainer::reCreateMpvContext);
     connect(mpv, &MpvContainer::mpvPlaybackToggled, this,
             [this, togglePlaybackButton](bool isPlay) noexcept -> void {
                 togglePlaybackButton->setIcon(isPlay ? pauseIcon : playIcon);
@@ -64,7 +61,6 @@ MpvControls::MpvControls(MpvContainer *passedContainer, QWidget *parent) noexcep
 
     auto *centralLayout = new QHBoxLayout(this);
     centralLayout->addWidget(togglePlaybackButton);
-    centralLayout->addWidget(reCreateMpvButton);
     centralLayout->addWidget(progressBar, 1);
     setLayout(centralLayout);
 }
diff --git a/src/UI/DocumentViews/MpvControls.hh b/src/UI/DocumentViews/MpvControls.hh
index 84cd143a..5c792dc7 100644
--- a/src/UI/DocumentViews/MpvControls.hh
+++ b/src/UI/DocumentViews/MpvControls.hh
@@ -23,7 +23,6 @@ private:
 
     const QIcon playIcon{ VIVY_ICON_PLAY };
     const QIcon pauseIcon{ VIVY_ICON_PAUSE };
-    const QIcon reCreateMpvIcon{ VIVY_ICON_RUN };
 
 public:
     explicit MpvControls(MpvContainer *mpv, QWidget *parent) noexcept;
-- 
GitLab