[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/solid/solid/backends/upower
From:       Lukáš Tinkl <lukas () kde ! org>
Date:       2011-01-13 14:40:37
Message-ID: 20110113144037.C734FAC8B3 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1214211 by lukas:

forwardport:

use the DBUS call (as in udisks backend) instead of the metaobject
to get the properties


 M  +10 -7     upowerdevice.cpp  
 M  +1 -0      upowermanager.cpp  


--- trunk/KDE/kdelibs/solid/solid/backends/upower/upowerdevice.cpp #1214210:1214211
@@ -31,8 +31,7 @@
 
 #include <QtCore/QStringList>
 #include <QtCore/QDebug>
-#include <QtCore/QMetaObject>
-#include <QtCore/QMetaProperty>
+#include <QtDBus/QDBusPendingReply>
 
 using namespace Solid::Backends::UPower;
 
@@ -199,12 +198,16 @@
 
 QMap<QString, QVariant> UPowerDevice::allProperties() const
 {
-    const QMetaObject* metaObject = m_device.metaObject();
-    for(int i = metaObject->propertyOffset(); i < metaObject->propertyCount(); ++i) {
-        QString name = QString::fromUtf8(metaObject->property(i).name());
-        m_cache.insert(name, m_device.property(name.toUtf8()));
-    }
+    QDBusMessage call = QDBusMessage::createMethodCall(m_device.service(), m_device.path(),
+                                                       "org.freedesktop.DBus.Properties", "GetAll");
+    QDBusPendingReply< QVariantMap > reply = QDBusConnection::systemBus().asyncCall(call);
+    reply.waitForFinished();
 
+    if (reply.isValid())
+        m_cache = reply.value();
+    else
+        m_cache.clear();
+
     return m_cache;
 }
 
--- trunk/KDE/kdelibs/solid/solid/backends/upower/upowermanager.cpp #1214210:1214211
@@ -46,6 +46,7 @@
             << Solid::DeviceInterface::Battery;
 
     qDBusRegisterMetaType<QList<QDBusObjectPath> >();
+    qDBusRegisterMetaType<QVariantMap>();
 
     bool serviceFound = m_manager.isValid();
     if (!serviceFound) {
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic