OSDN Git Service

dolphin: pause the information panel video player instead of stopping it
authorIvailo Monev <xakepa10@gmail.com>
Tue, 29 Nov 2022 09:37:32 +0000 (11:37 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Tue, 29 Nov 2022 09:41:12 +0000 (11:41 +0200)
MPV causes fatal X11 I/O if it is stopped for some reason, fixes crash
in case of KDirNotify event

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
dolphin/src/panels/information/informationpanelcontent.cpp

index 2ee6e79..b2d6475 100644 (file)
@@ -160,13 +160,14 @@ void InformationPanelContent::showItem(const KFileItem& item)
             m_preview->hide();
             m_playerWidget->show();
             m_playerWidget->open(item.targetUrl().url());
+            m_playerWidget->setPlay(int(1));
         } else {
-            m_playerWidget->player()->stop();
+            m_playerWidget->setPlay(int(0));
             m_playerWidget->hide();
             m_preview->show();
         }
     } else {
-        m_playerWidget->player()->stop();
+        m_playerWidget->setPlay(int(0));
         m_playerWidget->hide();
     }
 
@@ -187,7 +188,7 @@ void InformationPanelContent::showItems(const KFileItemList& items)
         m_metaDataWidget->setItems(items);
     }
 
-    m_playerWidget->player()->stop();
+    m_playerWidget->setPlay(int(0));
     m_playerWidget->hide();
 
     m_item = KFileItem();
@@ -218,7 +219,7 @@ bool InformationPanelContent::eventFilter(QObject* obj, QEvent* event)
 
     case QEvent::Hide:
         if (m_playerWidget)
-            m_playerWidget->player()->stop();
+            m_playerWidget->setPlay(int(0));
         break;
 
     default:
@@ -255,7 +256,7 @@ void InformationPanelContent::configureSettings(const QList<QAction*>& customCon
     const bool isChecked = action->isChecked();
     if (action == previewAction) {
         if (!isChecked) {
-            m_playerWidget->player()->stop();
+            m_playerWidget->setPlay(int(0));
             m_playerWidget->hide();
         }
         m_preview->setVisible(isChecked);