summaryrefslogtreecommitdiff
authorbrad <brad>2004-06-24 09:13:31 (UTC)
committer brad <brad>2004-06-24 09:13:31 (UTC)
commitbc5c0b3549d43f7e04a06049578c5413dbf0c00b (patch) (side-by-side diff)
treeddc7318c4c40812ac562e0691dc99253e0fb9669
parent9c471976e750812f0af3b443964954d4b5a5ed20 (diff)
downloadopie-bc5c0b3549d43f7e04a06049578c5413dbf0c00b.zip
opie-bc5c0b3549d43f7e04a06049578c5413dbf0c00b.tar.gz
opie-bc5c0b3549d43f7e04a06049578c5413dbf0c00b.tar.bz2
Battery status panel was only updating once when it was created, after this
it was being hidden and re-shown without updating the data. Now it is updated every time it is shown.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/batteryapplet/battery.cpp1
-rw-r--r--core/applets/batteryapplet/batterystatus.cpp17
-rw-r--r--core/applets/batteryapplet/batterystatus.h2
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
@@ -66,32 +66,33 @@ void BatteryMeter::mousePressEvent( QMouseEvent* e ) {
c.setGroup( "Battery" );
c.writeEntry( "Style", style );
repaint( true );
}
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();
}
}
void BatteryMeter::timerEvent( QTimerEvent * ) {
PowerStatus prev = *ps;
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
@@ -4,42 +4,47 @@
/* OPIE */
#include <opie2/odevice.h>
#include <qpe/power.h>
/* 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
QTextStream stream ( &procApmIpaq);
QString streamIn;
streamIn = stream.read();
list = QStringList::split("\n", streamIn);
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
@@ -17,33 +17,33 @@
** not clear to you.
**
**********************************************************************/
#ifndef BATTERY_STATUS_H
#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;
int ipaqPercent;
int jackPercent;
int jackMinutes;
QString perc1;