From 1334db158372c1eeb91bb10031ac9285060a295a Mon Sep 17 00:00:00 2001 From: Ivan Gorinov Date: Thu, 3 Nov 2011 22:16:17 -0700 Subject: [PATCH] Reset indicator when the screen is locked --- ameterwidget.cpp | 22 ++++++++++++++++++---- ameterwidget.h | 6 ++++-- debian/changelog | 6 ++++++ debian/files | 2 +- mainwindow.cpp | 1 + 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/ameterwidget.cpp b/ameterwidget.cpp index f11ee02..4d2203d 100644 --- a/ameterwidget.cpp +++ b/ameterwidget.cpp @@ -30,6 +30,8 @@ AMeterWidget::AMeterWidget(QWidget *parent) bx = 0; by = 0; bz = 0; + + in_reset = 1; } AMeterWidget::~AMeterWidget() @@ -55,13 +57,16 @@ void AMeterWidget::paintEvent(QPaintEvent *e) qreal cx, cy, rx, ry; qreal x1, y1, a; - a = sqrt(ax * ax + ay * ay + az * az); - if (background) { paint.drawImage(QPoint(0, 0), *background); } + if (in_reset) { + return; + } + + a = sqrt(ax * ax + ay * ay + az * az); paint.setRenderHints(QPainter::Antialiasing); cx = width() / 2; @@ -170,16 +175,25 @@ bool AMeterWidget::filter(QAccelerometerReading *reading) ay = reading->y() * r_g; az = reading->z() * r_g; - if (smoothing > 0 && smoothing < 4) + if (!in_reset && smoothing > 0 && smoothing < 4) { k = smoothing_k[smoothing]; ax = ax * k + bx * (1.0 - k); ay = ay * k + by * (1.0 - k); az = az * k + bz * (1.0 - k); } - + + in_reset = 0; update(); return true; } +void AMeterWidget::reset() +{ + in_reset = 0; + ax = 0; + ay = 0; + az = 0; +} + diff --git a/ameterwidget.h b/ameterwidget.h index 5a540ee..c22c2b6 100644 --- a/ameterwidget.h +++ b/ameterwidget.h @@ -17,7 +17,8 @@ public: AMeterWidget(QWidget *parent = 0); ~AMeterWidget(); - int setGravity(qreal g); + int setGravity(qreal g); + void reset(); public slots: virtual bool filter(QAccelerometerReading *reading); @@ -36,7 +37,8 @@ protected: private: qreal r_g; // 1/g - qreal r_a_max; // 1/a_max + qreal r_a_max; // 1/a_max + int in_reset; }; #endif // AMETERWIDGET_H diff --git a/debian/changelog b/debian/changelog index d4fe276..a8e1a01 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +ameter (1.0.4) unstable; urgency=low + + * Reset the indicator when the screen is locked + + -- Ivan Gorinov Thu, 3 Nov 2011 22:13:26 -0700 + ameter (1.0.3) unstable; urgency=low * Added numbers to gravity scale diff --git a/debian/files b/debian/files index 5d33ff8..2e699b6 100644 --- a/debian/files +++ b/debian/files @@ -1 +1 @@ -ameter_1.0.3_armel.deb user/utilities optional +ameter_1.0.4_armel.deb user/utilities optional diff --git a/mainwindow.cpp b/mainwindow.cpp index ab61fb2..d754c4c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -144,6 +144,7 @@ void MainWindow::screenChange(const QDBusMessage &message) if (state == MCE_DISPLAY_OFF_STRING) { accelerometer->stop(); + awidget->reset(); } else { accelerometer->start(); } -- 1.7.9.5