]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/information/phononwidget.h
Build with QT_NO_KEYWORDS
[dolphin.git] / src / panels / information / phononwidget.h
index eff613bd96d51580109b76294d8e72d970a03e07..5510b05442adc0c5bf6c32177c691fe51979d87d 100644 (file)
@@ -1,32 +1,18 @@
-/*  This file is part of the KDE project
-    Copyright (C) 2007 Matthias Kretz <kretz@kde.org>
-
-    This program is free software; you can redistribute it and/or
-    modify it under the terms of the GNU General Public License as
-    published by the Free Software Foundation; either version 2 of
-    the License, or (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-    02110-1301, USA.
+/*
+  SPDX-FileCopyrightText: 2007 Matthias Kretz <kretz@kde.org>
 
+  SPDX-License-Identifier: GPL-2.0-or-later
 */
 
 #ifndef PHONONWIDGET_H
 #define PHONONWIDGET_H
 
-#include <QUrl>
+#include <Phonon/Global>
+
 #include <QSize>
+#include <QUrl>
 #include <QWidget>
 
-#include <Phonon/Global>
-
 namespace Phonon
 {
     class AudioOutput;
@@ -43,15 +29,26 @@ class PhononWidget : public QWidget
 {
     Q_OBJECT
     public:
+
+        enum MediaKind {
+            Video,
+            Audio
+        };
+
         explicit PhononWidget(QWidget *parent = nullptr);
 
-        void setUrl(const QUrl &url);
+        void setUrl(const QUrl &url, MediaKind kind);
         QUrl url() const;
+        void clearUrl();
 
         void setVideoSize(const QSize& size);
         QSize videoSize() const;
+        Phonon::State state() const;
+
+        void setAutoPlay(bool autoPlay);
+        bool eventFilter(QObject *object, QEvent *event) override;
 
-    signals:
+    Q_SIGNALS:
         /**
          * Is emitted whenever the video-state
          * has changed: If true is returned, a video
@@ -62,31 +59,37 @@ class PhononWidget : public QWidget
          */
         void hasVideoChanged(bool hasVideo);
 
+    public Q_SLOTS:
+        void play();
+
     protected:
         void showEvent(QShowEvent *event) override;
         void hideEvent(QHideEvent *event) override;
 
-    private slots:
-        void stateChanged(Phonon::State);
-        void play();
+    private Q_SLOTS:
+        void stateChanged(Phonon::State newstate);
         void stop();
-        void slotHasVideoChanged(bool);
+        void finished();
 
     private:
         void applyVideoSize();
 
     private:
+        void togglePlayback();
+
         QUrl m_url;
         QSize m_videoSize;
 
         QToolButton *m_playButton;
-        QToolButton *m_stopButton;
+        QToolButton *m_pauseButton;
 
         QVBoxLayout *m_topLayout;
         Phonon::MediaObject *m_media;
         Phonon::SeekSlider *m_seekSlider;
         Phonon::AudioOutput *m_audioOutput;
         EmbeddedVideoPlayer *m_videoPlayer;
+        bool m_autoPlay;
+        bool m_isVideo;
 };
 
 #endif // PHONONWIDGET_H