summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-08-14 00:04:55 (UTC)
committer llornkcor <llornkcor>2002-08-14 00:04:55 (UTC)
commit29ffa9119abaf753b165c5c241b22938eeaef301 (patch) (side-by-side diff)
tree89ae13f40e3939dcccb711bbb0a225b857db0a30
parent05a272a0dc03c37f143546aa5cde228bd3ba79bb (diff)
downloadopie-29ffa9119abaf753b165c5c241b22938eeaef301.zip
opie-29ffa9119abaf753b165c5c241b22938eeaef301.tar.gz
opie-29ffa9119abaf753b165c5c241b22938eeaef301.tar.bz2
fullscreen working
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index 33153d4..b4e69b5 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -84,129 +84,129 @@ QWidget( parent, name, f ), scaledWidth( 0 ), scaledHeight( 0 ) {
setCaption( tr("OpiePlayer - Video") );
videoFrame = new XineVideoWidget ( this, "Video frame" );
connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & )));
Config cfg("OpiePlayer");
cfg.setGroup("VideoWidget");
skin = cfg.readEntry("Skin","default");
QString skinPath = "opieplayer2/skins/" + skin;
pixBg = new QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
imgUp = new QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) );
imgDn = new QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) );
imgButtonMask = new QImage( imgUp->width(), imgUp->height(), 8, 255 );
imgButtonMask->fill( 0 );
for ( int i = 0; i < 7; i++ ) {
QString filename = QString(getenv("OPIEDIR")) + "/pics/" + skinPath + "/skinV_mask_" + skinV_mask_file_names[i] + ".png";
masks[i] = new QBitmap( filename );
qDebug(filename);
if ( !masks[i]->isNull() ) {
QImage imgMask = masks[i]->convertToImage();
uchar **dest = imgButtonMask->jumpTable();
for ( int y = 0; y < imgUp->height(); y++ ) {
uchar *line = dest[y];
for ( int x = 0; x < imgUp->width(); x++ ) {
if ( !qRed( imgMask.pixel( x, y ) ) )
line[x] = i + 1;
}
}
}
}
for ( int i = 0; i < 7; i++ ) {
buttonPixUp[i] = NULL;
buttonPixDown[i] = NULL;
}
setBackgroundPixmap( *pixBg );
slider = new QSlider( Qt::Horizontal, this );
slider->setMinValue( 0 );
slider->setMaxValue( 1 );
slider->setBackgroundPixmap( Resource::loadPixmap( backgroundPix ) );
slider->setFocusPolicy( QWidget::NoFocus );
slider->setGeometry( QRect( 7, 250, 220, 20 ) );
connect( slider, SIGNAL( sliderPressed() ), this, SLOT( sliderPressed() ) );
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( playingToggled(bool) ), this, SLOT( setPlaying(bool) ) );
setLength( mediaPlayerState->length() );
setPosition( mediaPlayerState->position() );
////////////////////////// FIXME
-// setFullscreen( mediaPlayerState->fullscreen() );
+ setFullscreen( mediaPlayerState->fullscreen() );
setPaused( mediaPlayerState->paused() );
setPlaying( mediaPlayerState->playing() );
qDebug("finished videowidget");
}
VideoWidget::~VideoWidget() {
mediaPlayerState->setPlaying( FALSE );
for ( int i = 0; i < 7; i++ ) {
delete buttonPixUp[i];
delete buttonPixDown[i];
}
delete pixBg;
delete imgUp;
delete imgDn;
delete imgButtonMask;
for ( int i = 0; i < 7; i++ ) {
delete masks[i];
}
}
QPixmap *combineVImageWithBackground( QImage img, QPixmap bg, QPoint offset ) {
QPixmap pix( img.width(), img.height() );
QPainter p( &pix );
p.drawTiledPixmap( pix.rect(), bg, offset );
p.drawImage( 0, 0, img );
return new QPixmap( pix );
}
QPixmap *maskVPixToMask( QPixmap pix, QBitmap mask ) {
QPixmap *pixmap = new QPixmap( pix );
pixmap->setMask( mask );
return pixmap;
}
void VideoWidget::resizeEvent( QResizeEvent * ) {
int h = height();
int w = width();
int Vh = 160;
//videoFrame->height();
int Vw = 220;
//videoFrame->width();
// songInfo.setGeometry( QRect( 2, 10, w - 4, 20 ) );
slider->setFixedWidth( w - 110 );
slider->setGeometry( QRect( 15, h - 30, w - 90, 20 ) );
slider->setBackgroundOrigin( QWidget::ParentOrigin );
slider->setFocusPolicy( QWidget::NoFocus );
slider->setBackgroundPixmap( *pixBg );
// time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) );
xoff = 0;// ( imgUp->width() ) / 2;
yoff = 180;//(( Vh - imgUp->height() ) / 2) - 10;
QPoint p( xoff, yoff );
QPixmap *pixUp = combineVImageWithBackground( *imgUp, *pixBg, p );
QPixmap *pixDn = combineVImageWithBackground( *imgDn, *pixBg, p );
for ( int i = 0; i < 7; i++ ) {
if ( !masks[i]->isNull() ) {
delete buttonPixUp[i];
@@ -335,128 +335,129 @@ void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
}
case VideoNext: qDebug("next"); mediaPlayerState->setNext(); return;
case VideoPrevious: qDebug("previous"); mediaPlayerState->setPrev(); return;
case VideoVolUp: return;
case VideoVolDown: return;
case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
};
} else {
if ( videoButtons[i].isHeld ) {
videoButtons[i].isHeld = FALSE;
if ( !videoButtons[i].isToggle ) {
setToggleButton( i, FALSE );
}
// qDebug("mouseMove event switch2 %d %d", i, VideoPlay);
switch (i) {
case VideoPlay: {
if( mediaPlayerState->isPaused) {
mediaPlayerState->setPaused( FALSE); return; }
else if( mediaPlayerState->isPlaying) {
mediaPlayerState->setPaused( TRUE); return; }
else
mediaPlayerState->setPlaying( TRUE /*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 VideoVolUp: return;
case VideoVolDown: return;
case VideoFullscreen: mediaPlayerState->setFullscreen( TRUE ); makeVisible(); return;
}
}
}
}
}
void VideoWidget::mousePressEvent( QMouseEvent *event ) {
mouseMoveEvent( event );
}
void VideoWidget::mouseReleaseEvent( QMouseEvent *event ) {
if ( mediaPlayerState->fullscreen() ) {
mediaPlayerState->setFullscreen( FALSE );
makeVisible();
mouseMoveEvent( event );
}
}
void VideoWidget::makeVisible() {
if ( mediaPlayerState->fullscreen() ) {
setBackgroundMode( QWidget::NoBackground );
showFullScreen();
resize( qApp->desktop()->size() );
slider->hide();
videoFrame-> setGeometry ( 0, 0, width ( ), height ( ));
} else {
showNormal();
showMaximized();
slider->show();
videoFrame->setGeometry( QRect( 10, 20, 220, 160 ) );
+ qApp->processEvents();
}
}
void VideoWidget::paintEvent( QPaintEvent * pe) {
QPainter p( this );
if ( mediaPlayerState->fullscreen() ) {
// Clear the background
p.setBrush( QBrush( Qt::black ) );
// videoFrame->setGeometry( QRect( 0, 0 , 240 ,320 ) );
} else {
// videoFrame->setGeometry( QRect( 0, 15 , 240 ,170 ) );
// draw the buttons
if ( !pe->erased() ) {
// Combine with background and double buffer
QPixmap pix( pe->rect().size() );
QPainter p( &pix );
p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() );
p.drawTiledPixmap( pe->rect(), *pixBg, pe->rect().topLeft() );
for ( int i = 0; i < numVButtons; i++ )
paintButton( &p, i );
QPainter p2( this );
p2.drawPixmap( pe->rect().topLeft(), pix );
} else {
QPainter p( this );
for ( int i = 0; i < numVButtons; i++ )
paintButton( &p, i );
}
// for ( int i = 0; i < numButtons; i++ ) {
// paintButton( &p, i );
// }
// draw the slider
slider->repaint( TRUE );
}
}
void VideoWidget::closeEvent( QCloseEvent* ) {
mediaPlayerState->setList();
}
bool VideoWidget::playVideo() {
bool result = FALSE;
int stream = 0;
int sw = 240;
int sh = 320;
int dd = QPixmap::defaultDepth();
int w = height();
int h = width();
return true;
}
void VideoWidget::keyReleaseEvent( QKeyEvent *e) {
switch ( e->key() ) {
////////////////////////////// Zaurus keys
case Key_Home: