File solid_udisks_upower_fix_properties.diff of Package kdelibs4

diff --git a/solid/solid/backends/udisks/udisksdevice.cpp b/solid/solid/backends/udisks/udisksdevice.cpp
index 638531e..80ea072 100644
--- a/solid/solid/backends/udisks/udisksdevice.cpp
+++ b/solid/solid/backends/udisks/udisksdevice.cpp
@@ -706,6 +706,7 @@ QMap<QString, QVariant> UDisksDevice::allProperties() const
 {
     QDBusMessage call = QDBusMessage::createMethodCall(m_device->service(), m_device->path(),
                                                        "org.freedesktop.DBus.Properties", "GetAll");
+    call << m_device->interface();
     QDBusPendingReply< QVariantMap > reply = QDBusConnection::systemBus().asyncCall(call);
     reply.waitForFinished();
 
diff --git a/solid/solid/backends/udisks/udisksmanager.cpp b/solid/solid/backends/udisks/udisksmanager.cpp
index 01db48f..e18cc66 100644
--- a/solid/solid/backends/udisks/udisksmanager.cpp
+++ b/solid/solid/backends/udisks/udisksmanager.cpp
@@ -108,6 +108,9 @@ QStringList UDisksManager::devicesFromQuery(const QString& parentUdi, Solid::Dev
     {
         foreach (const QString &udi, deviceCache())
         {
+            if (udi==udiPrefix())
+                continue;
+
             UDisksDevice device(udi);
             if (device.queryDeviceInterface(type) && device.parentUdi() == parentUdi)
                 result << udi;
@@ -119,6 +122,9 @@ QStringList UDisksManager::devicesFromQuery(const QString& parentUdi, Solid::Dev
     {
         foreach (const QString &udi, deviceCache())
         {
+            if (udi==udiPrefix())
+                continue;
+
             UDisksDevice device(udi);
             if (device.queryDeviceInterface(type))
                 result << udi;
diff --git a/solid/solid/backends/upower/upowerdevice.cpp b/solid/solid/backends/upower/upowerdevice.cpp
index 0858f14..5b672c7 100644
--- a/solid/solid/backends/upower/upowerdevice.cpp
+++ b/solid/solid/backends/upower/upowerdevice.cpp
@@ -200,6 +200,7 @@ QMap<QString, QVariant> UPowerDevice::allProperties() const
 {
     QDBusMessage call = QDBusMessage::createMethodCall(m_device.service(), m_device.path(),
                                                        "org.freedesktop.DBus.Properties", "GetAll");
+    call << m_device.interface();
     QDBusPendingReply< QVariantMap > reply = QDBusConnection::systemBus().asyncCall(call);
     reply.waitForFinished();
 
diff --git a/solid/solid/backends/upower/upowermanager.cpp b/solid/solid/backends/upower/upowermanager.cpp
index de2db75..bae234b 100644
--- a/solid/solid/backends/upower/upowermanager.cpp
+++ b/solid/solid/backends/upower/upowermanager.cpp
@@ -103,6 +103,9 @@ QStringList UPowerManager::devicesFromQuery(const QString& parentUdi, Solid::Dev
     {
         foreach (const QString & udi, allDev)
         {
+            if (udi==udiPrefix())
+                continue;
+
             UPowerDevice device(udi);
             if (device.queryDeviceInterface(type) && device.parentUdi() == parentUdi)
                 result << udi;
@@ -114,6 +117,9 @@ QStringList UPowerManager::devicesFromQuery(const QString& parentUdi, Solid::Dev
     {
         foreach (const QString & udi, allDev)
         {
+            if (udi==udiPrefix())
+                continue;
+
             UPowerDevice device(udi);
             if (device.queryDeviceInterface(type))
                 result << udi;
openSUSE Build Service is sponsored by