summaryrefslogtreecommitdiff
authorsandman <sandman>2002-06-27 22:03:59 (UTC)
committer sandman <sandman>2002-06-27 22:03:59 (UTC)
commit49710f20cf0e52ea3393027ed066f11e977e3457 (patch) (unidiff)
tree9840e5abb500042efdcd857ba837bdfe673e2485
parentc9871ef295afed6bc4f4cc5451f46bf3b6e8d462 (diff)
downloadopie-49710f20cf0e52ea3393027ed066f11e977e3457.zip
opie-49710f20cf0e52ea3393027ed066f11e977e3457.tar.gz
opie-49710f20cf0e52ea3393027ed066f11e977e3457.tar.bz2
Workaround for the "LEDs dont't show on 38xx" aka "Qt/E is too dumb to
draw a circle" bug
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/volumeapplet/oledbox.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/applets/volumeapplet/oledbox.cpp b/core/applets/volumeapplet/oledbox.cpp
index 3036929..7547287 100644
--- a/core/applets/volumeapplet/oledbox.cpp
+++ b/core/applets/volumeapplet/oledbox.cpp
@@ -146,12 +146,14 @@ void OLedBox::drawLed ( QPixmap *pix, const QColor &col ) // paint a ROUND SUNK
146{ 146{
147 QPainter paint; 147 QPainter paint;
148 QColor color; 148 QColor color;
149 QBrush brush; 149 QBrush brush;
150 QPen pen; 150 QPen pen;
151 151
152 pix-> fill ( black );
153
152 // First of all we want to know what area should be updated 154 // First of all we want to know what area should be updated
153 // Initialize coordinates, width, and height of the LED 155 // Initialize coordinates, width, and height of the LED
154 int width = pix-> width ( ); 156 int width = pix-> width ( );
155 157
156 // Make sure the LED is round! 158 // Make sure the LED is round!
157 if ( width > pix-> height ( )) 159 if ( width > pix-> height ( ))
@@ -216,13 +218,16 @@ void OLedBox::drawLed ( QPixmap *pix, const QColor &col ) // paint a ROUND SUNK
216 // Drawing of bright spot finished, now draw a thin border 218 // Drawing of bright spot finished, now draw a thin border
217 // around the LED which resembles a shadow with light coming 219 // around the LED which resembles a shadow with light coming
218 // from the upper left. 220 // from the upper left.
219 221
220#ifdef _QTE_IS_TOO_DUMB_TO_DRAW_AN_ARC 222#ifdef _QTE_IS_TOO_DUMB_TO_DRAW_AN_ARC
221 paint. drawPixmap ( 0, 0, *s_border_pix ); 223 paint. drawPixmap ( 0, 0, *s_border_pix );
222 224 paint. end ( );
225
226 pix-> setMask ( pix-> createHeuristicMask ( ));
227
223#else 228#else
224 pen.setWidth( 3 ); 229 pen.setWidth( 3 );
225 brush.setStyle( QBrush::NoBrush ); // Switch off the brush 230 brush.setStyle( QBrush::NoBrush ); // Switch off the brush
226 paint.setBrush( brush ); // This avoids filling of the ellipse 231 paint.setBrush( brush ); // This avoids filling of the ellipse
227 232
228 // Set the initial color value to 200 (bright) and start 233 // Set the initial color value to 200 (bright) and start
@@ -250,21 +255,21 @@ void OLedBox::drawLed ( QPixmap *pix, const QColor &col ) // paint a ROUND SUNK
250 else { 255 else {
251 shadow_color -= 25; // set color to a darker value again 256 shadow_color -= 25; // set color to a darker value again
252 if ( shadow_color < 100 ) 257 if ( shadow_color < 100 )
253 shadow_color = 100; 258 shadow_color = 100;
254 } // end if ( angle < 2320 ) 259 } // end if ( angle < 2320 )
255 } // end for ( angle = 720; angle < 6480; angle += 160 ) 260 } // end for ( angle = 720; angle < 6480; angle += 160 )
256#endif
257 paint.end(); 261 paint.end();
258 // 262 //
259 // painting done 263 // painting done
260 264
261 QBitmap mask ( pix-> width ( ), pix-> height ( ), true ); 265 QBitmap mask ( pix-> width ( ), pix-> height ( ), true );
262 QPainter mp ( &mask ); 266 QPainter mp ( &mask );
263 mp. setPen ( Qt::NoPen ); 267 mp. setPen ( Qt::NoPen );
264 mp. setBrush ( Qt::color1 ); 268 mp. setBrush ( Qt::color1 );
265 mp. drawEllipse ( 0, 0, width + 2, width + 2 ); 269 mp. drawEllipse ( 0, 0, width + 2, width + 2 );
266 mp. end ( ); 270 mp. end ( );
267 271
268 pix-> setMask ( mask ); 272 pix-> setMask ( mask );
273#endif
269} 274}
270 275