Diffstat (limited to 'noncore/multimedia/opieplayer2/mediawidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/mediawidget.cpp | 43 |
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 | |||
@@ -34,16 +34,59 @@ MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPla | |||
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 | ||
38 | MediaWidget::~MediaWidget() | 38 | MediaWidget::~MediaWidget() |
39 | { | 39 | { |
40 | } | 40 | } |
41 | 41 | ||
42 | void 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 | |||
54 | MediaWidget::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 | |||
67 | QBitmap 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 | |||
42 | void MediaWidget::closeEvent( QCloseEvent * ) | 85 | void MediaWidget::closeEvent( QCloseEvent * ) |
43 | { | 86 | { |
44 | mediaPlayerState.setList(); | 87 | mediaPlayerState.setList(); |
45 | } | 88 | } |
46 | 89 | ||
47 | void MediaWidget::paintEvent( QPaintEvent *pe ) | 90 | void MediaWidget::paintEvent( QPaintEvent *pe ) |
48 | { | 91 | { |
49 | QPainter p( this ); | 92 | QPainter p( this ); |