Modified vibration feedback to read settings every time.
authorJussi Laitinen <jupe@l3l7588.ixonos.local>
Fri, 30 Jul 2010 10:03:57 +0000 (13:03 +0300)
committerJussi Laitinen <jupe@l3l7588.ixonos.local>
Fri, 30 Jul 2010 10:03:57 +0000 (13:03 +0300)
src/engine/mceprivate.cpp
src/engine/mceprivate.h

index ae11563..dcec016 100644 (file)
@@ -37,8 +37,7 @@ static QDBusConnection dBusConnection = QDBusConnection::systemBus();
 
 MCEPrivate::MCEPrivate(QObject *parent)
     : QObject(parent),
-      m_displayOn(true),
-      m_touchscreenVibrationEnabled(false)
+      m_displayOn(true)
 {
     qDebug() << __PRETTY_FUNCTION__;
 
@@ -53,8 +52,6 @@ MCEPrivate::MCEPrivate(QObject *parent)
     m_dBusInterface->callWithCallback(MCE_DISPLAY_STATUS_GET, QList<QVariant>(), this,
                                       SLOT(setDisplayState(QString)),
                                       SLOT(displayStateError(QDBusError)));
-
-    m_touchscreenVibrationEnabled = isTouchscreenVibrationEnabled();
 }
 
 void MCEPrivate::displayStateChanged(const QDBusMessage &message)
@@ -97,7 +94,7 @@ void MCEPrivate::setDisplayState(const QString &state)
 
 bool MCEPrivate::isTouchscreenVibrationEnabled()
 {
-    QDomDocument doc("document");
+    QDomDocument doc;
     QFile file("/var/lib/gconf/system/osso/dsm/vibra/\%gconf.xml");
 
     if (!file.open(QIODevice::ReadOnly))
@@ -111,12 +108,18 @@ bool MCEPrivate::isTouchscreenVibrationEnabled()
 
     QDomNodeList domNodeList = doc.elementsByTagName("entry");
 
-    if (domNodeList.count() == 1) {
-        QDomElement element = domNodeList.at(0).toElement();
-        return QVariant(element.attribute("value", "false")).toBool();
-    } else {
-        return false;
+    for (int i = 0; i < domNodeList.count(); ++i) {
+
+        QDomElement element = domNodeList.at(i).toElement();
+
+        if ((!element.isNull()) && (element.hasAttribute("name")) &&
+            (element.attribute("name") == "touchscreen_vibra_enabled")) {
+
+            return QVariant(element.attribute("value", "false")).toBool();
+        }
     }
+
+    return false;
 }
 
 void MCEPrivate::stopVibration()
@@ -130,7 +133,7 @@ void MCEPrivate::vibrationFeedback()
 {
     qDebug() << __PRETTY_FUNCTION__;
 
-    if (m_touchscreenVibrationEnabled) {
+    if (isTouchscreenVibrationEnabled()) {
         m_dBusInterface->call(MCE_ACTIVATE_VIBRATOR_PATTERN, "PatternPowerKeyPress");
 
         const int VIBRATION_TIME = 40;  //Vibration time in milliseconds
index 2c59e33..8ea879e 100644 (file)
@@ -103,7 +103,6 @@ private slots:
  ******************************************************************************/
 private:
     bool m_displayOn;                   ///< Flag for display on/off
-    bool m_touchscreenVibrationEnabled; ///< Flag for toucscreen vibration enabled
     QDBusInterface *m_dBusInterface;    ///< D-Bus interface
     MCE *m_parent;                      ///< Parent object
 };