summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index 8e3a365..b0ec673 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -64,436 +64,449 @@ static const int yo = 0; // movable y offset
64 64
65struct MediaButton { 65struct MediaButton {
66 bool isToggle, isHeld, isDown; 66 bool isToggle, isHeld, isDown;
67}; 67};
68 68
69MediaButton videoButtons[] = { 69MediaButton videoButtons[] = {
70 { FALSE, FALSE, FALSE }, // stop 70 { FALSE, FALSE, FALSE }, // stop
71 { TRUE, FALSE, FALSE }, // play 71 { TRUE, FALSE, FALSE }, // play
72 { FALSE, FALSE, FALSE }, // previous 72 { FALSE, FALSE, FALSE }, // previous
73 { FALSE, FALSE, FALSE }, // next 73 { FALSE, FALSE, FALSE }, // next
74 { FALSE, FALSE, FALSE }, // volUp 74 { FALSE, FALSE, FALSE }, // volUp
75 { FALSE, FALSE, FALSE }, // volDown 75 { FALSE, FALSE, FALSE }, // volDown
76 { TRUE, FALSE, FALSE } // fullscreen 76 { TRUE, FALSE, FALSE } // fullscreen
77}; 77};
78 78
79const char *skinV_mask_file_names[7] = { 79const char *skinV_mask_file_names[7] = {
80"stop","play","back","fwd","up","down","full" 80"stop","play","back","fwd","up","down","full"
81}; 81};
82 82
83static const int numVButtons = (sizeof(videoButtons)/sizeof(MediaButton)); 83static const int numVButtons = (sizeof(videoButtons)/sizeof(MediaButton));
84 84
85 85
86VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) : 86VideoWidget::VideoWidget(QWidget* parent, const char* name, WFlags f) :
87QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) { 87QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) {
88 88
89 89
90 setCaption( tr("OpiePlayer - Video") ); 90 setCaption( tr("OpiePlayer - Video") );
91 91
92 videoFrame = new XineVideoWidget ( this, "Video frame" ); 92 videoFrame = new XineVideoWidget ( this, "Video frame" );
93 93
94 connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & ))); 94 connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & )));
95 connect ( videoFrame, SIGNAL( clicked () ), this, SLOT ( backToNormal() ) ); 95 connect ( videoFrame, SIGNAL( clicked () ), this, SLOT ( backToNormal() ) );
96 96
97 Config cfg("OpiePlayer"); 97 Config cfg("OpiePlayer");
98 cfg.setGroup("Options"); 98 cfg.setGroup("Options");
99 skin = cfg.readEntry("Skin","default"); 99 skin = cfg.readEntry("Skin","default");
100 100
101 QString skinPath = "opieplayer2/skins/" + skin; 101 QString skinPath = "opieplayer2/skins/" + skin;
102 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 102 pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
103 imgUp = new QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) ); 103 imgUp = new QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) );
104 imgDn = new QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) ); 104 imgDn = new QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) );
105 105
106 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 ); 106 imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 );
107 imgButtonMask->fill( 0 ); 107 imgButtonMask->fill( 0 );
108 108
109 for ( int i = 0; i < 7; i++ ) { 109 for ( int i = 0; i < 7; i++ ) {
110 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skinV_mask_" + skinV_mask_file_names[i] + ".png" ); 110 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skinV_mask_" + skinV_mask_file_names[i] + ".png" );
111 masks[i] = new QBitmap( filename ); 111 masks[i] = new QBitmap( filename );
112 112
113 if ( !masks[i]->isNull() ) { 113 if ( !masks[i]->isNull() ) {
114 QImage imgMask = masks[i]->convertToImage(); 114 QImage imgMask = masks[i]->convertToImage();
115 uchar **dest = imgButtonMask->jumpTable(); 115 uchar **dest = imgButtonMask->jumpTable();
116 for ( int y = 0; y < imgUp->height(); y++ ) { 116 for ( int y = 0; y < imgUp->height(); y++ ) {
117 uchar *line = dest[y]; 117 uchar *line = dest[y];
118 for ( int x = 0; x < imgUp->width(); x++ ) { 118 for ( int x = 0; x < imgUp->width(); x++ ) {
119 if ( !qRed( imgMask.pixel( x, y ) ) ) 119 if ( !qRed( imgMask.pixel( x, y ) ) )
120 line[x] = i + 1; 120 line[x] = i + 1;
121 } 121 }
122 } 122 }
123 } 123 }
124 } 124 }
125 125
126 for ( int i = 0; i < 7; i++ ) { 126 for ( int i = 0; i < 7; i++ ) {
127 buttonPixUp[i] = NULL; 127 buttonPixUp[i] = NULL;
128 buttonPixDown[i] = NULL; 128 buttonPixDown[i] = NULL;
129 } 129 }
130 130
131 setBackgroundPixmap( *pixBg ); 131 setBackgroundPixmap( *pixBg );
132 132
133 slider = new QSlider( Qt::Horizontal, this ); 133 slider = new QSlider( Qt::Horizontal, this );
134 slider->setMinValue( 0 ); 134 slider->setMinValue( 0 );
135 slider->setMaxValue( 1 ); 135 slider->setMaxValue( 1 );
136 slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) ); 136 slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) );
137 slider->setFocusPolicy( QWidget::NoFocus ); 137 slider->setFocusPolicy( QWidget::NoFocus );
138 138
139 resizeEvent( NULL ); 139 resizeEvent( NULL );
140 140
141 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) ); 141 connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
142 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) ); 142 connect( slider, SIGNAL( sliderReleased() ), this, SLOT( sliderReleased() ) );
143 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) ); 143 connect( mediaPlayerState, SIGNAL( lengthChanged(long) ), this, SLOT( setLength(long) ) );
144 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) ); 144 connect( mediaPlayerState, SIGNAL( viewChanged(char) ), this, SLOT( setView(char) ) );
145 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) ); 145 connect( mediaPlayerState, SIGNAL( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
146 146
147 setLength( mediaPlayerState->length() ); 147 setLength( mediaPlayerState->length() );
148 setPosition( mediaPlayerState->position() ); 148 setPosition( mediaPlayerState->position() );
149 setFullscreen( mediaPlayerState->fullscreen() ); 149 setFullscreen( mediaPlayerState->fullscreen() );
150 setPlaying( mediaPlayerState->playing() ); 150 setPlaying( mediaPlayerState->playing() );
151} 151}
152 152
153 153
154VideoWidget::~VideoWidget() { 154VideoWidget::~VideoWidget() {
155 155
156 for ( int i = 0; i < 7; i++ ) { 156 for ( int i = 0; i < 7; i++ ) {
157 delete buttonPixUp[i]; 157 delete buttonPixUp[i];
158 delete buttonPixDown[i]; 158 delete buttonPixDown[i];
159 } 159 }
160 160
161 delete pixBg; 161 delete pixBg;
162 delete imgUp; 162 delete imgUp;
163 delete imgDn; 163 delete imgDn;
164 delete imgButtonMask; 164 delete imgButtonMask;
165 for ( int i = 0; i < 7; i++ ) { 165 for ( int i = 0; i < 7; i++ ) {
166 delete masks[i]; 166 delete masks[i];
167 } 167 }
168 168
169} 169}
170 170
171QPixmap *combineVImageWithBackground( QImage img, QPixmap bg, QPoint offset ) { 171QPixmap *combineVImageWithBackground( QImage img, QPixmap bg, QPoint offset ) {
172 QPixmap pix( img.width(), img.height() ); 172 QPixmap pix( img.width(), img.height() );
173 QPainter p( &pix ); 173 QPainter p( &pix );
174 p.drawTiledPixmap( pix.rect(), bg, offset ); 174 p.drawTiledPixmap( pix.rect(), bg, offset );
175 p.drawImage( 0, 0, img ); 175 p.drawImage( 0, 0, img );
176 return new QPixmap( pix ); 176 return new QPixmap( pix );
177} 177}
178 178
179QPixmap *maskVPixToMask( QPixmap pix, QBitmap mask ) { 179QPixmap *maskVPixToMask( QPixmap pix, QBitmap mask ) {
180 QPixmap *pixmap = new QPixmap( pix ); 180 QPixmap *pixmap = new QPixmap( pix );
181 pixmap->setMask( mask ); 181 pixmap->setMask( mask );
182 return pixmap; 182 return pixmap;
183} 183}
184 184
185void VideoWidget::resizeEvent( QResizeEvent * ) { 185void VideoWidget::resizeEvent( QResizeEvent * ) {
186 int h = height(); 186 int h = height();
187 int w = width(); 187 int w = width();
188 //int Vh = 160; 188 //int Vh = 160;
189 //int Vw = 220; 189 //int Vw = 220;
190 190
191 slider->setFixedWidth( w - 20 ); 191 slider->setFixedWidth( w - 20 );
192 slider->setGeometry( QRect( 15, h - 30, w - 90, 20 ) ); 192 slider->setGeometry( QRect( 15, h - 22, w - 90, 20 ) );
193 slider->setBackgroundOrigin( QWidget::ParentOrigin ); 193 slider->setBackgroundOrigin( QWidget::ParentOrigin );
194 slider->setFocusPolicy( QWidget::NoFocus ); 194 slider->setFocusPolicy( QWidget::NoFocus );
195 slider->setBackgroundPixmap( *pixBg ); 195 slider->setBackgroundPixmap( *pixBg );
196 196
197 xoff = 0;// ( imgUp->width() ) / 2; 197 xoff = 0;// ( imgUp->width() ) / 2;
198 yoff = 185;//(( Vh - imgUp->height() ) / 2) - 10; 198 if(w>h)
199 yoff = 0;
200 else
201 yoff = 185;//(( Vh - imgUp->height() ) / 2) - 10;
199 QPoint p( xoff, yoff ); 202 QPoint p( xoff, yoff );
200 203
201 QPixmap *pixUp = combineVImageWithBackground( *imgUp, *pixBg, p ); 204 QPixmap *pixUp = combineVImageWithBackground( *imgUp, *pixBg, p );
202 QPixmap *pixDn = combineVImageWithBackground( *imgDn, *pixBg, p ); 205 QPixmap *pixDn = combineVImageWithBackground( *imgDn, *pixBg, p );
203 206
204 for ( int i = 0; i < 7; i++ ) { 207 for ( int i = 0; i < 7; i++ ) {
205 if ( !masks[i]->isNull() ) { 208 if ( !masks[i]->isNull() ) {
206 delete buttonPixUp[i]; 209 delete buttonPixUp[i];
207 delete buttonPixDown[i]; 210 delete buttonPixDown[i];
208 buttonPixUp[i] = maskVPixToMask( *pixUp, *masks[i] ); 211 buttonPixUp[i] = maskVPixToMask( *pixUp, *masks[i] );
209 buttonPixDown[i] = maskVPixToMask( *pixDn, *masks[i] ); 212 buttonPixDown[i] = maskVPixToMask( *pixDn, *masks[i] );
210 } 213 }
211 } 214 }
212 215
213 delete pixUp; 216 delete pixUp;
214 delete pixDn; 217 delete pixDn;
215} 218}
216 219
217static bool videoSliderBeingMoved = FALSE; 220static bool videoSliderBeingMoved = FALSE;
218 221
219void VideoWidget::sliderPressed() { 222void VideoWidget::sliderPressed() {
220 videoSliderBeingMoved = TRUE; 223 videoSliderBeingMoved = TRUE;
221} 224}
222 225
223void VideoWidget::sliderReleased() { 226void VideoWidget::sliderReleased() {
224 videoSliderBeingMoved = FALSE; 227 videoSliderBeingMoved = FALSE;
225 if ( slider->width() == 0 ) { 228 if ( slider->width() == 0 ) {
226 return; 229 return;
227 } 230 }
228 long val = long((double)slider->value() * mediaPlayerState->length() / slider->width()); 231 long val = long((double)slider->value() * mediaPlayerState->length() / slider->width());
229 mediaPlayerState->setPosition( val ); 232 mediaPlayerState->setPosition( val );
230} 233}
231 234
232void VideoWidget::setPosition( long i ) { 235void VideoWidget::setPosition( long i ) {
233 updateSlider( i, mediaPlayerState->length() ); 236 updateSlider( i, mediaPlayerState->length() );
234} 237}
235 238
236 239
237void VideoWidget::setLength( long max ) { 240void VideoWidget::setLength( long max ) {
238 updateSlider( mediaPlayerState->position(), max ); 241 updateSlider( mediaPlayerState->position(), max );
239} 242}
240 243
241void VideoWidget::setView( char view ) { 244void VideoWidget::setView( char view ) {
242 245
243 if ( view == 'v' ) { 246 if ( view == 'v' ) {
244 makeVisible(); 247 makeVisible();
245 } else { 248 } else {
246 // Effectively blank the view next time we show it so it looks nicer 249 // Effectively blank the view next time we show it so it looks nicer
247 scaledWidth = 0; 250 scaledWidth = 0;
248 scaledHeight = 0; 251 scaledHeight = 0;
249 hide(); 252 hide();
250 } 253 }
251} 254}
252 255
253void VideoWidget::updateSlider( long i, long max ) { 256void VideoWidget::updateSlider( long i, long max ) {
254 // Will flicker too much if we don't do this 257 // Will flicker too much if we don't do this
255 if ( max == 0 ) { 258 if ( max == 0 ) {
256 return; 259 return;
257 } 260 }
258 int width = slider->width(); 261 int width = slider->width();
259 int val = int((double)i * width / max); 262 int val = int((double)i * width / max);
260 if ( !mediaPlayerState->fullscreen() && !videoSliderBeingMoved ) { 263 if ( !mediaPlayerState->fullscreen() && !videoSliderBeingMoved ) {
261 if ( slider->value() != val ) { 264 if ( slider->value() != val ) {
262 slider->setValue( val ); 265 slider->setValue( val );
263 } 266 }
264 if ( slider->maxValue() != width ) { 267 if ( slider->maxValue() != width ) {
265 slider->setMaxValue( width ); 268 slider->setMaxValue( width );
266 } 269 }
267 } 270 }
268} 271}
269 272
270void VideoWidget::setToggleButton( int i, bool down ) { 273void VideoWidget::setToggleButton( int i, bool down ) {
271 if ( down != videoButtons[i].isDown ) { 274 if ( down != videoButtons[i].isDown ) {
272 toggleButton( i ); 275 toggleButton( i );
273 } 276 }
274} 277}
275 278
276void VideoWidget::toggleButton( int i ) { 279void VideoWidget::toggleButton( int i ) {
277 videoButtons[i].isDown = !videoButtons[i].isDown; 280 videoButtons[i].isDown = !videoButtons[i].isDown;
278 QPainter p(this); 281 QPainter p(this);
279 paintButton ( &p, i ); 282 paintButton ( &p, i );
280} 283}
281 284
282void VideoWidget::paintButton( QPainter *p, int i ) { 285void VideoWidget::paintButton( QPainter *p, int i ) {
283 286
284 if ( videoButtons[i].isDown ) { 287 if ( videoButtons[i].isDown ) {
285 p->drawPixmap( xoff, yoff, *buttonPixDown[i] ); 288 p->drawPixmap( xoff, yoff, *buttonPixDown[i] );
286 } else { 289 } else {
287 p->drawPixmap( xoff, yoff, *buttonPixUp[i] ); 290 p->drawPixmap( xoff, yoff, *buttonPixUp[i] );
288 } 291 }
289} 292}
290 293
291void VideoWidget::mouseMoveEvent( QMouseEvent *event ) { 294void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
292 for ( int i = 0; i < numVButtons; i++ ) { 295 for ( int i = 0; i < numVButtons; i++ ) {
293 if ( event->state() == QMouseEvent::LeftButton ) { 296 if ( event->state() == QMouseEvent::LeftButton ) {
294 // The test to see if the mouse click is inside the button or not 297 // The test to see if the mouse click is inside the button or not
295 int x = event->pos().x() - xoff; 298 int x = event->pos().x() - xoff;
296 int y = event->pos().y() - yoff; 299 int y = event->pos().y() - yoff;
297 300
298 bool isOnButton = ( x > 0 && y > 0 && x < imgButtonMask->width() 301 bool isOnButton = ( x > 0 && y > 0 && x < imgButtonMask->width()
299 && y < imgButtonMask->height() 302 && y < imgButtonMask->height()
300 && imgButtonMask->pixelIndex( x, y ) == i + 1 ); 303 && imgButtonMask->pixelIndex( x, y ) == i + 1 );
301 304
302 if ( isOnButton && !videoButtons[i].isHeld ) { 305 if ( isOnButton && !videoButtons[i].isHeld ) {
303 videoButtons[i].isHeld = TRUE; 306 videoButtons[i].isHeld = TRUE;
304 toggleButton(i); 307 toggleButton(i);
305 308
306 switch (i) { 309 switch (i) {
307 case VideoVolUp: 310 case VideoVolUp:
308 emit moreClicked(); 311 emit moreClicked();
309 return; 312 return;
310 case VideoVolDown: 313 case VideoVolDown:
311 emit lessClicked(); 314 emit lessClicked();
312 return; 315 return;
313 } 316 }
314 } else if ( !isOnButton && videoButtons[i].isHeld ) { 317 } else if ( !isOnButton && videoButtons[i].isHeld ) {
315 videoButtons[i].isHeld = FALSE; 318 videoButtons[i].isHeld = FALSE;
316 toggleButton(i); 319 toggleButton(i);
317 } 320 }
318 } else { 321 } else {
319 322
320 if ( videoButtons[i].isHeld ) { 323 if ( videoButtons[i].isHeld ) {
321 videoButtons[i].isHeld = FALSE; 324 videoButtons[i].isHeld = FALSE;
322 if ( !videoButtons[i].isToggle ) { 325 if ( !videoButtons[i].isToggle ) {
323 setToggleButton( i, FALSE ); 326 setToggleButton( i, FALSE );
324 } 327 }
325 328
326 switch(i) { 329 switch(i) {
327 330
328 case VideoPlay: { 331 case VideoPlay: {
329 if( mediaPlayerState->isPaused ) { 332 if( mediaPlayerState->isPaused ) {
330 setToggleButton( i, FALSE ); 333 setToggleButton( i, FALSE );
331 mediaPlayerState->setPaused( FALSE ); 334 mediaPlayerState->setPaused( FALSE );
332 return; 335 return;
333 } else if( !mediaPlayerState->isPaused ) { 336 } else if( !mediaPlayerState->isPaused ) {
334 setToggleButton( i, TRUE ); 337 setToggleButton( i, TRUE );
335 mediaPlayerState->setPaused( TRUE ); 338 mediaPlayerState->setPaused( TRUE );
336 return; 339 return;
337 } else { 340 } else {
338 return; 341 return;
339 } 342 }
340 } 343 }
341 344
342 case VideoStop: mediaPlayerState->setPlaying( FALSE ); return; 345 case VideoStop: mediaPlayerState->setPlaying( FALSE ); return;
343 case VideoNext: if(playList->whichList() ==0) mediaPlayerState->setNext(); return; 346 case VideoNext: if(playList->whichList() ==0) mediaPlayerState->setNext(); return;
344 case VideoPrevious: if(playList->whichList() ==0) mediaPlayerState->setPrev(); return; 347 case VideoPrevious: if(playList->whichList() ==0) mediaPlayerState->setPrev(); return;
345 case VideoVolUp: emit moreReleased(); return; 348 case VideoVolUp: emit moreReleased(); return;
346 case VideoVolDown: emit lessReleased(); return; 349 case VideoVolDown: emit lessReleased(); return;
347 case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return; 350 case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
348 } 351 }
349 } 352 }
350 } 353 }
351 } 354 }
352} 355}
353 356
354void VideoWidget::mousePressEvent( QMouseEvent *event ) { 357void VideoWidget::mousePressEvent( QMouseEvent *event ) {
355 mouseMoveEvent( event ); 358 mouseMoveEvent( event );
356} 359}
357 360
358void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) { 361void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
359 if ( mediaPlayerState->fullscreen() ) { 362 if ( mediaPlayerState->fullscreen() ) {
360 mediaPlayerState->setFullscreen( FALSE ); 363 mediaPlayerState->setFullscreen( FALSE );
361 makeVisible(); 364 makeVisible();
362 } 365 }
363 mouseMoveEvent( event ); 366 mouseMoveEvent( event );
364} 367}
365 368
366void VideoWidget::showEvent( QShowEvent* ) { 369void VideoWidget::showEvent( QShowEvent* ) {
367 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 ); 370 QMouseEvent event( QEvent::MouseMove, QPoint( 0, 0 ), 0, 0 );
368 mouseMoveEvent( &event ); 371 mouseMoveEvent( &event );
369} 372}
370 373
371 374
372 void VideoWidget::backToNormal() { 375 void VideoWidget::backToNormal() {
373 mediaPlayerState->setFullscreen( FALSE ); 376 mediaPlayerState->setFullscreen( FALSE );
374 makeVisible(); 377 makeVisible();
375 } 378 }
376 379
377void VideoWidget::makeVisible() { 380void VideoWidget::makeVisible() {
378 if ( mediaPlayerState->fullscreen() ) { 381 if ( mediaPlayerState->fullscreen() ) {
379 setBackgroundMode( QWidget::NoBackground ); 382 setBackgroundMode( QWidget::NoBackground );
380 showFullScreen(); 383 showFullScreen();
381 resize( qApp->desktop()->size() ); 384 resize( qApp->desktop()->size() );
382 slider->hide(); 385 slider->hide();
383 videoFrame-> setGeometry ( 0, 0, width ( ), height ( )); 386 videoFrame-> setGeometry ( 0, 0, width ( ), height ( ));
384 qApp->processEvents(); 387 qApp->processEvents();
385 } else { 388 } else {
386 showNormal(); 389 showNormal();
387 showMaximized(); 390 showMaximized();
388 setBackgroundPixmap( *pixBg ); 391 setBackgroundPixmap( *pixBg );
389 if ( mediaPlayerState->streaming() ) { 392 if ( mediaPlayerState->streaming() ) {
390 slider->hide(); 393 slider->hide();
391 disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 394 disconnect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
392 disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 395 disconnect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
393 } else { 396 } else {
394 slider->show(); 397 slider->show();
395 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) ); 398 connect( mediaPlayerState, SIGNAL( positionChanged(long) ),this, SLOT( setPosition(long) ) );
396 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) ); 399 connect( mediaPlayerState, SIGNAL( positionUpdated(long) ),this, SLOT( setPosition(long) ) );
397 } 400 }
398 videoFrame->setGeometry( QRect( 0, 30, 240, 170 ) ); 401
402 QWidget *d = QApplication::desktop();
403 int w=d->width();
404 int h=d->height();
405
406 if(w>h) {
407 int newW=(w/2)-(246/2); //this will only work with 320x240
408 videoFrame->setGeometry( QRect( newW, 4, 240, 170 ) );
409 } else
410 videoFrame->setGeometry( QRect( 0, 30, 240, 170 ) );
411
399 qApp->processEvents(); 412 qApp->processEvents();
400 } 413 }
401} 414}
402 415
403 416
404void VideoWidget::paintEvent( QPaintEvent * pe) { 417void VideoWidget::paintEvent( QPaintEvent * pe) {
405 QPainter p( this ); 418 QPainter p( this );
406 419
407 if ( mediaPlayerState->fullscreen() ) { 420 if ( mediaPlayerState->fullscreen() ) {
408 // Clear the background 421 // Clear the background
409 p.setBrush( QBrush( Qt::black ) ); 422 p.setBrush( QBrush( Qt::black ) );
410 } else { 423 } else {
411 if ( !pe->erased() ) { 424 if ( !pe->erased() ) {
412 // Combine with background and double buffer 425 // Combine with background and double buffer
413 QPixmap pix( pe->rect().size() ); 426 QPixmap pix( pe->rect().size() );
414 QPainter p( &pix ); 427 QPainter p( &pix );
415 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() ); 428 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() );
416 p.drawTiledPixmap( pe->rect(), *pixBg, pe->rect().topLeft() ); 429 p.drawTiledPixmap( pe->rect(), *pixBg, pe->rect().topLeft() );
417 for ( int i = 0; i < numVButtons; i++ ) { 430 for ( int i = 0; i < numVButtons; i++ ) {
418 paintButton( &p, i ); 431 paintButton( &p, i );
419 } 432 }
420 QPainter p2( this ); 433 QPainter p2( this );
421 p2.drawPixmap( pe->rect().topLeft(), pix ); 434 p2.drawPixmap( pe->rect().topLeft(), pix );
422 } else { 435 } else {
423 QPainter p( this ); 436 QPainter p( this );
424 for ( int i = 0; i < numVButtons; i++ ) 437 for ( int i = 0; i < numVButtons; i++ )
425 paintButton( &p, i ); 438 paintButton( &p, i );
426 } 439 }
427 slider->repaint( TRUE ); 440 slider->repaint( TRUE );
428 } 441 }
429} 442}
430 443
431 444
432void VideoWidget::closeEvent( QCloseEvent* ) { 445void VideoWidget::closeEvent( QCloseEvent* ) {
433 mediaPlayerState->setList(); 446 mediaPlayerState->setList();
434} 447}
435 448
436 449
437 450
438void VideoWidget::keyReleaseEvent( QKeyEvent *e) { 451void VideoWidget::keyReleaseEvent( QKeyEvent *e) {
439 switch ( e->key() ) { 452 switch ( e->key() ) {
440////////////////////////////// Zaurus keys 453////////////////////////////// Zaurus keys
441 case Key_Home: 454 case Key_Home:
442 break; 455 break;
443 case Key_F9: //activity 456 case Key_F9: //activity
444 break; 457 break;
445 case Key_F10: //contacts 458 case Key_F10: //contacts
446// hide(); 459// hide();
447 break; 460 break;
448 case Key_F11: //menu 461 case Key_F11: //menu
449 break; 462 break;
450 case Key_F12: //home 463 case Key_F12: //home
451 break; 464 break;
452 case Key_F13: //mail 465 case Key_F13: //mail
453 break; 466 break;
454 case Key_Space: { 467 case Key_Space: {
455 if(mediaPlayerState->playing()) { 468 if(mediaPlayerState->playing()) {
456 mediaPlayerState->setPlaying(FALSE); 469 mediaPlayerState->setPlaying(FALSE);
457 } else { 470 } else {
458 mediaPlayerState->setPlaying(TRUE); 471 mediaPlayerState->setPlaying(TRUE);
459 } 472 }
460 } 473 }
461 break; 474 break;
462 case Key_Down: 475 case Key_Down:
463// toggleButton(6); 476// toggleButton(6);
464 emit lessClicked(); 477 emit lessClicked();
465 emit lessReleased(); 478 emit lessReleased();
466// toggleButton(6); 479// toggleButton(6);
467 break; 480 break;
468 case Key_Up: 481 case Key_Up:
469// toggleButton(5); 482// toggleButton(5);
470 emit moreClicked(); 483 emit moreClicked();
471 emit moreReleased(); 484 emit moreReleased();
472// toggleButton(5); 485// toggleButton(5);
473 break; 486 break;
474 case Key_Right: 487 case Key_Right:
475 mediaPlayerState->setNext(); 488 mediaPlayerState->setNext();
476 break; 489 break;
477 case Key_Left: 490 case Key_Left:
478 mediaPlayerState->setPrev(); 491 mediaPlayerState->setPrev();
479 break; 492 break;
480 case Key_Escape: 493 case Key_Escape:
481 break; 494 break;
482 495
483 }; 496 };
484} 497}
485 498
486XineVideoWidget* VideoWidget::vidWidget() { 499XineVideoWidget* VideoWidget::vidWidget() {
487 return videoFrame; 500 return videoFrame;
488} 501}
489 502
490 503
491void VideoWidget::setFullscreen ( bool b ) { 504void VideoWidget::setFullscreen ( bool b ) {
492 setToggleButton( VideoFullscreen, b ); 505 setToggleButton( VideoFullscreen, b );
493} 506}
494 507
495 508
496void VideoWidget::setPlaying( bool b) { 509void VideoWidget::setPlaying( bool b) {
497 setToggleButton( VideoPlay, b ); 510 setToggleButton( VideoPlay, b );
498} 511}
499 512