[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