summaryrefslogtreecommitdiff
path: root/noncore/multimedia/opieplayer2/audiowidget.cpp
Unidiff
Diffstat (limited to 'noncore/multimedia/opieplayer2/audiowidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index adef247..fe7ddc1 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -101,30 +101,32 @@ AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlaye
101 skin = cfg.readEntry("Skin","default"); 101 skin = cfg.readEntry("Skin","default");
102 //skin = "scaleTest"; 102 //skin = "scaleTest";
103 // color of background, frame, degree of transparency 103 // color of background, frame, degree of transparency
104 104
105 QString skinPath = "opieplayer2/skins/" + skin; 105 QString skinPath = "opieplayer2/skins/" + skin;
106 pixBg = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 106 pixBg = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
107 imgUp = QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) ); 107 imgUp = QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) );
108 imgDn = QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) ); 108 imgDn = QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) );
109 109
110 buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 ); 110 buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 );
111 buttonMask.fill( 0 ); 111 buttonMask.fill( 0 );
112 112
113 for ( int i = 0; i < 10; i++ ) { 113 masks.reserve( 10 );
114
115 for ( uint i = 0; i < masks.capacity(); i++ ) {
114 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png" ); 116 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skin_mask_" + skin_mask_file_names[i] + ".png" );
115 masks[i] = new QBitmap( filename ); 117 masks.push_back( QBitmap( filename ) );
116 118
117 if ( !masks[i]->isNull() ) { 119 if ( !masks[i].isNull() ) {
118 QImage imgMask = masks[i]->convertToImage(); 120 QImage imgMask = masks[i].convertToImage();
119 uchar **dest = buttonMask.jumpTable(); 121 uchar **dest = buttonMask.jumpTable();
120 for ( int y = 0; y < imgUp.height(); y++ ) { 122 for ( int y = 0; y < imgUp.height(); y++ ) {
121 uchar *line = dest[y]; 123 uchar *line = dest[y];
122 for ( int x = 0; x < imgUp.width(); x++ ) 124 for ( int x = 0; x < imgUp.width(); x++ )
123 if ( !qRed( imgMask.pixel( x, y ) ) ) 125 if ( !qRed( imgMask.pixel( x, y ) ) )
124 line[x] = i + 1; 126 line[x] = i + 1;
125 } 127 }
126 } 128 }
127 129
128 } 130 }
129 131
130 for ( int i = 0; i < 10; i++ ) { 132 for ( int i = 0; i < 10; i++ ) {
@@ -173,27 +175,24 @@ AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlaye
173 setLooping( mediaPlayerState.isFullscreen() ); 175 setLooping( mediaPlayerState.isFullscreen() );
174 // setPaused( mediaPlayerState->paused() ); 176 // setPaused( mediaPlayerState->paused() );
175 setPlaying( mediaPlayerState.isPlaying() ); 177 setPlaying( mediaPlayerState.isPlaying() );
176 178
177} 179}
178 180
179AudioWidget::~AudioWidget() { 181AudioWidget::~AudioWidget() {
180 182
181 for ( int i = 0; i < 10; i++ ) { 183 for ( int i = 0; i < 10; i++ ) {
182 delete buttonPixUp[i]; 184 delete buttonPixUp[i];
183 delete buttonPixDown[i]; 185 delete buttonPixDown[i];
184 } 186 }
185 for ( int i = 0; i < 10; i++ ) {
186 delete masks[i];
187 }
188// mediaPlayerState->setPlaying(false); 187// mediaPlayerState->setPlaying(false);
189} 188}
190 189
191namespace { 190namespace {
192 191
193QPixmap combineImageWithBackground( QImage img, QPixmap bg, QPoint offset ) { 192QPixmap combineImageWithBackground( QImage img, QPixmap bg, QPoint offset ) {
194 QPixmap pix( img.width(), img.height() ); 193 QPixmap pix( img.width(), img.height() );
195 QPainter p( &pix ); 194 QPainter p( &pix );
196 p.drawTiledPixmap( pix.rect(), bg, offset ); 195 p.drawTiledPixmap( pix.rect(), bg, offset );
197 p.drawImage( 0, 0, img ); 196 p.drawImage( 0, 0, img );
198 return pix; 197 return pix;
199} 198}
@@ -216,29 +215,29 @@ void AudioWidget::resizeEvent( QResizeEvent * ) {
216 slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); 215 slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) );
217 slider.setBackgroundOrigin( QWidget::ParentOrigin ); 216 slider.setBackgroundOrigin( QWidget::ParentOrigin );
218 time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) ); 217 time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) );
219 218
220 upperLeftOfButtonMask.rx() = ( w - imgUp.width() ) / 2; 219 upperLeftOfButtonMask.rx() = ( w - imgUp.width() ) / 2;
221 upperLeftOfButtonMask.ry() = (( h - imgUp.height() ) / 2) - 10; 220 upperLeftOfButtonMask.ry() = (( h - imgUp.height() ) / 2) - 10;
222 QPoint p = upperLeftOfButtonMask; 221 QPoint p = upperLeftOfButtonMask;
223 222
224 QPixmap pixUp = combineImageWithBackground( imgUp, pixBg, p ); 223 QPixmap pixUp = combineImageWithBackground( imgUp, pixBg, p );
225 QPixmap pixDn = combineImageWithBackground( imgDn, pixBg, p ); 224 QPixmap pixDn = combineImageWithBackground( imgDn, pixBg, p );
226 225
227 for ( int i = 0; i < 10; i++ ) { 226 for ( int i = 0; i < 10; i++ ) {
228 if ( !masks[i]->isNull() ) { 227 if ( !masks[i].isNull() ) {
229 delete buttonPixUp[i]; 228 delete buttonPixUp[i];
230 delete buttonPixDown[i]; 229 delete buttonPixDown[i];
231 buttonPixUp[i] = maskPixToMask( pixUp, *masks[i] ); 230 buttonPixUp[i] = maskPixToMask( pixUp, masks[i] );
232 buttonPixDown[i] = maskPixToMask( pixDn, *masks[i] ); 231 buttonPixDown[i] = maskPixToMask( pixDn, masks[i] );
233 } 232 }
234 } 233 }
235} 234}
236 235
237void AudioWidget::sliderPressed() { 236void AudioWidget::sliderPressed() {
238 audioSliderBeingMoved = TRUE; 237 audioSliderBeingMoved = TRUE;
239} 238}
240 239
241 240
242void AudioWidget::sliderReleased() { 241void AudioWidget::sliderReleased() {
243 audioSliderBeingMoved = FALSE; 242 audioSliderBeingMoved = FALSE;
244 if ( slider.width() == 0 ) 243 if ( slider.width() == 0 )