summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-03-23 23:00:35 (UTC)
committer kergoth <kergoth>2003-03-23 23:00:35 (UTC)
commit7849f269eb4bbabe807608cec26d1a0ee9d05868 (patch) (unidiff)
tree887e4dd018e2fa92e03016d7d73c023f0371a7d9
parentaff270316219558bd00cbcc3ffc275213080fcd3 (diff)
downloadopie-7849f269eb4bbabe807608cec26d1a0ee9d05868.zip
opie-7849f269eb4bbabe807608cec26d1a0ee9d05868.tar.gz
opie-7849f269eb4bbabe807608cec26d1a0ee9d05868.tar.bz2
Use of bat2 bool uninitialized (when on zaurus) resulted
in display of "Charging both devices" which confused users. @@ -15,7 +15,7 @@ using namespace Opie; BatteryStatus::BatteryStatus( const PowerStatus *p, QWidget *parent ) - : QWidget( parent, 0, WDestructiveClose), ps(p) { + : QWidget( parent, 0, WDestructiveClose), ps(p), bat2(false) { setCaption( tr("Battery status") ); QPushButton *pb = new QPushButton( tr("Close"), this ); pb->move( 70, 250 );
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/batteryapplet/batterystatus.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/core/applets/batteryapplet/batterystatus.cpp b/core/applets/batteryapplet/batterystatus.cpp
index 28d6275..7d3bdd9 100644
--- a/core/applets/batteryapplet/batterystatus.cpp
+++ b/core/applets/batteryapplet/batterystatus.cpp
@@ -1,146 +1,146 @@
1 1
2#include "batterystatus.h" 2#include "batterystatus.h"
3 3
4#include <qpe/power.h> 4#include <qpe/power.h>
5 5
6#include <opie/odevice.h> 6#include <opie/odevice.h>
7 7
8#include <qpainter.h> 8#include <qpainter.h>
9#include <qpushbutton.h> 9#include <qpushbutton.h>
10#include <qdrawutil.h> 10#include <qdrawutil.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qtextstream.h> 12#include <qtextstream.h>
13#include <qmessagebox.h> 13#include <qmessagebox.h>
14 14
15using namespace Opie; 15using namespace Opie;
16 16
17BatteryStatus::BatteryStatus( const PowerStatus *p, QWidget *parent ) 17BatteryStatus::BatteryStatus( const PowerStatus *p, QWidget *parent )
18 : QWidget( parent, 0, WDestructiveClose), ps(p) { 18 : QWidget( parent, 0, WDestructiveClose), ps(p), bat2(false) {
19 setCaption( tr("Battery status") ); 19 setCaption( tr("Battery status") );
20 QPushButton *pb = new QPushButton( tr("Close"), this ); 20 QPushButton *pb = new QPushButton( tr("Close"), this );
21 pb->move( 70, 250 ); 21 pb->move( 70, 250 );
22 pb->setMaximumHeight(20); 22 pb->setMaximumHeight(20);
23 pb->show(); 23 pb->show();
24 if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) { 24 if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) {
25 getProcApmStatusIpaq(); 25 getProcApmStatusIpaq();
26 } 26 }
27 connect( pb, SIGNAL( clicked() ), this, SLOT( close() ) ); 27 connect( pb, SIGNAL( clicked() ), this, SLOT( close() ) );
28 percent = ps->batteryPercentRemaining(); 28 percent = ps->batteryPercentRemaining();
29 show(); 29 show();
30} 30}
31 31
32BatteryStatus::~BatteryStatus() 32BatteryStatus::~BatteryStatus()
33{ 33{
34} 34}
35 35
36/* 36/*
37 * Make use of the advanced apm interface of the ipaq 37 * Make use of the advanced apm interface of the ipaq
38 */ 38 */
39bool BatteryStatus::getProcApmStatusIpaq() { 39bool BatteryStatus::getProcApmStatusIpaq() {
40 40
41 bat2 = false; 41 bat2 = false;
42 42
43 QFile procApmIpaq("/proc/hal/battery"); 43 QFile procApmIpaq("/proc/hal/battery");
44 44
45 if (procApmIpaq.open(IO_ReadOnly) ) { 45 if (procApmIpaq.open(IO_ReadOnly) ) {
46 QStringList list; 46 QStringList list;
47 // since it is /proc we _must_ use QTextStream 47 // since it is /proc we _must_ use QTextStream
48 QTextStream stream ( &procApmIpaq); 48 QTextStream stream ( &procApmIpaq);
49 QString streamIn; 49 QString streamIn;
50 streamIn = stream.read(); 50 streamIn = stream.read();
51 list = QStringList::split("\n", streamIn); 51 list = QStringList::split("\n", streamIn);
52 52
53 for(QStringList::Iterator line=list.begin(); line!=list.end(); line++) { 53 for(QStringList::Iterator line=list.begin(); line!=list.end(); line++) {
54 // not nice, need a rewrite later 54 // not nice, need a rewrite later
55 if( (*line).startsWith(" Percentage") ){ 55 if( (*line).startsWith(" Percentage") ){
56 if (bat2 == true) { 56 if (bat2 == true) {
57 perc2 = (*line).mid(((*line).find('('))+1,(*line).find(')')-(*line).find('(')-2); 57 perc2 = (*line).mid(((*line).find('('))+1,(*line).find(')')-(*line).find('(')-2);
58 } else { 58 } else {
59 perc1 = (*line).mid(((*line).find('('))+1,(*line).find(')')-(*line).find('(')-2); 59 perc1 = (*line).mid(((*line).find('('))+1,(*line).find(')')-(*line).find('(')-2);
60 } 60 }
61 }else if( (*line).startsWith(" Life") ){ 61 }else if( (*line).startsWith(" Life") ){
62 if (bat2 == true) { 62 if (bat2 == true) {
63 sec2 = (*line).mid(((*line).find(':')+2), 5 ); 63 sec2 = (*line).mid(((*line).find(':')+2), 5 );
64 } else { 64 } else {
65 sec1 = (*line).mid(((*line).find(':')+2), 5 ); 65 sec1 = (*line).mid(((*line).find(':')+2), 5 );
66 } 66 }
67 }else if( (*line).startsWith("Battery #1") ){ 67 }else if( (*line).startsWith("Battery #1") ){
68 bat2 = true; 68 bat2 = true;
69 }else if( (*line).startsWith(" Status") ){ 69 }else if( (*line).startsWith(" Status") ){
70 if (bat2 == true) { 70 if (bat2 == true) {
71 jackStatus = (*line).mid((*line).find('(')+1., (*line).find(')')-(*line).find('(')-1); 71 jackStatus = (*line).mid((*line).find('(')+1., (*line).find(')')-(*line).find('(')-1);
72 } else { 72 } else {
73 ipaqStatus = (*line).mid((*line).find('(')+1., (*line).find(')')-(*line).find('(')-1); 73 ipaqStatus = (*line).mid((*line).find('(')+1., (*line).find(')')-(*line).find('(')-1);
74 } 74 }
75 }else if( (*line).startsWith(" Chemistry") ) { 75 }else if( (*line).startsWith(" Chemistry") ) {
76 if (bat2 == true) { 76 if (bat2 == true) {
77 jackChem = (*line).mid((*line).find('('), (*line).find(')')-(*line).find('(')+1); 77 jackChem = (*line).mid((*line).find('('), (*line).find(')')-(*line).find('(')+1);
78 } else { 78 } else {
79 ipaqChem = (*line).mid((*line).find('('), (*line).find(')')-(*line).find('(')+1); 79 ipaqChem = (*line).mid((*line).find('('), (*line).find(')')-(*line).find('(')+1);
80 } 80 }
81 } 81 }
82 } 82 }
83 } else { 83 } else {
84 QMessageBox::warning(this, tr("Failure"),tr("could not open file")); 84 QMessageBox::warning(this, tr("Failure"),tr("could not open file"));
85 } 85 }
86 86
87 procApmIpaq.close(); 87 procApmIpaq.close();
88 88
89 jackPercent = perc2.toInt(); 89 jackPercent = perc2.toInt();
90 ipaqPercent = perc1.toInt(); 90 ipaqPercent = perc1.toInt();
91 91
92 if (perc2.isEmpty()) { 92 if (perc2.isEmpty()) {
93 perc2 = "no data"; 93 perc2 = "no data";
94 } else { 94 } else {
95 perc2 += " %"; 95 perc2 += " %";
96 } 96 }
97 97
98 98
99 if (sec2 == "0" || sec2 == "" || sec2.isEmpty()) { 99 if (sec2 == "0" || sec2 == "" || sec2.isEmpty()) {
100 sec2 = "no data"; 100 sec2 = "no data";
101 } else { 101 } else {
102 sec2 += " min"; 102 sec2 += " min";
103 } 103 }
104 104
105 jackStatus == (" ( " + jackStatus + " )"); 105 jackStatus == (" ( " + jackStatus + " )");
106 106
107 return true; 107 return true;
108} 108}
109 109
110 110
111void BatteryStatus::updatePercent( int pc ) { 111void BatteryStatus::updatePercent( int pc ) {
112 percent = pc; 112 percent = pc;
113 repaint(FALSE); 113 repaint(FALSE);
114} 114}
115 115
116void BatteryStatus::drawSegment( QPainter *p, const QRect &r, const QColor &topgrad, const QColor &botgrad, const QColor &highlight, int hightlight_height ) { 116void BatteryStatus::drawSegment( QPainter *p, const QRect &r, const QColor &topgrad, const QColor &botgrad, const QColor &highlight, int hightlight_height ) {
117 int h1, h2, s1, s2, v1, v2, ng = r.height(), hy = ng*30/100, hh = hightlight_height; 117 int h1, h2, s1, s2, v1, v2, ng = r.height(), hy = ng*30/100, hh = hightlight_height;
118 topgrad.hsv( &h1, &s1, &v1 ); 118 topgrad.hsv( &h1, &s1, &v1 );
119 botgrad.hsv( &h2, &s2, &v2 ); 119 botgrad.hsv( &h2, &s2, &v2 );
120 for ( int j = 0; j < hy-2; j++ ) { 120 for ( int j = 0; j < hy-2; j++ ) {
121 p->setPen( QColor( h1 + ((h2-h1)*j)/(ng-1), s1 + ((s2-s1)*j)/(ng-1), 121 p->setPen( QColor( h1 + ((h2-h1)*j)/(ng-1), s1 + ((s2-s1)*j)/(ng-1),
122 v1 + ((v2-v1)*j)/(ng-1), QColor::Hsv ) ); 122 v1 + ((v2-v1)*j)/(ng-1), QColor::Hsv ) );
123 p->drawLine( r.x(), r.top()+hy-2-j, r.x()+r.width(), r.top()+hy-2-j ); 123 p->drawLine( r.x(), r.top()+hy-2-j, r.x()+r.width(), r.top()+hy-2-j );
124 } 124 }
125 for ( int j = 0; j < hh; j++ ) { 125 for ( int j = 0; j < hh; j++ ) {
126 p->setPen( highlight ); 126 p->setPen( highlight );
127 p->drawLine( r.x(), r.top()+hy-2+j, r.x()+r.width(), r.top()+hy-2+j ); 127 p->drawLine( r.x(), r.top()+hy-2+j, r.x()+r.width(), r.top()+hy-2+j );
128 } 128 }
129 for ( int j = 0; j < ng-hy-hh; j++ ) { 129 for ( int j = 0; j < ng-hy-hh; j++ ) {
130 p->setPen( QColor( h1 + ((h2-h1)*j)/(ng-1), s1 + ((s2-s1)*j)/(ng-1), 130 p->setPen( QColor( h1 + ((h2-h1)*j)/(ng-1), s1 + ((s2-s1)*j)/(ng-1),
131 v1 + ((v2-v1)*j)/(ng-1), QColor::Hsv ) ); 131 v1 + ((v2-v1)*j)/(ng-1), QColor::Hsv ) );
132 p->drawLine( r.x(), r.top()+hy+hh-2+j, r.x()+r.width(), r.top()+hy+hh-2+j ); 132 p->drawLine( r.x(), r.top()+hy+hh-2+j, r.x()+r.width(), r.top()+hy+hh-2+j );
133 } 133 }
134} 134}
135 135
136void BatteryStatus::paintEvent( QPaintEvent * ) { 136void BatteryStatus::paintEvent( QPaintEvent * ) {
137 137
138 QPainter p(this); 138 QPainter p(this);
139 QString text; 139 QString text;
140 if ( ps->batteryStatus() == PowerStatus::Charging ) { 140 if ( ps->batteryStatus() == PowerStatus::Charging ) {
141 if (bat2) { 141 if (bat2) {
142 text = tr("Charging both devices"); 142 text = tr("Charging both devices");
143 } else { 143 } else {
144 text = tr("Charging"); 144 text = tr("Charging");
145 } 145 }
146 } else if ( ps->batteryPercentAccurate() ) { 146 } else if ( ps->batteryPercentAccurate() ) {