I have made the following changes intended for :
  nemo:devel:mw / qmsystem

Please review and accept or decline.
BOSS has already run some checks on this request.
See the "Messages from BOSS" section below.

https://build.merproject.org//request/show/219

Thank You,
Matti Kosola

[This message was auto-generated]

---

Request # 219:

Messages from BOSS:

State: review at 2013-04-16T08:12:07 by cibot

Reviews:
       accepted by cibot : Prechecks succeeded.
       new for nemo:devel:mw : Please replace this text with a review and 
approve/reject the review (not the SR). BOSS will take care of the rest

Changes:
  submit: home:mkosola:branches:nemo:devel:mw / qmsystem -> nemo:devel:mw / 
qmsystem
  
changes files:
--------------
--- qmsystem.changes
+++ qmsystem.changes
@@ -0,0 +1,5 @@
+* Fri Apr 12 2013 Matti Kosola <[email protected]> - 1.4.5
+- Fixes NEMO#654 : Qmsystem QmDeviceMode use mce settings
+- Fixes NEMO#655 : Qmsystem QmDisplayState use mce settings
+- Add some tests for QmDisplayState
+

old:
----
  qmsystem-1.4.4.tar.bz2

new:
----
  qmsystem-1.4.5.tar.bz2

spec files:
-----------
--- qmsystem.spec
+++ qmsystem.spec
@@ -9,12 +9,12 @@
 # << macros
 
 Summary:    QmSystem library
-Version:    1.4.4
+Version:    1.4.5
 Release:    1
 Group:      System/System Control
 License:    LGPLv2
 URL:        http://github.com/nemomobile/qmsystem
-Source0:    %{name}-1.4.4.tar.bz2
+Source0:    %{name}-1.4.5.tar.bz2
 Source100:  qmsystem.yaml
 Requires:   sensorfw >= 0.6.33
 Requires:   timed >= 2.31

other changes:
--------------

++++++ qmsystem-1.4.4.tar.bz2 -> qmsystem-1.4.5.tar.bz2
--- qmsystem2.pc
+++ qmsystem2.pc
@@ -4,7 +4,7 @@
 
 Name: QmSystem2
 Description: QmSystem2 Library
-Version: 1.4.3
+Version: 1.4.5
 Requires: QtCore timed
 Libs: -L${libdir} -lqmsystem2
 Cflags: -I${includedir}/qmsystem2
--- rpm/qmsystem.changes
+++ rpm/qmsystem.changes
@@ -1,3 +1,8 @@
+* Fri Apr 12 2013 Matti Kosola <[email protected]> - 1.4.5
+- Fixes NEMO#654 : Qmsystem QmDeviceMode use mce settings
+- Fixes NEMO#655 : Qmsystem QmDisplayState use mce settings
+- Add some tests for QmDisplayState
+
 * Tue Mar 19 2013 Matti Kosola <[email protected]> - 1.4.4
 - Add qmsystem.yaml and qmsystem.changes to rpm directory
 - Merge patches from Nemo/Mer OBS to git
--- rpm/qmsystem.spec
+++ rpm/qmsystem.spec
@@ -9,12 +9,12 @@
 # << macros
 
 Summary:    QmSystem library
-Version:    1.4.4
+Version:    1.4.5
 Release:    1
 Group:      System/System Control
 License:    LGPLv2
 URL:        http://github.com/nemomobile/qmsystem
-Source0:    %{name}-1.4.4.tar.bz2
+Source0:    %{name}-1.4.5.tar.bz2
 Source100:  qmsystem.yaml
 Requires:   sensorfw >= 0.6.33
 Requires:   timed >= 2.31
--- rpm/qmsystem.yaml
+++ rpm/qmsystem.yaml
@@ -1,12 +1,12 @@
 Name: qmsystem
 Summary: QmSystem library
-Version: 1.4.4
+Version: 1.4.5
 Release: 1
 Group: System/System Control
 License: LGPLv2
 URL: http://github.com/nemomobile/qmsystem
 Sources:
-    - "%{name}-1.4.4.tar.bz2"
+    - "%{name}-1.4.5.tar.bz2"
 Description: This package contains the QmSystem library.
 
 Requires:
--- system/qmdevicemode.cpp
+++ system/qmdevicemode.cpp
@@ -38,7 +38,7 @@
  *
  * Signal emitted from the com.nokia.mce.signal interface
  *
- *    Name        powersave_mode_ind
+ *   Name        powersave_mode_ind
  *   Parameters  dbus_bool_t  mode TRUE (=on)/ FALSE(=off)
  *   Description Sent when the powersave mode is changed
  *
@@ -209,84 +209,156 @@
     }
 
     bool QmDeviceMode::setPSMState(QmDeviceMode::PSMState state) {
-        MEEGO_PRIVATE(QmDeviceMode)
 
-        gboolean val = FALSE;
+        // check proper state value
+        bool val = false;
+
         if (state == PSMStateOff) {
-            val = FALSE;
+            val = false;
         } else if (state == PSMStateOn) {
-            val = TRUE;
+            val = true;
         } else {
             return false;
         }
 
-        gboolean ret = gconf_client_set_bool(priv->gcClient, 
FORCE_POWER_SAVING, val, NULL);
-        if (ret == TRUE) {
+        #if HAVE_MCE
+            QList<QVariant> argumentList;
+            argumentList << 
QVariant::fromValue(QDBusObjectPath(FORCE_POWER_SAVING));
+            argumentList << QVariant::fromValue(QDBusVariant(val));
+
+            QDBusMessage setConfig = 
QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                    
MCE_REQUEST_PATH,
+                                                                    
MCE_REQUEST_IF,
+                                                                    
MCE_SET_CONFIG);
+            setConfig.setArguments(argumentList);
+
+            (void)QDBusConnection::systemBus().call(setConfig, QDBus::NoBlock);
+
             return true;
-        } else {
-            return false;
-        }
+        #endif
+
+        return false;
     }
 
     bool QmDeviceMode::setPSMBatteryMode(int percentages) {
-        MEEGO_PRIVATE(QmDeviceMode)
+
+        bool ret = false;
+        bool enable_psm = false;
 
         if (percentages < 0 || percentages > 100) {
-            return false;
+            return ret;
         }
 
-        int value = 0;
-        if (percentages > 0) {
-            GSList *list = gconf_client_get_list(priv->gcClient, THRESHOLDS, 
GCONF_VALUE_INT, NULL);
-            if (!list) {
-                return false;
-            }
-            GSList *elem = list;
-            do {
-                int data = GPOINTER_TO_INT(elem->data);
-                if (percentages <= data || !elem->next) {
-                    value = data;
-                    break;
-                }
-            } while ((elem = g_slist_next(elem)));
-            g_slist_free(list);
-        }
+        #if HAVE_MCE
+            if (percentages > 0) {
+                enable_psm = true;
 
-        gboolean ret = FALSE;
-        if (value == 0) {
-            ret = gconf_client_set_bool(priv->gcClient, ENABLE_POWER_SAVING, 
FALSE, NULL);
-        } else {
-            ret = gconf_client_set_bool(priv->gcClient, ENABLE_POWER_SAVING, 
TRUE, NULL);
-            if (ret == TRUE) {
-                ret = gconf_client_set_int(priv->gcClient, THRESHOLD, value, 
NULL);
+                // Get the list of possible threshold values.
+                QList<QVariant> getArgumentList;
+                getArgumentList << 
QVariant::fromValue(QDBusObjectPath(THRESHOLDS));
+
+                QDBusMessage getConfig = 
QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                        
MCE_REQUEST_PATH,
+                                                                        
MCE_REQUEST_IF,
+                                                                        
MCE_GET_CONFIG);
+                getConfig.setArguments(getArgumentList);
+
+                QDBusReply<QDBusVariant> getPossibleDisplayBlankTimeoutsReply 
= QDBusConnection::systemBus().call(getConfig);
+
+                // Check if the percentage value is in the list of possible 
values.
+                if (getPossibleDisplayBlankTimeoutsReply.isValid()) {
+                    const QDBusArgument possibleValues = 
getPossibleDisplayBlankTimeoutsReply.value().variant().value<QDBusArgument>();
+                    if (possibleValues.currentType() == 
QDBusArgument::ArrayType) {
+                        possibleValues.beginArray();
+                        int value;
+                        while (!possibleValues.atEnd()) {
+                            possibleValues >> value;
+                            if (percentages <= value || 
possibleValues.atEnd()) {
+                                // Set the threshold value.
+                                QList<QVariant> argumentList;
+                                argumentList << 
QVariant::fromValue(QDBusObjectPath(THRESHOLD));
+                                argumentList << 
QVariant::fromValue(QDBusVariant(value));
+
+                                QDBusMessage setConfig = 
QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                               
         MCE_REQUEST_PATH,
+                                                                               
         MCE_REQUEST_IF,
+                                                                               
         MCE_SET_CONFIG);
+                                setConfig.setArguments(argumentList);
+
+                                
(void)QDBusConnection::systemBus().call(setConfig, QDBus::NoBlock);
+
+                                break;
+                            }
+                        }
+                        possibleValues.endArray();
+                    }
+                }
             }
-        }
 
-        if (ret == TRUE) {
-            return true;
-        } else {
-            return false;
-        }
-    }
+            // Enable or disable psm according to percentages value
+            QList<QVariant> argumentList;
+            argumentList << 
QVariant::fromValue(QDBusObjectPath(ENABLE_POWER_SAVING));
+            argumentList << QVariant::fromValue(QDBusVariant(enable_psm));
+
+            QDBusMessage setConfig = 
QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                    
MCE_REQUEST_PATH,
+                                                                    
MCE_REQUEST_IF,
+                                                                    
MCE_SET_CONFIG);
+            setConfig.setArguments(argumentList);
+
+            (void)QDBusConnection::systemBus().call(setConfig, QDBus::NoBlock);
+
+            ret = true;
+        #endif
+
+        return ret;
+    }   
 
     int QmDeviceMode::getPSMBatteryMode() {
-        MEEGO_PRIVATE(QmDeviceMode)
 
-        GError *error = NULL;
-        gboolean ret = gconf_client_get_bool(priv->gcClient, 
ENABLE_POWER_SAVING, &error);
-        if (error) {
-            g_error_free(error);
-            return -1;
-        }
-        if (ret == FALSE) {
-            return 0;
-        }
-        int retVal = gconf_client_get_int(priv->gcClient, THRESHOLD, &error);
-        if (error) {
-            g_error_free(error);
-            return -1;
-        }
-        return retVal;
+        int ret = -1;
+        bool psm_enabled = false;
+
+        #if HAVE_MCE
+            QList<QVariant> argumentListEnab;
+            argumentListEnab << 
QVariant::fromValue(QDBusObjectPath(ENABLE_POWER_SAVING));
+
+            QDBusMessage getEnabConfig = 
QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                        
MCE_REQUEST_PATH,
+                                                                        
MCE_REQUEST_IF,
+                                                                        
MCE_GET_CONFIG);
+            getEnabConfig.setArguments(argumentListEnab);
+
+            QDBusReply<QDBusVariant> getPSMBatteryModeEnabReply = 
QDBusConnection::systemBus().call(getEnabConfig);
+
+            if (getPSMBatteryModeEnabReply.isValid()) {
+                psm_enabled = 
getPSMBatteryModeEnabReply.value().variant().toBool();
+            } else {
+                return ret;
+            }
+
+            if (psm_enabled == false) {
+                return 0;
+            }
+
+            QList<QVariant> argumentListThres;
+            argumentListThres << 
QVariant::fromValue(QDBusObjectPath(THRESHOLD));
+
+            QDBusMessage getThresConfig = 
QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                         
MCE_REQUEST_PATH,
+                                                                         
MCE_REQUEST_IF,
+                                                                         
MCE_GET_CONFIG);
+            getThresConfig.setArguments(argumentListThres);
+
+            QDBusReply<QDBusVariant> getPSMBatteryModeThresReply = 
QDBusConnection::systemBus().call(getThresConfig);
+
+            if (getPSMBatteryModeThresReply.isValid()) {
+                ret = getPSMBatteryModeThresReply.value().variant().toInt();
+            }
+
+        #endif
+
+        return ret;
     }
 
 } // namespace MeeGo
--- system/qmdevicemode_p.h
+++ system/qmdevicemode_p.h
@@ -38,13 +38,16 @@
     #include "mce/mode-names.h"
 #endif
 
-#include <gconf/gconf-client.h>
+//Strings for MCE Conf keys.
 #define PATH "/system/osso/dsm/energymanagement"
 #define FORCE_POWER_SAVING PATH"/force_power_saving"
 #define ENABLE_POWER_SAVING PATH"/enable_power_saving"
 #define THRESHOLDS PATH"/possible_psm_thresholds"
 #define THRESHOLD PATH"/psm_threshold"
 
+#define MCE_GET_CONFIG "get_config"
+#define MCE_SET_CONFIG "set_config"
+
 #define SIGNAL_DEVICE_MODE 0
 #define SIGNAL_PSM_MODE 1
 
@@ -64,9 +67,6 @@
             #endif
 
             connectCount[SIGNAL_DEVICE_MODE] = connectCount[SIGNAL_PSM_MODE] = 
0;
-
-            g_type_init();
-            gcClient = gconf_client_get_default();
         }
 
         ~QmDeviceModePrivate() {
@@ -74,7 +74,6 @@
                 if (requestIf)
                     delete requestIf, requestIf = 0;
             #endif
-            g_object_unref(gcClient), gcClient = 0;
         }
 
         static QmDeviceMode::DeviceMode radioStateToDeviceMode(quint32 
radioStateFlags) {
@@ -102,7 +101,6 @@
         QMutex connectMutex;
         size_t connectCount[2];
         QmIPCInterface *requestIf;
-        GConfClient *gcClient;
 
     Q_SIGNALS:
 
--- system/qmdisplaystate.cpp
+++ system/qmdisplaystate.cpp
@@ -146,62 +146,116 @@
 }
 
 int QmDisplayState::getMaxDisplayBrightnessValue() {
-    MEEGO_PRIVATE(QmDisplayState);
 
-    GError* error = NULL;
-    int ret = gconf_client_get_int(priv->gc, MAX_BRIGHTNESS_KEY, &error);
-    if ( error ) {
-        ret = -1;
-        g_error_free (error);
-    }
+    int ret = -1;
+
+    #if HAVE_MCE
+        QList<QVariant> argumentList;
+        argumentList << 
QVariant::fromValue(QDBusObjectPath(MAX_BRIGHTNESS_KEY));
+
+        QDBusMessage getConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_GET_CONFIG);
+        getConfig.setArguments(argumentList);
+
+        QDBusReply<QDBusVariant> getMaxDisplayBrightnessValueReply = 
QDBusConnection::systemBus().call(getConfig);
+
+        if (getMaxDisplayBrightnessValueReply.isValid())
+            ret = getMaxDisplayBrightnessValueReply.value().variant().toInt();
+    #endif
+
     return ret;
 }
 
 int QmDisplayState::getDisplayBrightnessValue() {
-    MEEGO_PRIVATE(QmDisplayState);
 
-    GError* error = NULL;
-    int ret = gconf_client_get_int(priv->gc, BRIGHTNESS_KEY, &error);
-    if ( error ) {
-        ret = -1;
-        g_error_free (error);
-    }
+    int ret = -1;
+
+    #if HAVE_MCE
+        QList<QVariant> argumentList;
+        argumentList << QVariant::fromValue(QDBusObjectPath(BRIGHTNESS_KEY));
+
+        QDBusMessage getConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_GET_CONFIG);
+        getConfig.setArguments(argumentList);
+
+        QDBusReply<QDBusVariant> getDisplayBrightnessValueReply = 
QDBusConnection::systemBus().call(getConfig);
+
+        if (getDisplayBrightnessValueReply.isValid())
+            ret = getDisplayBrightnessValueReply.value().variant().toInt();
+    #endif
+
     return ret;
 }
 
 int QmDisplayState::getDisplayBlankTimeout() {
-    MEEGO_PRIVATE(QmDisplayState);
 
-    GError* error = NULL;
-    int ret = gconf_client_get_int(priv->gc, BLANK_TIMEOUT_KEY, &error);
-    if ( error ) {
-        ret = -1;
-        g_error_free (error);
-    }
+    int ret = -1;
+
+    #if HAVE_MCE
+        QList<QVariant> argumentList;
+        argumentList << 
QVariant::fromValue(QDBusObjectPath(BLANK_TIMEOUT_KEY));
+
+        QDBusMessage getConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_GET_CONFIG);
+        getConfig.setArguments(argumentList);
+
+        QDBusReply<QDBusVariant> getDisplayBlankTimeoutReply = 
QDBusConnection::systemBus().call(getConfig);
+
+        if (getDisplayBlankTimeoutReply.isValid())
+            ret = getDisplayBlankTimeoutReply.value().variant().toInt();
+    #endif
+
     return ret;
 }
 
 int QmDisplayState::getDisplayDimTimeout() {
-    MEEGO_PRIVATE(QmDisplayState);
 
-    GError* error = NULL;
-    int ret = gconf_client_get_int(priv->gc, DIM_TIMEOUT_KEY, &error);
-    if ( error ) {
-        ret = -1;
-        g_error_free (error);
-    }
+    int ret = -1;
+
+    #if HAVE_MCE
+        QList<QVariant> argumentList;
+        argumentList << QVariant::fromValue(QDBusObjectPath(DIM_TIMEOUT_KEY));
+
+        QDBusMessage getConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_GET_CONFIG);
+        getConfig.setArguments(argumentList);
+
+        QDBusReply<QDBusVariant> getDisplayDimTimeoutReply = 
QDBusConnection::systemBus().call(getConfig);
+
+        if (getDisplayDimTimeoutReply.isValid())
+            ret = getDisplayDimTimeoutReply.value().variant().toInt();
+    #endif
+
     return ret;
 }
 
 bool QmDisplayState::getBlankingWhenCharging() {
-    MEEGO_PRIVATE(QmDisplayState);
 
-    GError* error = NULL;
-    int val = gconf_client_get_int(priv->gc, BLANKING_CHARGING_KEY, &error);
-    if ( error ) {
-        g_error_free (error);
-        return false;
-    }
+    int val = -1;
+
+    #if HAVE_MCE
+        QList<QVariant> argumentList;
+        argumentList << 
QVariant::fromValue(QDBusObjectPath(BLANKING_CHARGING_KEY));
+
+        QDBusMessage getConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_GET_CONFIG);
+        getConfig.setArguments(argumentList);
+
+        QDBusReply<QDBusVariant> getDisplayDimTimeoutReply = 
QDBusConnection::systemBus().call(getConfig);
+
+        if (getDisplayDimTimeoutReply.isValid())
+            val = getDisplayDimTimeoutReply.value().variant().toInt();
+    #endif
 
     // check if blanking is not inhibited during charging.
     bool ret = (val == 0);
@@ -209,52 +263,131 @@
 }
 
 void QmDisplayState::setDisplayBrightnessValue(int brightness) {
-    MEEGO_PRIVATE(QmDisplayState);
 
     if ((1 > brightness) || (brightness > getMaxDisplayBrightnessValue())) {
         return;
     }
 
-    gconf_client_set_int(priv->gc, BRIGHTNESS_KEY, brightness, NULL);
+    #if HAVE_MCE
+        QList<QVariant> argumentList;
+        argumentList << QVariant::fromValue(QDBusObjectPath(BRIGHTNESS_KEY));
+        argumentList << QVariant::fromValue(QDBusVariant(brightness));
+
+        QDBusMessage setConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_SET_CONFIG);
+        setConfig.setArguments(argumentList);
+
+        (void)QDBusConnection::systemBus().call(setConfig, QDBus::NoBlock);
+    #endif
 }
 
 void QmDisplayState::setDisplayBlankTimeout(int timeout) {
-    MEEGO_PRIVATE(QmDisplayState);
 
-    gconf_client_set_int(priv->gc, BLANK_TIMEOUT_KEY, timeout, NULL);
+    #if HAVE_MCE
+        // Get the list of possible values for blanking timeout.
+        QList<QVariant> getArgumentList;
+        getArgumentList << 
QVariant::fromValue(QDBusObjectPath(POSSIBLE_BLANK_LIST_KEY));
+
+        QDBusMessage getConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_GET_CONFIG);
+        getConfig.setArguments(getArgumentList);
+
+        QDBusReply<QDBusVariant> getPossibleDisplayBlankTimeoutsReply = 
QDBusConnection::systemBus().call(getConfig);
+
+        // Check if the timeout value is in the list of possible values.
+        if (getPossibleDisplayBlankTimeoutsReply.isValid()) {
+            const QDBusArgument possibleValues = 
getPossibleDisplayBlankTimeoutsReply.value().variant().value<QDBusArgument>();
+            if (possibleValues.currentType() == QDBusArgument::ArrayType) {
+                possibleValues.beginArray();
+                int value;
+                while (!possibleValues.atEnd()) {
+                    possibleValues >> value;
+                    if (value == timeout) {
+                        // Set the timeout value.
+                        QList<QVariant> argumentList;
+                        argumentList << 
QVariant::fromValue(QDBusObjectPath(BLANK_TIMEOUT_KEY));
+                        argumentList << 
QVariant::fromValue(QDBusVariant(timeout));
+
+                        QDBusMessage setConfig = 
QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                               
 MCE_REQUEST_PATH,
+                                                                               
 MCE_REQUEST_IF,
+                                                                               
 MCE_SET_CONFIG);
+                        setConfig.setArguments(argumentList);
+
+                        (void)QDBusConnection::systemBus().call(setConfig, 
QDBus::NoBlock);
+                    }
+                }
+                possibleValues.endArray();
+            }
+        }
+    #endif
 }
 
 void QmDisplayState::setDisplayDimTimeout(int timeout) {
-    MEEGO_PRIVATE(QmDisplayState);
 
-    GSList* list = NULL;
-    GError* error = NULL;
-
-    // Get the list of possible values for dimming timeout.
-    list = gconf_client_get_list(priv->gc, POSSIBLE_DIM_LIST_KEY, 
GCONF_VALUE_INT, &error);
-    if ( error ) {
-        g_error_free(error);
-        g_slist_free(list);
-        return;
-    }
-
-    // Check if the timeout value is in the list of possible values.
-    if (g_slist_index(list, (gconstpointer)timeout) == -1 ) {
-        g_slist_free(list);
-        return;
-    }
-
-    // Set the timeout value.
-    gconf_client_set_int(priv->gc, DIM_TIMEOUT_KEY, timeout, NULL);
-    g_slist_free(list);
+    #if HAVE_MCE
+        // Get the list of possible values for dimming timeout.
+       QList<QVariant> getArgumentList;
+        getArgumentList << 
QVariant::fromValue(QDBusObjectPath(POSSIBLE_DIM_LIST_KEY));
+
+        QDBusMessage getConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_GET_CONFIG);
+        getConfig.setArguments(getArgumentList);
+
+        QDBusReply<QDBusVariant> getPossibleDisplayDimTimeoutsReply = 
QDBusConnection::systemBus().call(getConfig);
+
+        // Check if the timeout value is in the list of possible values.
+        if (getPossibleDisplayDimTimeoutsReply.isValid()) {
+            const QDBusArgument possibleValues = 
getPossibleDisplayDimTimeoutsReply.value().variant().value<QDBusArgument>();
+            if (possibleValues.currentType() == QDBusArgument::ArrayType) {
+                possibleValues.beginArray();
+                int value;
+                while (!possibleValues.atEnd()) {
+                    possibleValues >> value;
+                    if (value == timeout) {
+                        // Set the timeout value.
+                        QList<QVariant> argumentList;
+                        argumentList << 
QVariant::fromValue(QDBusObjectPath(DIM_TIMEOUT_KEY));
+                        argumentList << 
QVariant::fromValue(QDBusVariant(timeout));
+
+                        QDBusMessage setConfig = 
QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                               
 MCE_REQUEST_PATH,
+                                                                               
 MCE_REQUEST_IF,
+                                                                               
 MCE_SET_CONFIG);
+                        setConfig.setArguments(argumentList);
+
+                        (void)QDBusConnection::systemBus().call(setConfig, 
QDBus::NoBlock);
+                    }
+                }
+                possibleValues.endArray();
+            }
+       }
+    #endif
 }
 
 void QmDisplayState::setBlankingWhenCharging(bool blanking) {
-    MEEGO_PRIVATE(QmDisplayState);
 
     int b = (blanking ? 0 : 1);
 
-    gconf_client_set_int(priv->gc, BLANKING_CHARGING_KEY, b, NULL);
+    #if HAVE_MCE
+        QList<QVariant> argumentList;
+        argumentList << 
QVariant::fromValue(QDBusObjectPath(BLANKING_CHARGING_KEY));
+        argumentList << QVariant::fromValue(QDBusVariant(b));
+
+        QDBusMessage setConfig = QDBusMessage::createMethodCall(MCE_SERVICE,
+                                                                
MCE_REQUEST_PATH,
+                                                                MCE_REQUEST_IF,
+                                                                
MCE_SET_CONFIG);
+        setConfig.setArguments(argumentList);
+
+        (void)QDBusConnection::systemBus().call(setConfig, QDBus::NoBlock);
+    #endif
 }
 
 bool QmDisplayState::setBlankingPause(void) {
--- system/qmdisplaystate_p.h
+++ system/qmdisplaystate_p.h
@@ -36,16 +36,18 @@
     #include "mce/mode-names.h"
 #endif
 
-#include <gconf/gconf-client.h>
+//Strings for MCE Conf keys.
+#define MCE_CONF_DISPLAY_DIR "/system/osso/dsm/display"
+#define MAX_BRIGHTNESS_KEY MCE_CONF_DISPLAY_DIR "/" 
"max_display_brightness_levels"
+#define BRIGHTNESS_KEY MCE_CONF_DISPLAY_DIR "/" "display_brightness"
+#define BLANK_TIMEOUT_KEY MCE_CONF_DISPLAY_DIR "/" "display_blank_timeout"
+#define DIM_TIMEOUT_KEY MCE_CONF_DISPLAY_DIR "/" "display_dim_timeout"
+#define BLANKING_CHARGING_KEY MCE_CONF_DISPLAY_DIR "/" "inhibit_blank_mode"
+#define POSSIBLE_DIM_LIST_KEY MCE_CONF_DISPLAY_DIR "/" 
"possible_display_dim_timeouts"
+#define POSSIBLE_BLANK_LIST_KEY MCE_CONF_DISPLAY_DIR "/" 
"possible_display_blank_timeouts"
 
-//Strings for GConf keys.
-#define GCONF_DISPLAY_DIR "/system/osso/dsm/display"
-#define MAX_BRIGHTNESS_KEY GCONF_DISPLAY_DIR "/" 
"max_display_brightness_levels"
-#define BRIGHTNESS_KEY GCONF_DISPLAY_DIR "/" "display_brightness"
-#define BLANK_TIMEOUT_KEY GCONF_DISPLAY_DIR "/" "display_blank_timeout"
-#define DIM_TIMEOUT_KEY GCONF_DISPLAY_DIR "/" "display_dim_timeout"
-#define BLANKING_CHARGING_KEY GCONF_DISPLAY_DIR "/" "inhibit_blank_mode"
-#define POSSIBLE_DIM_LIST_KEY GCONF_DISPLAY_DIR "/" 
"possible_display_dim_timeouts"
+#define MCE_GET_CONFIG "get_config"
+#define MCE_SET_CONFIG "set_config"
 
 #define SIGNAL_DISPLAY_STATE 0
 
@@ -58,19 +60,14 @@
 
     public:
         QmDisplayStatePrivate() {
-            g_type_init();
-            gc = gconf_client_get_default();
-
             connectCount[SIGNAL_DISPLAY_STATE] = 0;
         }
 
         ~QmDisplayStatePrivate() {
-            g_object_unref(gc), gc = 0;
         }
 
         QMutex connectMutex;
         size_t connectCount[1];
-        GConfClient *gc;
 
     Q_SIGNALS:
         void displayStateChanged(MeeGo::QmDisplayState::DisplayState);
--- tests/devicemode/devicemode.cpp
+++ tests/devicemode/devicemode.cpp
@@ -122,19 +122,23 @@
             runMCE.start(mcetool, nfc);
             QTest::qWait(5000);
             QCOMPARE(dm->getMode(), MeeGo::QmDeviceMode::Flight);
-
         }
+        // restore initial value
+        QVERIFY(dm->setMode(mode));
     }
 
     void testSetGetPSMState() {
+        MeeGo::QmDeviceMode::PSMState init_state = dm->getPSMState();
         for (int state=0; state < 2; state++) {
             bool result = 
dm->setPSMState(((MeeGo::QmDeviceMode::PSMState)state));
             QVERIFY(result);
             QCOMPARE((int)dm->getPSMState(), state);
         }
+        QVERIFY(dm->setPSMState(init_state));
     }
 
     void testDevicePSMStateChanged() {
+        MeeGo::QmDeviceMode::PSMState init_state = dm->getPSMState();
         QVERIFY(dm->setPSMState(MeeGo::QmDeviceMode::PSMStateOn));
         for (int state=0; state < 2; state++) {
             bool result = 
dm->setPSMState((MeeGo::QmDeviceMode::PSMState)state);
@@ -142,10 +146,13 @@
             QTest::qWait(5000);
             QCOMPARE((int)signalDump.state, state);
         }
+        QVERIFY(dm->setPSMState(init_state));
     }
 
 
     void testSetGetPSMBatteryMode() {
+        int init_mode = dm->getPSMBatteryMode();
+
         QVERIFY(dm->setPSMBatteryMode(0));
         QCOMPARE(dm->getPSMBatteryMode(), 0);
 
@@ -173,6 +180,7 @@
         QVERIFY(dm->setPSMBatteryMode(55));
         QCOMPARE(dm->getPSMBatteryMode(), 50);
 
+        QVERIFY(dm->setPSMBatteryMode(init_mode));
     }
 
     void cleanupTestCase() {
--- tests/displaystate/displaystate.cpp
+++ tests/displaystate/displaystate.cpp
@@ -127,7 +127,7 @@
     }
 
     void testGetMaxDisplayBrightnessValue() {
-        displaystate->getMaxDisplayBrightnessValue();
+        qDebug() << "DisplayMaxBrightnessValue: " << 
displaystate->getMaxDisplayBrightnessValue();
     }
 
     void testDisplayBrightnessValue() {
@@ -136,6 +136,9 @@
         displaystate->setDisplayBrightnessValue(3);
         int result = displaystate->getDisplayBrightnessValue();
         QVERIFY(result == 3);
+        displaystate->setDisplayBrightnessValue(2);
+        result = displaystate->getDisplayBrightnessValue();
+        QVERIFY(result == 2);
 
         
displaystate->setDisplayBrightnessValue(originalDisplayBrightnessValue);
     }
@@ -146,6 +149,9 @@
         displaystate->setDisplayBlankTimeout(10);
         int result = displaystate->getDisplayBlankTimeout();
         QVERIFY(result == 10);
+        displaystate->setDisplayBlankTimeout(15);
+        result = displaystate->getDisplayBlankTimeout();
+        QVERIFY(result == 15);
 
         displaystate->setDisplayBlankTimeout(originalDisplayBlankTimeout);
     }
@@ -156,6 +162,9 @@
         displaystate->setDisplayDimTimeout(15);
         int result = displaystate->getDisplayDimTimeout();
         QVERIFY(result == 15);
+        displaystate->setDisplayDimTimeout(60);
+        result = displaystate->getDisplayDimTimeout();
+        QVERIFY(result == 60);
 
         displaystate->setDisplayDimTimeout(originalDisplayDimTimeout);
     }
--- tests/heartbeat/heartbeat.cpp
+++ tests/heartbeat/heartbeat.cpp
@@ -127,12 +127,14 @@
         int sleep_s = 4;
 
         QTime result = heartbeat2->wait(0, sleep_s, 
MeeGo::QmHeartbeat::WaitHeartbeat);
+        qDebug() << "Slept " << result.second() << "seconds" ;
         QVERIFY(result.second() >= sleep_s && result.second() <= sleep_s+1);
         QVERIFY(got_signal == 0);
         heartbeat2->IWokeUp();
 
         sleep_s=7;
         result = heartbeat2->wait(0, 7, 
MeeGo::QmHeartbeat::DoNotWaitHeartbeat);
+        qDebug() << "Slept " << result.second() << "seconds" ;
         QVERIFY(result.second() >= 0 &&  result.second() <= 1);
         QTest::qWait(8000);
         heartbeat2->IWokeUp();

++++++ qmsystem.yaml
--- qmsystem.yaml
+++ qmsystem.yaml
@@ -1,12 +1,12 @@
 Name: qmsystem
 Summary: QmSystem library
-Version: 1.4.4
+Version: 1.4.5
 Release: 1
 Group: System/System Control
 License: LGPLv2
 URL: http://github.com/nemomobile/qmsystem
 Sources:
-    - "%{name}-1.4.4.tar.bz2"
+    - "%{name}-1.4.5.tar.bz2"
 Description: This package contains the QmSystem library.
 
 Requires:



Reply via email to