summaryrefslogtreecommitdiff
path: root/core/applets/batteryapplet/battery.cpp
Unidiff
Diffstat (limited to 'core/applets/batteryapplet/battery.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/batteryapplet/battery.cpp14
1 files changed, 2 insertions, 12 deletions
diff --git a/core/applets/batteryapplet/battery.cpp b/core/applets/batteryapplet/battery.cpp
index 480d261..078ce8d 100644
--- a/core/applets/batteryapplet/battery.cpp
+++ b/core/applets/batteryapplet/battery.cpp
@@ -77,100 +77,90 @@ void BatteryMeter::mouseReleaseEvent( QMouseEvent* e)
77 batteryView->raise(); 77 batteryView->raise();
78 batteryView->show(); 78 batteryView->show();
79 } 79 }
80} 80}
81 81
82void BatteryMeter::timerEvent( QTimerEvent * ) 82void BatteryMeter::timerEvent( QTimerEvent * )
83{ 83{
84 PowerStatus prev = *ps; 84 PowerStatus prev = *ps;
85 85
86 *ps = PowerStatusManager::readStatus(); 86 *ps = PowerStatusManager::readStatus();
87 87
88 if ( prev != *ps ) { 88 if ( prev != *ps ) {
89 percent = ps->batteryPercentRemaining(); 89 percent = ps->batteryPercentRemaining();
90 if ( !charging && ps->batteryStatus() == PowerStatus::Charging && percent < 0 ) { 90 if ( !charging && ps->batteryStatus() == PowerStatus::Charging && percent < 0 ) {
91 percent = 0; 91 percent = 0;
92 charging = true; 92 charging = true;
93 chargeTimer->start( 500 ); 93 chargeTimer->start( 500 );
94 } else if ( charging && ps->batteryStatus() != PowerStatus::Charging ) { 94 } else if ( charging && ps->batteryStatus() != PowerStatus::Charging ) {
95 charging = false; 95 charging = false;
96 chargeTimer->stop(); 96 chargeTimer->stop();
97 if ( batteryView ) 97 if ( batteryView )
98 batteryView->updatePercent( percent ); 98 batteryView->updatePercent( percent );
99 } 99 }
100 repaint( style != 0 ); 100 repaint( style != 0 );
101 if ( batteryView ) 101 if ( batteryView )
102 batteryView->repaint(); 102 batteryView->repaint();
103 } 103 }
104} 104}
105 105
106void BatteryMeter::chargeTimeout() 106void BatteryMeter::chargeTimeout()
107{ 107{
108 percent += 20; 108 percent += 20;
109 if ( percent > 100 ) 109 if ( percent > 100 )
110 percent = 0; 110 percent = 0;
111 111
112 repaint(FALSE); 112 repaint(FALSE);
113 if ( batteryView ) 113 if ( batteryView )
114 batteryView->updatePercent( percent ); 114 batteryView->updatePercent( percent );
115} 115}
116 116
117void BatteryMeter::paintEvent( QPaintEvent* ) 117void BatteryMeter::paintEvent( QPaintEvent* )
118{ 118{
119 if ( style == 1 ) 119 if ( style == 1 )
120 { 120 {
121 QPainter p(this); 121 QPainter p(this);
122 QFont f( "Fixed", AppLnk::smallIconSize()/2 ); 122 QFont f( "Fixed", AppLnk::smallIconSize()/2 );
123 QFontMetrics fm( f ); 123 QFontMetrics fm( f );
124 p.setFont( f ); 124 p.setFont( f );
125 if ( percent > 98 ) { 125 p.drawText( 0, AppLnk::smallIconSize()/2, QString::number( percent ) );
126 p.drawText( 0, 0, width(), height(), Qt::AlignCenter, tr( "F" ) ); 126 p.drawText( AppLnk::smallIconSize()/4, AppLnk::smallIconSize(), "%" );
127 }
128 else if ( percent < 5 )
129 {
130 p.drawText( 0, 0, width(), height(), Qt::AlignCenter, tr( "E" ) );
131 }
132 else
133 {
134 p.drawText( 0, AppLnk::smallIconSize()/2, QString::number( percent ) );
135 p.drawText( AppLnk::smallIconSize()/4, AppLnk::smallIconSize(), "%" );
136 }
137 return; 127 return;
138 } 128 }
139 129
140 QPainter p(this); 130 QPainter p(this);
141 QColor color; 131 QColor color;
142 QColor g = gray.light( 160 ); 132 QColor g = gray.light( 160 );
143 switch ( ps->acStatus() ) 133 switch ( ps->acStatus() )
144 { 134 {
145 case PowerStatus::Offline: color = blue.light( 150 ); break; 135 case PowerStatus::Offline: color = blue.light( 150 ); break;
146 case PowerStatus::Online: color = green.dark( 130 ).light( 180 ); break; 136 case PowerStatus::Online: color = green.dark( 130 ).light( 180 ); break;
147 default: color = red.light( 160 ); 137 default: color = red.light( 160 );
148 } 138 }
149 139
150 int w = height() / 2; 140 int w = height() / 2;
151 if ( !(w%2) ) w--; // should have an odd value to get a real middle line 141 if ( !(w%2) ) w--; // should have an odd value to get a real middle line
152 int h = height() - 4; 142 int h = height() - 4;
153 int pix = (percent * h) / 100; 143 int pix = (percent * h) / 100;
154 int y2 = height() -2; 144 int y2 = height() -2;
155 int y = y2 - pix; 145 int y = y2 - pix;
156 int x1 = (width() - w ) / 2; 146 int x1 = (width() - w ) / 2;
157 147
158 p.setPen(QColor(80,80,80)); 148 p.setPen(QColor(80,80,80));
159 p.drawLine(x1+w/4,0,x1+w/4+w/2+1,0); // header 149 p.drawLine(x1+w/4,0,x1+w/4+w/2+1,0); // header
160 p.drawRect(x1,1,w,height()-1); // corpus 150 p.drawRect(x1,1,w,height()-1); // corpus
161 p.setBrush(color); 151 p.setBrush(color);
162 152
163 int extra = ((percent * h) % 100)/(100/4); 153 int extra = ((percent * h) % 100)/(100/4);
164 154
165 int middle = w/2; 155 int middle = w/2;
166 for ( int i = 0; i < middle; i++ ) 156 for ( int i = 0; i < middle; i++ )
167 { 157 {
168 p.setPen( gray.dark( 100+i*20 ) ); 158 p.setPen( gray.dark( 100+i*20 ) );
169 p.drawLine( x1+middle-i, 2, x1+middle-i, y-1 ); 159 p.drawLine( x1+middle-i, 2, x1+middle-i, y-1 );
170 p.drawLine( x1+middle+i, 2, x1+middle+i, y-1 ); 160 p.drawLine( x1+middle+i, 2, x1+middle+i, y-1 );
171 p.setPen( color.dark( 100+i*20 ) ); 161 p.setPen( color.dark( 100+i*20 ) );
172 p.drawLine( x1+middle-i, y, x1+middle-i, y2 ); 162 p.drawLine( x1+middle-i, y, x1+middle-i, y2 );
173 p.drawLine( x1+middle+i, y, x1+middle+i, y2 ); 163 p.drawLine( x1+middle+i, y, x1+middle+i, y2 );
174 } 164 }
175} 165}
176 166