-rw-r--r-- | core/applets/batteryapplet/battery.cpp | 1 | ||||
-rw-r--r-- | core/applets/batteryapplet/batterystatus.cpp | 17 | ||||
-rw-r--r-- | core/applets/batteryapplet/batterystatus.h | 2 |
3 files changed, 13 insertions, 7 deletions
diff --git a/core/applets/batteryapplet/battery.cpp b/core/applets/batteryapplet/battery.cpp index 0d3d190..e85a9da 100644 --- a/core/applets/batteryapplet/battery.cpp +++ b/core/applets/batteryapplet/battery.cpp @@ -70,24 +70,25 @@ void BatteryMeter::mousePressEvent( QMouseEvent* e ) { QWidget::mousePressEvent( e ); } void BatteryMeter::mouseReleaseEvent( QMouseEvent* /*e*/ ) { if ( batteryView && batteryView->isVisible() ) { batteryView->hide(); } else { if ( !batteryView ) { batteryView = new BatteryStatus( ps, 0, WStyle_StaysOnTop | WType_Popup ); batteryView->setFrameStyle( QFrame::PopupPanel | QFrame::Raised ); } + batteryView->UpdateBatteryStatus(); QRect r(batteryView->pos(),batteryView->sizeHint()); QPoint curPos = this->mapToGlobal ( rect().topLeft() ); int lp = qApp->desktop()->width() - batteryView->sizeHint().width(); r.moveTopLeft( QPoint(lp, curPos.y()-batteryView->sizeHint().height()-1) ); batteryView->setGeometry(r); batteryView->raise(); batteryView->show(); } } diff --git a/core/applets/batteryapplet/batterystatus.cpp b/core/applets/batteryapplet/batterystatus.cpp index 5a24b94..860db64 100644 --- a/core/applets/batteryapplet/batterystatus.cpp +++ b/core/applets/batteryapplet/batterystatus.cpp @@ -8,34 +8,39 @@ /* QT */ #include <qpushbutton.h> #include <qdrawutil.h> #include <qfile.h> #include <qtextstream.h> #include <qmessagebox.h> using namespace Opie::Core; BatteryStatus::BatteryStatus( const PowerStatus *p, QWidget *parent, WFlags f ) : QFrame( parent, 0, f), ps(p), bat2(false) { - jackPercent = 0; - - if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) { - getProcApmStatusIpaq(); - } - percent = ps->batteryPercentRemaining(); + UpdateBatteryStatus(); } BatteryStatus::~BatteryStatus() {} +void BatteryStatus::UpdateBatteryStatus() { + + jackPercent = 0; + + if ( ODevice::inst ( )-> series ( ) == Model_iPAQ ) { + getProcApmStatusIpaq(); + } + percent = ps->batteryPercentRemaining(); +} + /* * Make use of the advanced apm interface of the ipaq */ bool BatteryStatus::getProcApmStatusIpaq() { bat2 = false; QFile procApmIpaq("/proc/hal/battery"); if (procApmIpaq.open(IO_ReadOnly) ) { QStringList list; // since it is /proc we _must_ use QTextStream diff --git a/core/applets/batteryapplet/batterystatus.h b/core/applets/batteryapplet/batterystatus.h index bb95ece..4da446d 100644 --- a/core/applets/batteryapplet/batterystatus.h +++ b/core/applets/batteryapplet/batterystatus.h @@ -21,25 +21,25 @@ #define BATTERY_STATUS_H #include <qframe.h> class PowerStatus; class BatteryStatus : public QFrame { Q_OBJECT public: BatteryStatus( const PowerStatus *s, QWidget *parent=0, WFlags f = 0 ); ~BatteryStatus(); - + void BatteryStatus::UpdateBatteryStatus(); void updatePercent( int ); QSize sizeHint() const; protected: void drawSegment( QPainter *p, const QRect &r, const QColor &topgrad, const QColor &botgrad, const QColor &highlight, int hightlight_height ); void paintEvent( QPaintEvent *pe ); bool BatteryStatus::getProcApmStatusIpaq(); private: QString statusText() const; QString statusTextIpaq() const; const PowerStatus *ps; int percent; |