summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/mediawidget.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opieplayer2/mediawidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp
index 4c4cead..db16b44 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.cpp
+++ b/noncore/multimedia/opieplayer2/mediawidget.cpp
@@ -30,24 +30,67 @@ MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPla
30 connect( &mediaPlayerState, SIGNAL( displayTypeChanged( MediaPlayerState::DisplayType ) ), 30 connect( &mediaPlayerState, SIGNAL( displayTypeChanged( MediaPlayerState::DisplayType ) ),
31 this, SLOT( setDisplayType( MediaPlayerState::DisplayType ) ) ); 31 this, SLOT( setDisplayType( MediaPlayerState::DisplayType ) ) );
32 connect( &mediaPlayerState, SIGNAL( lengthChanged( long ) ), 32 connect( &mediaPlayerState, SIGNAL( lengthChanged( long ) ),
33 this, SLOT( setLength( long ) ) ); 33 this, SLOT( setLength( long ) ) );
34 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), 34 connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ),
35 this, SLOT( setPlaying( bool ) ) ); 35 this, SLOT( setPlaying( bool ) ) );
36} 36}
37 37
38MediaWidget::~MediaWidget() 38MediaWidget::~MediaWidget()
39{ 39{
40} 40}
41 41
42void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount,
43 const QString &imagePrefix, const QSize &buttonAreaSize )
44{
45 buttonMask = QImage( buttonAreaSize, 8, 255 );
46 buttonMask.fill( 0 );
47
48 for ( uint i = 0; i < buttonCount; ++i ) {
49 Button button = setupButton( skinInfo[ i ], imagePrefix );
50 buttons.push_back( button );
51 }
52}
53
54MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const QString &imagePrefix )
55{
56 Button button;
57 button.command = buttonInfo.command;
58 button.type = buttonInfo.type;
59
60 QString fileName = imagePrefix + buttonInfo.fileName + ".png";
61
62 button.mask = setupButtonMask( button.command, fileName );
63
64 return button;
65}
66
67QBitmap MediaWidget::setupButtonMask( const Command &command, const QString &fileName )
68{
69 QBitmap mask( fileName );
70 if ( mask.isNull() )
71 return mask;
72
73 QImage imgMask = mask.convertToImage();
74 uchar **dest = buttonMask.jumpTable();
75 for ( int y = 0; y < buttonMask.height(); y++ ) {
76 uchar *line = dest[y];
77 for ( int x = 0; x < buttonMask.width(); x++ )
78 if ( !qRed( imgMask.pixel( x, y ) ) )
79 line[x] = command + 1;
80 }
81
82 return mask;
83}
84
42void MediaWidget::closeEvent( QCloseEvent * ) 85void MediaWidget::closeEvent( QCloseEvent * )
43{ 86{
44 mediaPlayerState.setList(); 87 mediaPlayerState.setList();
45} 88}
46 89
47void MediaWidget::paintEvent( QPaintEvent *pe ) 90void MediaWidget::paintEvent( QPaintEvent *pe )
48{ 91{
49 QPainter p( this ); 92 QPainter p( this );
50 93
51 if ( mediaPlayerState.isFullscreen() ) { 94 if ( mediaPlayerState.isFullscreen() ) {
52 // Clear the background 95 // Clear the background
53 p.setBrush( QBrush( Qt::black ) ); 96 p.setBrush( QBrush( Qt::black ) );