From 3277c2f832944cc1bf4ea69e9a36ac50a9b6e903 Mon Sep 17 00:00:00 2001 From: Jussi Laitinen Date: Fri, 30 Jul 2010 13:03:57 +0300 Subject: [PATCH] Modified vibration feedback to read settings every time. --- src/engine/mceprivate.cpp | 25 ++++++++++++++----------- src/engine/mceprivate.h | 1 - 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/engine/mceprivate.cpp b/src/engine/mceprivate.cpp index ae11563..dcec016 100644 --- a/src/engine/mceprivate.cpp +++ b/src/engine/mceprivate.cpp @@ -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(), 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 diff --git a/src/engine/mceprivate.h b/src/engine/mceprivate.h index 2c59e33..8ea879e 100644 --- a/src/engine/mceprivate.h +++ b/src/engine/mceprivate.h @@ -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 }; -- 1.7.9.5