summaryrefslogtreecommitdiff
authorsimon <simon>2002-12-09 18:33:53 (UTC)
committer simon <simon>2002-12-09 18:33:53 (UTC)
commit711d8c1af3ebdd6f88ff3e9ffa46624c9b63badd (patch) (unidiff)
tree20ad8855c3e9fcb0e0ec5a79b3d9e934236e1344
parent29b5784bba7b19497b5984418bacee261075ccf7 (diff)
downloadopie-711d8c1af3ebdd6f88ff3e9ffa46624c9b63badd.zip
opie-711d8c1af3ebdd6f88ff3e9ffa46624c9b63badd.tar.gz
opie-711d8c1af3ebdd6f88ff3e9ffa46624c9b63badd.tar.bz2
- another small cleanup in the mouse handling
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp10
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.h2
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.cpp10
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.h2
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp6
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.h1
6 files changed, 13 insertions, 18 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index dda039c..5986a72 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -288,106 +288,96 @@ void AudioWidget::updateSlider( long i, long max ) {
288 time.setText( timeAsString( i ) + " / " + timeAsString( max ) ); 288 time.setText( timeAsString( i ) + " / " + timeAsString( max ) );
289// qDebug( timeAsString( i ) + " / " + timeAsString( max ) ) ; 289// qDebug( timeAsString( i ) + " / " + timeAsString( max ) ) ;
290 290
291 if ( max == 0 ) { 291 if ( max == 0 ) {
292 return; 292 return;
293 } 293 }
294 // Will flicker too much if we don't do this 294 // Will flicker too much if we don't do this
295 // Scale to something reasonable 295 // Scale to something reasonable
296 int width = slider.width(); 296 int width = slider.width();
297 int val = int((double)i * width / max); 297 int val = int((double)i * width / max);
298 if ( !audioSliderBeingMoved ) { 298 if ( !audioSliderBeingMoved ) {
299 if ( slider.value() != val ) { 299 if ( slider.value() != val ) {
300 slider.setValue( val ); 300 slider.setValue( val );
301 } 301 }
302 302
303 if ( slider.maxValue() != width ) { 303 if ( slider.maxValue() != width ) {
304 slider.setMaxValue( width ); 304 slider.setMaxValue( width );
305 } 305 }
306 } 306 }
307} 307}
308 308
309void AudioWidget::skipFor() { 309void AudioWidget::skipFor() {
310 skipDirection = +1; 310 skipDirection = +1;
311 startTimer( 50 ); 311 startTimer( 50 );
312 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 ); 312 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 );
313} 313}
314 314
315void AudioWidget::skipBack() { 315void AudioWidget::skipBack() {
316 skipDirection = -1; 316 skipDirection = -1;
317 startTimer( 50 ); 317 startTimer( 50 );
318 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 ); 318 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 );
319} 319}
320 320
321 321
322 322
323void AudioWidget::stopSkip() { 323void AudioWidget::stopSkip() {
324 killTimers(); 324 killTimers();
325} 325}
326 326
327 327
328void AudioWidget::timerEvent( QTimerEvent * ) { 328void AudioWidget::timerEvent( QTimerEvent * ) {
329 if ( skipDirection == +1 ) { 329 if ( skipDirection == +1 ) {
330 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 ); 330 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 );
331 } else if ( skipDirection == -1 ) { 331 } else if ( skipDirection == -1 ) {
332 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 ); 332 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 );
333 } 333 }
334} 334}
335 335
336void AudioWidget::mousePressEvent( QMouseEvent *event ) {
337 mouseMoveEvent( event );
338}
339
340
341void AudioWidget::mouseReleaseEvent( QMouseEvent *event ) {
342 mouseMoveEvent( event );
343}
344
345
346void AudioWidget::showEvent( QShowEvent* ) { 336void AudioWidget::showEvent( QShowEvent* ) {
347 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 ); 337 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 );
348 mouseMoveEvent( &event ); 338 mouseMoveEvent( &event );
349} 339}
350 340
351void AudioWidget::keyReleaseEvent( QKeyEvent *e) { 341void AudioWidget::keyReleaseEvent( QKeyEvent *e) {
352 switch ( e->key() ) { 342 switch ( e->key() ) {
353 ////////////////////////////// Zaurus keys 343 ////////////////////////////// Zaurus keys
354 case Key_Home: 344 case Key_Home:
355 break; 345 break;
356 case Key_F9: //activity 346 case Key_F9: //activity
357 hide(); 347 hide();
358 // qDebug("Audio F9"); 348 // qDebug("Audio F9");
359 break; 349 break;
360 case Key_F10: //contacts 350 case Key_F10: //contacts
361 break; 351 break;
362 case Key_F11: //menu 352 case Key_F11: //menu
363 mediaPlayerState.toggleBlank(); 353 mediaPlayerState.toggleBlank();
364 break; 354 break;
365 case Key_F12: //home 355 case Key_F12: //home
366 break; 356 break;
367 case Key_F13: //mail 357 case Key_F13: //mail
368 mediaPlayerState.toggleBlank(); 358 mediaPlayerState.toggleBlank();
369 break; 359 break;
370 case Key_Space: { 360 case Key_Space: {
371 mediaPlayerState.togglePaused(); 361 mediaPlayerState.togglePaused();
372 } 362 }
373 break; 363 break;
374 case Key_Down: 364 case Key_Down:
375 // toggleButton(6); 365 // toggleButton(6);
376 emit lessClicked(); 366 emit lessClicked();
377 emit lessReleased(); 367 emit lessReleased();
378 // toggleButton(6); 368 // toggleButton(6);
379 break; 369 break;
380 case Key_Up: 370 case Key_Up:
381 // toggleButton(5); 371 // toggleButton(5);
382 emit moreClicked(); 372 emit moreClicked();
383 emit moreReleased(); 373 emit moreReleased();
384 // toggleButton(5); 374 // toggleButton(5);
385 break; 375 break;
386 case Key_Right: 376 case Key_Right:
387 // toggleButton(3); 377 // toggleButton(3);
388 mediaPlayerState.setNext(); 378 mediaPlayerState.setNext();
389 // toggleButton(3); 379 // toggleButton(3);
390 break; 380 break;
391 case Key_Left: 381 case Key_Left:
392 // toggleButton(4); 382 // toggleButton(4);
393 mediaPlayerState.setPrev(); 383 mediaPlayerState.setPrev();
diff --git a/noncore/multimedia/opieplayer2/audiowidget.h b/noncore/multimedia/opieplayer2/audiowidget.h
index 690d1b3..e2e2314 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.h
+++ b/noncore/multimedia/opieplayer2/audiowidget.h
@@ -31,72 +31,70 @@
31 31
32*/ 32*/
33 33
34#ifndef AUDIO_WIDGET_H 34#ifndef AUDIO_WIDGET_H
35#define AUDIO_WIDGET_H 35#define AUDIO_WIDGET_H
36 36
37#include <qpainter.h> 37#include <qpainter.h>
38#include <qdrawutil.h> 38#include <qdrawutil.h>
39#include <qpixmap.h> 39#include <qpixmap.h>
40#include <qstring.h> 40#include <qstring.h>
41#include <qslider.h> 41#include <qslider.h>
42#include <qframe.h> 42#include <qframe.h>
43#include <qlineedit.h> 43#include <qlineedit.h>
44#include <qimage.h> 44#include <qimage.h>
45 45
46#include <opie/oticker.h> 46#include <opie/oticker.h>
47 47
48#include "mediawidget.h" 48#include "mediawidget.h"
49 49
50class QPixmap; 50class QPixmap;
51 51
52class AudioWidget : public MediaWidget { 52class AudioWidget : public MediaWidget {
53 Q_OBJECT 53 Q_OBJECT
54public: 54public:
55 AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 ); 55 AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 );
56 ~AudioWidget(); 56 ~AudioWidget();
57 void setTickerText( const QString &text ) { songInfo.setText( text ); } 57 void setTickerText( const QString &text ) { songInfo.setText( text ); }
58public slots: 58public slots:
59 void updateSlider( long, long ); 59 void updateSlider( long, long );
60 void sliderPressed( ); 60 void sliderPressed( );
61 void sliderReleased( ); 61 void sliderReleased( );
62 void setLooping( bool b) { setToggleButton( Loop, b ); } 62 void setLooping( bool b) { setToggleButton( Loop, b ); }
63 void setPosition( long ); 63 void setPosition( long );
64 void setSeekable( bool ); 64 void setSeekable( bool );
65 65
66public: 66public:
67 virtual void setLength( long ); 67 virtual void setLength( long );
68 virtual void setPlaying( bool b) { setToggleButton( Play, b ); } 68 virtual void setPlaying( bool b) { setToggleButton( Play, b ); }
69 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ); 69 virtual void setDisplayType( MediaPlayerState::DisplayType displayType );
70 70
71signals: 71signals:
72 void sliderMoved(long); 72 void sliderMoved(long);
73 73
74protected: 74protected:
75 void doBlank(); 75 void doBlank();
76 void doUnblank(); 76 void doUnblank();
77 void showEvent( QShowEvent *se ); 77 void showEvent( QShowEvent *se );
78 void resizeEvent( QResizeEvent *re ); 78 void resizeEvent( QResizeEvent *re );
79 void mousePressEvent( QMouseEvent *event );
80 void mouseReleaseEvent( QMouseEvent *event );
81 void timerEvent( QTimerEvent *event ); 79 void timerEvent( QTimerEvent *event );
82 void keyReleaseEvent( QKeyEvent *e); 80 void keyReleaseEvent( QKeyEvent *e);
83private slots: 81private slots:
84 void skipFor(); 82 void skipFor();
85 void skipBack(); 83 void skipBack();
86 void stopSkip(); 84 void stopSkip();
87private: 85private:
88 int skipDirection; 86 int skipDirection;
89 QString skin; 87 QString skin;
90 QImage imgUp; 88 QImage imgUp;
91 QImage imgDn; 89 QImage imgDn;
92 90
93 OTicker songInfo; 91 OTicker songInfo;
94 QSlider slider; 92 QSlider slider;
95 QLineEdit time; 93 QLineEdit time;
96 bool isStreaming : 1; 94 bool isStreaming : 1;
97 bool audioSliderBeingMoved : 1; 95 bool audioSliderBeingMoved : 1;
98}; 96};
99 97
100 98
101#endif // AUDIO_WIDGET_H 99#endif // AUDIO_WIDGET_H
102 100
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp
index 3533d74..439ba2e 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.cpp
+++ b/noncore/multimedia/opieplayer2/mediawidget.cpp
@@ -68,96 +68,106 @@ void MediaWidget::paintEvent( QPaintEvent *pe )
68 paintAllButtons( p ); 68 paintAllButtons( p );
69 } 69 }
70} 70}
71 71
72void MediaWidget::mouseMoveEvent( QMouseEvent *event ) 72void MediaWidget::mouseMoveEvent( QMouseEvent *event )
73{ 73{
74 for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) { 74 for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) {
75 Button &button = *it; 75 Button &button = *it;
76 Command command = button.command; 76 Command command = button.command;
77 77
78 if ( event->state() == QMouseEvent::LeftButton ) { 78 if ( event->state() == QMouseEvent::LeftButton ) {
79 // The test to see if the mouse click is inside the button or not 79 // The test to see if the mouse click is inside the button or not
80 bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, command ); 80 bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, command );
81 81
82 if ( isOnButton && !button.isHeld ) { 82 if ( isOnButton && !button.isHeld ) {
83 button.isHeld = TRUE; 83 button.isHeld = TRUE;
84 toggleButton( button ); 84 toggleButton( button );
85 switch ( command ) { 85 switch ( command ) {
86 case VolumeUp: 86 case VolumeUp:
87 emit moreClicked(); 87 emit moreClicked();
88 return; 88 return;
89 case VolumeDown: 89 case VolumeDown:
90 emit lessClicked(); 90 emit lessClicked();
91 return; 91 return;
92 case Forward: 92 case Forward:
93 emit forwardClicked(); 93 emit forwardClicked();
94 return; 94 return;
95 case Back: 95 case Back:
96 emit backClicked(); 96 emit backClicked();
97 return; 97 return;
98 default: break; 98 default: break;
99 } 99 }
100 } else if ( !isOnButton && button.isHeld ) { 100 } else if ( !isOnButton && button.isHeld ) {
101 button.isHeld = FALSE; 101 button.isHeld = FALSE;
102 toggleButton( button ); 102 toggleButton( button );
103 } 103 }
104 } else { 104 } else {
105 if ( button.isHeld ) { 105 if ( button.isHeld ) {
106 button.isHeld = FALSE; 106 button.isHeld = FALSE;
107 if ( button.type != ToggleButton ) { 107 if ( button.type != ToggleButton ) {
108 setToggleButton( button, FALSE ); 108 setToggleButton( button, FALSE );
109 } 109 }
110 handleCommand( command, button.isDown ); 110 handleCommand( command, button.isDown );
111 } 111 }
112 } 112 }
113 } 113 }
114} 114}
115 115
116void MediaWidget::mousePressEvent( QMouseEvent *event )
117{
118 mouseMoveEvent( event );
119}
120
121void MediaWidget::mouseReleaseEvent( QMouseEvent *event )
122{
123 mouseMoveEvent( event );
124}
125
116void MediaWidget::makeVisible() 126void MediaWidget::makeVisible()
117{ 127{
118} 128}
119 129
120void MediaWidget::handleCommand( Command command, bool buttonDown ) 130void MediaWidget::handleCommand( Command command, bool buttonDown )
121{ 131{
122 switch ( command ) { 132 switch ( command ) {
123 case Play: mediaPlayerState.togglePaused(); 133 case Play: mediaPlayerState.togglePaused();
124 case Stop: mediaPlayerState.setPlaying(FALSE); return; 134 case Stop: mediaPlayerState.setPlaying(FALSE); return;
125 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return; 135 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return;
126 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return; 136 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return;
127 case Loop: mediaPlayerState.setLooping( buttonDown ); return; 137 case Loop: mediaPlayerState.setLooping( buttonDown ); return;
128 case VolumeUp: emit moreReleased(); return; 138 case VolumeUp: emit moreReleased(); return;
129 case VolumeDown: emit lessReleased(); return; 139 case VolumeDown: emit lessReleased(); return;
130 case PlayList: mediaPlayerState.setList(); return; 140 case PlayList: mediaPlayerState.setList(); return;
131 case Forward: emit forwardReleased(); return; 141 case Forward: emit forwardReleased(); return;
132 case Back: emit backReleased(); return; 142 case Back: emit backReleased(); return;
133 case FullScreen: mediaPlayerState.setFullscreen( true ); makeVisible(); return; 143 case FullScreen: mediaPlayerState.setFullscreen( true ); makeVisible(); return;
134 default: assert( false ); 144 default: assert( false );
135 } 145 }
136} 146}
137 147
138bool MediaWidget::isOverButton( const QPoint &position, int buttonId ) const 148bool MediaWidget::isOverButton( const QPoint &position, int buttonId ) const
139{ 149{
140 return ( position.x() > 0 && position.y() > 0 && 150 return ( position.x() > 0 && position.y() > 0 &&
141 position.x() < buttonMask.width() && 151 position.x() < buttonMask.width() &&
142 position.y() < buttonMask.height() && 152 position.y() < buttonMask.height() &&
143 buttonMask.pixelIndex( position.x(), position.y() ) == buttonId + 1 ); 153 buttonMask.pixelIndex( position.x(), position.y() ) == buttonId + 1 );
144} 154}
145 155
146void MediaWidget::paintAllButtons( QPainter &p ) 156void MediaWidget::paintAllButtons( QPainter &p )
147{ 157{
148 for ( ButtonVector::const_iterator it = buttons.begin(); 158 for ( ButtonVector::const_iterator it = buttons.begin();
149 it != buttons.end(); ++it ) 159 it != buttons.end(); ++it )
150 paintButton( p, *it ); 160 paintButton( p, *it );
151} 161}
152 162
153void MediaWidget::paintButton( const Button &button ) 163void MediaWidget::paintButton( const Button &button )
154{ 164{
155 QPainter p( this ); 165 QPainter p( this );
156 paintButton( p, button ); 166 paintButton( p, button );
157} 167}
158 168
159void MediaWidget::paintButton( QPainter &p, const Button &button ) 169void MediaWidget::paintButton( QPainter &p, const Button &button )
160{ 170{
161 if ( button.isDown ) 171 if ( button.isDown )
162 p.drawPixmap( upperLeftOfButtonMask, button.pixDown ); 172 p.drawPixmap( upperLeftOfButtonMask, button.pixDown );
163 else 173 else
diff --git a/noncore/multimedia/opieplayer2/mediawidget.h b/noncore/multimedia/opieplayer2/mediawidget.h
index c261728..9042d5b 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.h
+++ b/noncore/multimedia/opieplayer2/mediawidget.h
@@ -43,78 +43,80 @@ public:
43 Button() : command( Undefined ), type( NormalButton ), isHeld( false ), isDown( false ) {} 43 Button() : command( Undefined ), type( NormalButton ), isHeld( false ), isDown( false ) {}
44 44
45 Command command; 45 Command command;
46 46
47 ButtonType type; // this should be part of the bitfield but gcc2 is too buggy to support this :-( 47 ButtonType type; // this should be part of the bitfield but gcc2 is too buggy to support this :-(
48 bool isHeld : 1; 48 bool isHeld : 1;
49 bool isDown : 1; 49 bool isDown : 1;
50 50
51 QBitmap mask; 51 QBitmap mask;
52 QPixmap pixUp; 52 QPixmap pixUp;
53 QPixmap pixDown; 53 QPixmap pixDown;
54 }; 54 };
55 typedef std::vector<Button> ButtonVector; 55 typedef std::vector<Button> ButtonVector;
56 56
57 struct SkinButtonInfo 57 struct SkinButtonInfo
58 { 58 {
59 Command command; 59 Command command;
60 const char *fileName; 60 const char *fileName;
61 ButtonType type; 61 ButtonType type;
62 }; 62 };
63 63
64 typedef std::vector<QBitmap> MaskVector; 64 typedef std::vector<QBitmap> MaskVector;
65 typedef std::vector<QPixmap> PixmapVector; 65 typedef std::vector<QPixmap> PixmapVector;
66 66
67 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 ); 67 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 );
68 virtual ~MediaWidget(); 68 virtual ~MediaWidget();
69 69
70public slots: 70public slots:
71 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0; 71 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0;
72 virtual void setLength( long length ) = 0; 72 virtual void setLength( long length ) = 0;
73 virtual void setPlaying( bool playing ) = 0; 73 virtual void setPlaying( bool playing ) = 0;
74 74
75signals: 75signals:
76 void moreReleased(); 76 void moreReleased();
77 void lessReleased(); 77 void lessReleased();
78 void forwardReleased(); 78 void forwardReleased();
79 void backReleased(); 79 void backReleased();
80 void forwardClicked(); 80 void forwardClicked();
81 void backClicked(); 81 void backClicked();
82 void moreClicked(); 82 void moreClicked();
83 void lessClicked(); 83 void lessClicked();
84 84
85protected: 85protected:
86 virtual void closeEvent( QCloseEvent * ); 86 virtual void closeEvent( QCloseEvent * );
87 87
88 virtual void paintEvent( QPaintEvent *pe ); 88 virtual void paintEvent( QPaintEvent *pe );
89 89
90 virtual void mouseMoveEvent( QMouseEvent *event ); 90 virtual void mouseMoveEvent( QMouseEvent *event );
91 virtual void mousePressEvent( QMouseEvent *event );
92 virtual void mouseReleaseEvent( QMouseEvent *event );
91 93
92 virtual void makeVisible(); 94 virtual void makeVisible();
93 95
94 void handleCommand( Command command, bool buttonDown ); 96 void handleCommand( Command command, bool buttonDown );
95 97
96 bool isOverButton( const QPoint &position, int buttonId ) const; 98 bool isOverButton( const QPoint &position, int buttonId ) const;
97 99
98 void paintAllButtons( QPainter &p ); 100 void paintAllButtons( QPainter &p );
99 void paintButton( const Button &button ); 101 void paintButton( const Button &button );
100 void paintButton( QPainter &p, const Button &button ); 102 void paintButton( QPainter &p, const Button &button );
101 103
102 void setToggleButton( Button &button, bool down ); 104 void setToggleButton( Button &button, bool down );
103 void setToggleButton( Command command, bool down ); 105 void setToggleButton( Command command, bool down );
104 void toggleButton( Button &button ); 106 void toggleButton( Button &button );
105 107
106 MediaPlayerState &mediaPlayerState; 108 MediaPlayerState &mediaPlayerState;
107 PlayListWidget &playList; 109 PlayListWidget &playList;
108 110
109 ButtonVector buttons; 111 ButtonVector buttons;
110 112
111 QImage buttonMask; 113 QImage buttonMask;
112 114
113 QPoint upperLeftOfButtonMask; 115 QPoint upperLeftOfButtonMask;
114 116
115 QPixmap backgroundPixmap; 117 QPixmap backgroundPixmap;
116}; 118};
117 119
118#endif // MEDIAWIDGET_H 120#endif // MEDIAWIDGET_H
119/* vim: et sw=4 ts=4 121/* vim: et sw=4 ts=4
120 */ 122 */
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index 26777e6..04b09f9 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -196,106 +196,102 @@ void VideoWidget::sliderPressed() {
196void VideoWidget::sliderReleased() { 196void VideoWidget::sliderReleased() {
197 videoSliderBeingMoved = FALSE; 197 videoSliderBeingMoved = FALSE;
198 if ( slider->width() == 0 ) { 198 if ( slider->width() == 0 ) {
199 return; 199 return;
200 } 200 }
201 long val = long((double)slider->value() * mediaPlayerState.length() / slider->width()); 201 long val = long((double)slider->value() * mediaPlayerState.length() / slider->width());
202 mediaPlayerState.setPosition( val ); 202 mediaPlayerState.setPosition( val );
203} 203}
204 204
205void VideoWidget::setPosition( long i ) { 205void VideoWidget::setPosition( long i ) {
206 updateSlider( i, mediaPlayerState.length() ); 206 updateSlider( i, mediaPlayerState.length() );
207} 207}
208 208
209 209
210void VideoWidget::setLength( long max ) { 210void VideoWidget::setLength( long max ) {
211 updateSlider( mediaPlayerState.position(), max ); 211 updateSlider( mediaPlayerState.position(), max );
212} 212}
213 213
214void VideoWidget::setDisplayType( MediaPlayerState::DisplayType displayType ) 214void VideoWidget::setDisplayType( MediaPlayerState::DisplayType displayType )
215{ 215{
216 if ( displayType == MediaPlayerState::Video ) { 216 if ( displayType == MediaPlayerState::Video ) {
217 makeVisible(); 217 makeVisible();
218 return; 218 return;
219 } 219 }
220 220
221 // Effectively blank the view next time we show it so it looks nicer 221 // Effectively blank the view next time we show it so it looks nicer
222 scaledWidth = 0; 222 scaledWidth = 0;
223 scaledHeight = 0; 223 scaledHeight = 0;
224 hide(); 224 hide();
225} 225}
226 226
227void VideoWidget::updateSlider( long i, long max ) { 227void VideoWidget::updateSlider( long i, long max ) {
228 // Will flicker too much if we don't do this 228 // Will flicker too much if we don't do this
229 if ( max == 0 ) { 229 if ( max == 0 ) {
230 return; 230 return;
231 } 231 }
232 int width = slider->width(); 232 int width = slider->width();
233 int val = int((double)i * width / max); 233 int val = int((double)i * width / max);
234 if ( !mediaPlayerState.isFullscreen() && !videoSliderBeingMoved ) { 234 if ( !mediaPlayerState.isFullscreen() && !videoSliderBeingMoved ) {
235 if ( slider->value() != val ) { 235 if ( slider->value() != val ) {
236 slider->setValue( val ); 236 slider->setValue( val );
237 } 237 }
238 if ( slider->maxValue() != width ) { 238 if ( slider->maxValue() != width ) {
239 slider->setMaxValue( width ); 239 slider->setMaxValue( width );
240 } 240 }
241 } 241 }
242} 242}
243 243
244void VideoWidget::mousePressEvent( QMouseEvent *event ) {
245 mouseMoveEvent( event );
246}
247
248void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { 244void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
249 if ( mediaPlayerState.isFullscreen() ) { 245 if ( mediaPlayerState.isFullscreen() ) {
250 mediaPlayerState.setFullscreen( FALSE ); 246 mediaPlayerState.setFullscreen( FALSE );
251 makeVisible(); 247 makeVisible();
252 } 248 }
253 mouseMoveEvent( event ); 249 MediaWidget::mouseReleaseEvent( event );
254} 250}
255 251
256void VideoWidget::showEvent( QShowEvent* ) { 252void VideoWidget::showEvent( QShowEvent* ) {
257 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 ); 253 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 );
258 mouseMoveEvent( &event ); 254 mouseMoveEvent( &event );
259} 255}
260 256
261 257
262 void VideoWidget::backToNormal() { 258 void VideoWidget::backToNormal() {
263 mediaPlayerState.setFullscreen( FALSE ); 259 mediaPlayerState.setFullscreen( FALSE );
264 makeVisible(); 260 makeVisible();
265 } 261 }
266 262
267void VideoWidget::makeVisible() { 263void VideoWidget::makeVisible() {
268 if ( mediaPlayerState.isFullscreen() ) { 264 if ( mediaPlayerState.isFullscreen() ) {
269 setBackgroundMode( QWidget::NoBackground ); 265 setBackgroundMode( QWidget::NoBackground );
270 showFullScreen(); 266 showFullScreen();
271 resize( qApp->desktop()->size() ); 267 resize( qApp->desktop()->size() );
272 videoFrame-> setGeometry ( 0, 0, width ( ), height ( )); 268 videoFrame-> setGeometry ( 0, 0, width ( ), height ( ));
273 269
274 slider->hide(); 270 slider->hide();
275 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 271 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
276 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 272 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
277 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 273 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
278 disconnect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 274 disconnect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
279 275
280 } else { 276 } else {
281 showNormal(); 277 showNormal();
282 showMaximized(); 278 showMaximized();
283 setBackgroundPixmap( backgroundPixmap ); 279 setBackgroundPixmap( backgroundPixmap );
284 QWidget *d = QApplication::desktop(); 280 QWidget *d = QApplication::desktop();
285 int w = d->width(); 281 int w = d->width();
286 int h = d->height(); 282 int h = d->height();
287 283
288 if(w>h) { 284 if(w>h) {
289 int newW=(w/2)-(246/2); //this will only work with 320x240 285 int newW=(w/2)-(246/2); //this will only work with 320x240
290 videoFrame->setGeometry( QRect( newW, 4, 240, 170 ) ); 286 videoFrame->setGeometry( QRect( newW, 4, 240, 170 ) );
291 } else { 287 } else {
292 videoFrame->setGeometry( QRect( 0, 30, 240, 170 ) ); 288 videoFrame->setGeometry( QRect( 0, 30, 240, 170 ) );
293 } 289 }
294 290
295 if ( !mediaPlayerState.isSeekable() ) { 291 if ( !mediaPlayerState.isSeekable() ) {
296 if( !slider->isHidden()) { 292 if( !slider->isHidden()) {
297 slider->hide(); 293 slider->hide();
298 } 294 }
299 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 295 disconnect( &mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
300 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 296 disconnect( &mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
301 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 297 disconnect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
diff --git a/noncore/multimedia/opieplayer2/videowidget.h b/noncore/multimedia/opieplayer2/videowidget.h
index bed2116..985c094 100644
--- a/noncore/multimedia/opieplayer2/videowidget.h
+++ b/noncore/multimedia/opieplayer2/videowidget.h
@@ -31,74 +31,73 @@
31 31
32*/ 32*/
33 33
34#ifndef VIDEO_WIDGET_H 34#ifndef VIDEO_WIDGET_H
35#define VIDEO_WIDGET_H 35#define VIDEO_WIDGET_H
36 36
37#include <qwidget.h> 37#include <qwidget.h>
38#include <qimage.h> 38#include <qimage.h>
39#include <qpixmap.h> 39#include <qpixmap.h>
40#include "xinevideowidget.h" 40#include "xinevideowidget.h"
41 41
42#include "mediawidget.h" 42#include "mediawidget.h"
43 43
44class QPixmap; 44class QPixmap;
45class QSlider; 45class QSlider;
46 46
47class VideoWidget : public MediaWidget { 47class VideoWidget : public MediaWidget {
48 Q_OBJECT 48 Q_OBJECT
49public: 49public:
50 VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 ); 50 VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent=0, const char* name=0 );
51 ~VideoWidget(); 51 ~VideoWidget();
52 52
53 53
54 XineVideoWidget* vidWidget(); 54 XineVideoWidget* vidWidget();
55public slots: 55public slots:
56 void updateSlider( long, long ); 56 void updateSlider( long, long );
57 void sliderPressed( ); 57 void sliderPressed( );
58 void sliderReleased( ); 58 void sliderReleased( );
59 void setFullscreen( bool b ); 59 void setFullscreen( bool b );
60 virtual void makeVisible(); 60 virtual void makeVisible();
61 void backToNormal(); 61 void backToNormal();
62 void setPosition( long ); 62 void setPosition( long );
63 63
64public: 64public:
65 virtual void setPlaying( bool b); 65 virtual void setPlaying( bool b);
66 virtual void setLength( long ); 66 virtual void setLength( long );
67 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ); 67 virtual void setDisplayType( MediaPlayerState::DisplayType displayType );
68 68
69signals: 69signals:
70 void moreClicked(); 70 void moreClicked();
71 void lessClicked(); 71 void lessClicked();
72 void sliderMoved( long ); 72 void sliderMoved( long );
73 void videoResized ( const QSize &s ); 73 void videoResized ( const QSize &s );
74 74
75protected: 75protected:
76 76
77 void resizeEvent( QResizeEvent * ); 77 void resizeEvent( QResizeEvent * );
78 void showEvent( QShowEvent *se ); 78 void showEvent( QShowEvent *se );
79 void mousePressEvent( QMouseEvent *event );
80 void mouseReleaseEvent( QMouseEvent *event ); 79 void mouseReleaseEvent( QMouseEvent *event );
81 void keyReleaseEvent( QKeyEvent *e); 80 void keyReleaseEvent( QKeyEvent *e);
82 81
83private: 82private:
84// Ticker songInfo; 83// Ticker songInfo;
85 QImage imgUp; 84 QImage imgUp;
86 QImage imgDn; 85 QImage imgDn;
87 QString skin; 86 QString skin;
88 87
89 88
90 89
91 QString backgroundPix; 90 QString backgroundPix;
92 QSlider *slider; 91 QSlider *slider;
93 QImage *currentFrame; 92 QImage *currentFrame;
94 int scaledWidth; 93 int scaledWidth;
95 int scaledHeight; 94 int scaledHeight;
96 XineVideoWidget* videoFrame; 95 XineVideoWidget* videoFrame;
97 96
98 bool videoSliderBeingMoved; 97 bool videoSliderBeingMoved;
99}; 98};
100 99
101#endif // VIDEO_WIDGET_H 100#endif // VIDEO_WIDGET_H
102 101
103 102
104 103