[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [okular] ui: Switch from poster image to video player after video has started playing
From:       Tobias Koenig <tokoe () kde ! org>
Date:       2012-08-21 7:38:45
Message-ID: 20120821073845.62EC5A6042 () git ! kde ! org
[Download RAW message or body]

Git commit 811e3b253942a1319f2c13a9486378f57c545a10 by Tobias Koenig.
Committed on 21/08/2012 at 09:37.
Pushed by tokoe into branch 'master'.

Switch from poster image to video player after video has started playing

If we switch immediately after the play() trigger, a black frame is visible
for a moment, which looks ugly.

M  +11   -1    ui/videowidget.cpp
M  +1    -0    ui/videowidget.h

http://commits.kde.org/okular/811e3b253942a1319f2c13a9486378f57c545a10

diff --git a/ui/videowidget.cpp b/ui/videowidget.cpp
index 3b7782d..ea0e5b8 100644
--- a/ui/videowidget.cpp
+++ b/ui/videowidget.cpp
@@ -25,6 +25,7 @@
 #include <kicon.h>
 #include <klocale.h>
 
+#include <phonon/mediaobject.h>
 #include <phonon/seekslider.h>
 #include <phonon/videoplayer.h>
 
@@ -69,6 +70,7 @@ public:
     void setPosterImage( const QImage& );
     void takeSnapshot();
     void videoStopped();
+    void stateChanged(Phonon::State, Phonon::State);
 
     // slots
     void finished();
@@ -113,6 +115,9 @@ void VideoWidget::Private::load()
     else
         player->load( newurl );
 
+    connect( player->mediaObject(), SIGNAL( stateChanged( Phonon::State, \
Phonon::State ) ), +             q, SLOT( stateChanged( Phonon::State, Phonon::State \
) ) ); +
     seekSlider->setEnabled( true );
 }
 
@@ -210,6 +215,12 @@ void VideoWidget::Private::setPosterImage( const QImage &image )
     q->show();
 }
 
+void VideoWidget::Private::stateChanged( Phonon::State newState, Phonon::State )
+{
+    if ( newState == Phonon::PlayingState )
+        pageLayout->setCurrentIndex( 0 );
+}
+
 VideoWidget::VideoWidget( Okular::MovieAnnotation *movieann, Okular::Document \
*document, QWidget *parent )  : QWidget( parent ), d( new Private( movieann, \
document, this ) )  {
@@ -336,7 +347,6 @@ void VideoWidget::pageLeft()
 
 void VideoWidget::play()
 {
-    d->pageLayout->setCurrentIndex( 0 );
     d->load();
     d->player->play();
     d->stopAction->setEnabled( true );
diff --git a/ui/videowidget.h b/ui/videowidget.h
index 71dda22..384e2ff 100644
--- a/ui/videowidget.h
+++ b/ui/videowidget.h
@@ -54,6 +54,7 @@ class VideoWidget : public QWidget
         Q_PRIVATE_SLOT( d, void finished() )
         Q_PRIVATE_SLOT( d, void playOrPause() )
         Q_PRIVATE_SLOT( d, void setPosterImage( const QImage& ) )
+        Q_PRIVATE_SLOT( d, void stateChanged( Phonon::State, Phonon::State ) )
 
         // private storage
         class Private;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic