[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