Reset indicator when the screen is locked master
authorIvan Gorinov <igorinov@gmail.com>
Fri, 4 Nov 2011 05:16:17 +0000 (22:16 -0700)
committerIvan Gorinov <igorinov@gmail.com>
Fri, 4 Nov 2011 05:16:17 +0000 (22:16 -0700)
ameterwidget.cpp
ameterwidget.h
debian/changelog
debian/files
mainwindow.cpp

index f11ee02..4d2203d 100644 (file)
@@ -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;
+}
+
index 5a540ee..c22c2b6 100644 (file)
@@ -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
index d4fe276..a8e1a01 100644 (file)
@@ -1,3 +1,9 @@
+ameter (1.0.4) unstable; urgency=low
+
+  * Reset the indicator when the screen is locked
+
+ -- Ivan Gorinov <igorinov@gmail.com>  Thu,  3 Nov 2011 22:13:26 -0700
+
 ameter (1.0.3) unstable; urgency=low
 
   * Added numbers to gravity scale
index 5d33ff8..2e699b6 100644 (file)
@@ -1 +1 @@
-ameter_1.0.3_armel.deb user/utilities optional
+ameter_1.0.4_armel.deb user/utilities optional
index ab61fb2..d754c4c 100644 (file)
@@ -144,6 +144,7 @@ void MainWindow::screenChange(const QDBusMessage &message)
         if (state == MCE_DISPLAY_OFF_STRING)
         {
             accelerometer->stop();
+           awidget->reset();
         } else {
             accelerometer->start();
         }