summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/multimedia/opieplayer/videowidget.cpp171
-rw-r--r--core/multimedia/opieplayer/videowidget.h14
2 files changed, 119 insertions, 66 deletions
diff --git a/core/multimedia/opieplayer/videowidget.cpp b/core/multimedia/opieplayer/videowidget.cpp
index 1b38206..6ed0108 100644
--- a/core/multimedia/opieplayer/videowidget.cpp
+++ b/core/multimedia/opieplayer/videowidget.cpp
@@ -53,13 +53,13 @@ struct MediaButton {
};
// Layout information for the videoButtons (and if it is a toggle button or not)
MediaButton videoButtons[] = {
{ FALSE, FALSE, FALSE }, // stop
- { TRUE, FALSE, FALSE }, // play
+ { FALSE, FALSE, FALSE }, // play
{ FALSE, FALSE, FALSE }, // previous
{ FALSE, FALSE, FALSE }, // next
{ FALSE, FALSE, FALSE }, // volUp
{ FALSE, FALSE, FALSE }, // volDown
{ TRUE, FALSE, FALSE } // fullscreen
};
@@ -141,20 +141,20 @@ VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) :
connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) );
connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) );
- connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) );
+// connect( mediaPlayerState, SIGNAL( pausedToggled(bool) ), this, SLOT( setPaused(bool) ) );
connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
// Intialise state
setLength( mediaPlayerState->length() );
setPosition( mediaPlayerState->position() );
setFullscreen( mediaPlayerState->fullscreen() );
- setPaused( mediaPlayerState->paused() );
+// setPaused( mediaPlayerState->paused() );
setPlaying( mediaPlayerState->playing() );
}
VideoWidget::~VideoWidget() {
@@ -316,97 +316,153 @@ void VideoWidget::paintButton( QPainter *p, int i ) {
// p->drawPixmap( x, y, *pixmaps[videoButtons[i].isDown] );
// p->drawPixmap( x + 1 + offset, y + offset, *pixmaps[2], 9 * videoButtons[i].controlType, 0, 9, 9 );
}
void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
-
- for ( int i = 0; i < numVButtons; i++ )
- {
- if ( event->state() == QMouseEvent::LeftButton )
- {
+ for ( int i = 0; i < numVButtons; i++ ) {
+ if ( event->state() == QMouseEvent::LeftButton ) {
// The test to see if the mouse click is inside the button or not
int x = event->pos().x() - xoff;
int y = event->pos().y() - yoff;
bool isOnButton = ( x > 0 && y > 0 && x < imgButtonMask->width()
&& y < imgButtonMask->height()
&& imgButtonMask->pixelIndex( x, y ) == i + 1 );
- if ( isOnButton && !videoButtons[i].isHeld )
- {
+ if ( isOnButton && !videoButtons[i].isHeld ) {
videoButtons[i].isHeld = TRUE;
toggleButton(i);
+ switch (i) {
+ case VideoVolUp:
+ emit moreClicked();
+ return;
+ case VideoVolDown:
+ emit lessClicked();
+ return;
+ }
+ } else if ( !isOnButton && videoButtons[i].isHeld ) {
+ videoButtons[i].isHeld = FALSE;
+ toggleButton(i);
+ }
+ } else {
+
+ if ( videoButtons[i].isHeld ) {
+ videoButtons[i].isHeld = FALSE;
+ if ( !videoButtons[i].isToggle ) {
+ setToggleButton( i, FALSE );
+ }
+
+ switch(i) {
+
+ case VideoPlay: {
+ qDebug("play");
+ if( !mediaPlayerState->playing()) {
+ mediaPlayerState->setPlaying( true);
+ setToggleButton( i-1, false );
+ setToggleButton( i, false );
+ return;
+ }
+ if( mediaPlayerState->isPaused ) {
+ qDebug("isPaused");
+ setToggleButton( i, FALSE );
+ mediaPlayerState->setPaused( FALSE );
+ return;
+ } else if( !mediaPlayerState->isPaused ) {
+ qDebug("is not paused");
+ setToggleButton( i, TRUE );
+ mediaPlayerState->setPaused( TRUE );
+ return;
+ } else {
+ return;
+ }
+ }
+
+ case VideoStop: qDebug("stop"); mediaPlayerState->setPlaying( FALSE ); setToggleButton( i+1, true); setToggleButton( i, true ); return;
+ case VideoNext: mediaPlayerState->setNext(); return;
+ case VideoPrevious: mediaPlayerState->setPrev(); return;
+ case VideoVolUp: emit moreReleased(); return;
+ case VideoVolDown: emit lessReleased(); return;
+ case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
+ }
+ }
+ }
+ }
+
+// for ( int i = 0; i < numVButtons; i++ )
+// {
+// if ( event->state() == QMouseEvent::LeftButton )
+// {
+// // The test to see if the mouse click is inside the button or not
+// int x = event->pos().x() - xoff;
+// int y = event->pos().y() - yoff;
+
+// bool isOnButton = ( x > 0 && y > 0 && x < imgButtonMask->width()
+// && y < imgButtonMask->height()
+// && imgButtonMask->pixelIndex( x, y ) == i + 1 );
+
+// if ( isOnButton && !videoButtons[i].isHeld )
+// {
+// qDebug("key %d", i);
+
+// videoButtons[i].isHeld = TRUE;
+// toggleButton(i);
// switch (i) {
// case VideoVolUp:
// emit moreClicked();
// return;
// case VideoVolDown:
// emit lessClicked();
// return;
// }
- }
- else if ( !isOnButton && videoButtons[i].isHeld )
- {
- videoButtons[i].isHeld = FALSE;
- toggleButton(i);
- }
- }
- else
- {
+// } else if ( !isOnButton && videoButtons[i].isHeld ) {
+// videoButtons[i].isHeld = FALSE;
+// toggleButton(i);
+// }
- if ( videoButtons[i].isHeld )
- {
- videoButtons[i].isHeld = FALSE;
- if ( !videoButtons[i].isToggle )
- {
- setToggleButton( i, FALSE );
- }
- qDebug("key %d", i);
- switch(i)
- {
-// case VideoPlay:
+
+// } else {
+
+// if ( videoButtons[i].isHeld )
// {
-// if( mediaPlayerState->isPaused )
+// videoButtons[i].isHeld = FALSE;
+// if ( !videoButtons[i].isToggle ) {
+// setToggleButton( i, FALSE );
+// }
+// qDebug("key %d", i);
+// switch(i) {
+// case VideoPlay:
// {
+// if( mediaPlayerState->isPaused ) {
// setToggleButton( i, FALSE );
// mediaPlayerState->setPaused( FALSE );
// return;
// }
-// else if( !mediaPlayerState->isPaused )
-// {
+// else if( !mediaPlayerState->isPaused ) {
// setToggleButton( i, TRUE );
// mediaPlayerState->setPaused( TRUE );
// return;
-// }
-// else
-// {
+// } else {
// return;
// }
// }
- case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return;
- case VideoStop: mediaPlayerState->setPlaying(FALSE); return;
-// case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); return;
- case VideoNext: mediaPlayerState->setNext(); return;
- case VideoPrevious: mediaPlayerState->setPrev(); return;
-// case VideoPlayList: mediaPlayerState->setList(); return;
- case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
-
// case VideoStop: mediaPlayerState->setPlaying( FALSE ); return;
-// case VideoNext: if(playList->whichList() ==0) mediaPlayerState->setNext(); return;
-// case VideoPrevious: if(playList->whichList() ==0) mediaPlayerState->setPrev(); return;
+// // case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return;
+// // case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); return;
+// case VideoNext: mediaPlayerState->setNext(); return;
+// case VideoPrevious: mediaPlayerState->setPrev(); return;
// case VideoVolUp: emit moreReleased(); return;
// case VideoVolDown: emit lessReleased(); return;
+// // case VideoPlayList: mediaPlayerState->setList(); return;
// case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
- }
- }
- }
- }
-
+// }
+// }
+// }
+// }
// for ( int i = 0; i < numButtons; i++ ) {
@@ -429,21 +485,12 @@ void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
// videoButtons[i].isHeld = FALSE;
// if ( !videoButtons[i].isToggle )
// setToggleButton( i, FALSE );
// }
// }
-// switch (i) {
-// case VideoPlay: mediaPlayerState->setPlaying(videoButtons[i].isDown); return;
-// case VideoStop: mediaPlayerState->setPlaying(FALSE); return;
-// case VideoPause: mediaPlayerState->setPaused(videoButtons[i].isDown); return;
-// case VideoNext: mediaPlayerState->setNext(); return;
-// case VideoPrevious: mediaPlayerState->setPrev(); return;
-// case VideoPlayList: mediaPlayerState->setList(); return;
-// case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
-// }
// }
}
void VideoWidget::mousePressEvent( QMouseEvent *event ) {
@@ -453,15 +500,15 @@ void VideoWidget::mousePressEvent( QMouseEvent *event ) {
void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
if ( mediaPlayerState->fullscreen() )
{
mediaPlayerState->setFullscreen( FALSE );
makeVisible();
-
- mouseMoveEvent( event );
}
+ mouseMoveEvent( event );
+// }
}
void VideoWidget::makeVisible() {
if ( mediaPlayerState->fullscreen() )
{
diff --git a/core/multimedia/opieplayer/videowidget.h b/core/multimedia/opieplayer/videowidget.h
index fd86cd2..e9778f1 100644
--- a/core/multimedia/opieplayer/videowidget.h
+++ b/core/multimedia/opieplayer/videowidget.h
@@ -25,18 +25,20 @@
class QPixmap;
class QSlider;
enum VideoButtons {
- VideoPrevious,
VideoStop,
VideoPlay,
- VideoPause,
+// VideoPause,
+ VideoPrevious,
VideoNext,
- VideoPlayList,
+ VideoVolUp,
+ VideoVolDown,
+// VideoPlayList,
VideoFullscreen
};
class VideoWidget : public QWidget {
Q_OBJECT
public:
@@ -46,21 +48,25 @@ public:
bool playVideo();
public slots:
void updateSlider( long, long );
void sliderPressed( );
void sliderReleased( );
- void setPaused( bool b) { setToggleButton( VideoPause, b ); }
+// void setPaused( bool b) { setToggleButton( VideoPause, b ); }
void setPlaying( bool b) { setToggleButton( VideoPlay, b ); }
void setFullscreen( bool b ) { setToggleButton( VideoFullscreen, b ); }
void makeVisible();
void setPosition( long );
void setLength( long );
void setView( char );
signals:
+ void moreClicked();
+ void lessClicked();
+ void moreReleased();
+ void lessReleased();
void sliderMoved( long );
protected:
void resizeEvent( QResizeEvent * );
void paintEvent( QPaintEvent *pe );
void mouseMoveEvent( QMouseEvent *event );