Resolves #868530 - cache information about solid device in 'Places'

panel in  open/save dialog
- update solid/udisks2 backend, switch to cmake-define
This commit is contained in:
Lukáš Tinkl 2012-10-29 18:26:23 +01:00
parent 01e36094ea
commit 032b78558d
2 changed files with 165 additions and 177 deletions

View File

@ -1,5 +1,5 @@
diff --git a/solid/solid/CMakeLists.txt b/solid/solid/CMakeLists.txt
index 0aa7a43..0a74053 100644
index 0aa7a43..5cd1484 100644
--- a/solid/solid/CMakeLists.txt
+++ b/solid/solid/CMakeLists.txt
@@ -1,6 +1,7 @@
@ -10,55 +10,12 @@ index 0aa7a43..0a74053 100644
if(WIN32)
include_directories( ${KDEWIN_INCLUDES} )
@@ -39,7 +40,6 @@ configure_file(config-processor.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-proce
file(MAKE_DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/backends/fakehw
- ${CMAKE_CURRENT_BINARY_DIR}/backends/hal
${CMAKE_CURRENT_BINARY_DIR}/backends/udev
${CMAKE_CURRENT_BINARY_DIR}/backends/wmi
)
@@ -225,33 +225,6 @@ if(NOT WIN32 AND NOT APPLE)
endif( UDEV_FOUND )
- message(STATUS "Building Solid HAL backend." )
- set(solid_LIB_SRCS ${solid_LIB_SRCS}
- backends/hal/halacadapter.cpp
- backends/hal/halaudiointerface.cpp
- backends/hal/halbattery.cpp
- backends/hal/halblock.cpp
- backends/hal/halbutton.cpp
- backends/hal/halcamera.cpp
- backends/hal/halcdrom.cpp
- backends/hal/haldeviceinterface.cpp
- backends/hal/haldvbinterface.cpp
- backends/hal/halfstabhandling.cpp
- backends/hal/halgenericinterface.cpp
- backends/hal/haldevice.cpp
- backends/hal/halmanager.cpp
- backends/hal/halnetworkinterface.cpp
- backends/hal/halserialinterface.cpp
- backends/hal/halopticaldisc.cpp
- backends/hal/halportablemediaplayer.cpp
- backends/hal/halprocessor.cpp
- backends/hal/halstorageaccess.cpp
- backends/hal/halstorage.cpp
- backends/hal/halvideo.cpp
- backends/hal/halvolume.cpp
- backends/hal/halsmartcardreader.cpp
- )
-
message(STATUS "Building Solid UPower backend." )
set(solid_LIB_SRCS ${solid_LIB_SRCS}
backends/upower/upowermanager.cpp
@@ -264,18 +237,19 @@ if(NOT WIN32 AND NOT APPLE)
@@ -264,19 +265,38 @@ if(NOT WIN32 AND NOT APPLE)
# FIXME: this should work on more Unix systems
if (CMAKE_SYSTEM_NAME MATCHES Linux)
- message(STATUS "Building Solid UDisks backend." )
+ message(STATUS "Building Solid UDisks2 backend." )
set(solid_LIB_SRCS ${solid_LIB_SRCS}
- set(solid_LIB_SRCS ${solid_LIB_SRCS}
- backends/udisks/udisksmanager.cpp
- backends/udisks/udisksdevice.cpp
- backends/udisks/udisksblock.cpp
@ -69,20 +26,42 @@ index 0aa7a43..0a74053 100644
- backends/udisks/udisksstoragedrive.cpp
- backends/udisks/udisksstorageaccess.cpp
- backends/udisks/udisksgenericinterface.cpp
+ backends/udisks2/udisksmanager.cpp
+ backends/udisks2/udisksdevice.cpp
+ backends/udisks2/udisksblock.cpp
+ backends/udisks2/udisksstoragevolume.cpp
+ backends/udisks2/udisksdeviceinterface.cpp
+ backends/udisks2/udisksopticaldisc.cpp
+ backends/udisks2/udisksopticaldrive.cpp
+ backends/udisks2/udisksstoragedrive.cpp
+ backends/udisks2/udisksstorageaccess.cpp
+ backends/udisks2/udisksgenericinterface.cpp
+ backends/udisks2/dbus/manager.cpp
)
- )
+
+ if ( WITH_SOLID_UDISKS2 )
+ message(STATUS "Building Solid UDisks2 backend." )
+ add_definitions(-DWITH_SOLID_UDISKS2)
+ set(solid_LIB_SRCS ${solid_LIB_SRCS}
+ backends/udisks2/udisksmanager.cpp
+ backends/udisks2/udisksdevice.cpp
+ backends/udisks2/udisksblock.cpp
+ backends/udisks2/udisksstoragevolume.cpp
+ backends/udisks2/udisksdeviceinterface.cpp
+ backends/udisks2/udisksopticaldisc.cpp
+ backends/udisks2/udisksopticaldrive.cpp
+ backends/udisks2/udisksstoragedrive.cpp
+ backends/udisks2/udisksstorageaccess.cpp
+ backends/udisks2/udisksgenericinterface.cpp
+ backends/udisks2/dbus/manager.cpp
+ )
+ else ( WITH_SOLID_UDISKS2 )
+ message(STATUS "Building Solid UDisks backend." )
+ set(solid_LIB_SRCS ${solid_LIB_SRCS}
+ backends/udisks/udisksmanager.cpp
+ backends/udisks/udisksdevice.cpp
+ backends/udisks/udisksblock.cpp
+ backends/udisks/udisksstoragevolume.cpp
+ backends/udisks/udisksdeviceinterface.cpp
+ backends/udisks/udisksopticaldisc.cpp
+ backends/udisks/udisksopticaldrive.cpp
+ backends/udisks/udisksstoragedrive.cpp
+ backends/udisks/udisksstorageaccess.cpp
+ backends/udisks/udisksgenericinterface.cpp
+ )
+ endif ( WITH_SOLID_UDISKS2 )
endif (CMAKE_SYSTEM_NAME MATCHES Linux)
message(STATUS "Building Solid fstab backend." )
diff --git a/solid/solid/backends/udisks2/dbus/manager.cpp b/solid/solid/backends/udisks2/dbus/manager.cpp
new file mode 100644
index 0000000..7ea4aa8
@ -209,10 +188,10 @@ index 0000000..8f25cb6
+</node>
diff --git a/solid/solid/backends/udisks2/udisks2.h b/solid/solid/backends/udisks2/udisks2.h
new file mode 100644
index 0000000..25a1dc0
index 0000000..8dda86a
--- /dev/null
+++ b/solid/solid/backends/udisks2/udisks2.h
@@ -0,0 +1,77 @@
@@ -0,0 +1,78 @@
+/*
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
+
@ -268,6 +247,7 @@ index 0000000..25a1dc0
+#define UD2_DBUS_INTERFACE_FILESYSTEM "org.freedesktop.UDisks2.Filesystem"
+#define UD2_DBUS_INTERFACE_ENCRYPTED "org.freedesktop.UDisks2.Encrypted"
+#define UD2_DBUS_INTERFACE_SWAP "org.freedesktop.UDisks2.Swapspace"
+#define UD2_DBUS_INTERFACE_LOOP "org.freedesktop.UDisks2.Loop"
+
+/* errors */
+#define UD2_ERROR_UNAUTHORIZED "org.freedesktop.PolicyKit.Error.NotAuthorized"
@ -292,10 +272,10 @@ index 0000000..25a1dc0
+#endif // SOLID_BACKENDS_UDISKS2_H
diff --git a/solid/solid/backends/udisks2/udisksblock.cpp b/solid/solid/backends/udisks2/udisksblock.cpp
new file mode 100644
index 0000000..474f3d6
index 0000000..f3cd1e8
--- /dev/null
+++ b/solid/solid/backends/udisks2/udisksblock.cpp
@@ -0,0 +1,84 @@
@@ -0,0 +1,88 @@
+/*
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
+
@ -321,9 +301,9 @@ index 0000000..474f3d6
+#include <QFile>
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusPendingReply>
+#include <QtXml/QDomDocument>
+
+#include "udisksblock.h"
+#include "dbus/manager.h"
+
+using namespace Solid::Backends::UDisks2;
+
@ -335,28 +315,32 @@ index 0000000..474f3d6
+
+ // we have a drive (non-block device for udisks), so let's find the corresponding (real) block device
+ if (m_devNum == 0 || m_devFile.isEmpty()) {
+ org::freedesktop::DBus::ObjectManager manager(UD2_DBUS_SERVICE, UD2_DBUS_PATH, QDBusConnection::systemBus());
+ QDBusPendingReply<DBUSManagerStruct> reply = manager.GetManagedObjects();
+ const QString path = "/org/freedesktop/UDisks2/block_devices";
+ QDBusMessage call = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, path,
+ DBUS_INTERFACE_INTROSPECT, "Introspect");
+ QDBusPendingReply<QString> reply = QDBusConnection::systemBus().asyncCall(call);
+ reply.waitForFinished();
+ if (!reply.isError()) { // enum devices
+ Q_FOREACH(const QDBusObjectPath &path, reply.value().keys()) {
+ const QString udi = path.path();
+
+ if (udi == UD2_DBUS_PATH_MANAGER || udi == UD2_UDI_DISKS_PREFIX || udi.startsWith(UD2_DBUS_PATH_JOBS))
+ continue;
+ if (reply.isValid()) {
+ QDomDocument dom;
+ dom.setContent(reply.value());
+ QDomNodeList nodeList = dom.documentElement().elementsByTagName("node");
+ for (int i = 0; i < nodeList.count(); i++) {
+ QDomElement nodeElem = nodeList.item(i).toElement();
+ if (!nodeElem.isNull() && nodeElem.hasAttribute("name")) {
+ const QString udi = path + "/" + nodeElem.attribute("name");
+
+ Device device(udi);
+ if (device.drivePath() == dev->udi()) {
+ m_devNum = device.prop("DeviceNumber").toULongLong();
+ m_devFile = QFile::decodeName(device.prop("Device").toByteArray());
+ break;
+ Device device(udi);
+ if (device.drivePath() == dev->udi()) {
+ m_devNum = device.prop("DeviceNumber").toULongLong();
+ m_devFile = QFile::decodeName(device.prop("Device").toByteArray());
+ break;
+ }
+ }
+ }
+ }
+ else // show error
+ {
+ else
+ qWarning() << "Failed enumerating UDisks2 objects:" << reply.error().name() << "\n" << reply.error().message();
+ }
+ }
+
+ //qDebug() << "devnum:" << m_devNum << "dev file:" << m_devFile;
@ -444,10 +428,10 @@ index 0000000..19cb70a
+#endif // UDISKS2BLOCK_H
diff --git a/solid/solid/backends/udisks2/udisksdevice.cpp b/solid/solid/backends/udisks2/udisksdevice.cpp
new file mode 100644
index 0000000..22b0c45
index 0000000..a3f780f
--- /dev/null
+++ b/solid/solid/backends/udisks2/udisksdevice.cpp
@@ -0,0 +1,910 @@
@@ -0,0 +1,927 @@
+/*
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
@ -651,11 +635,15 @@ index 0000000..22b0c45
+
+QString Device::description() const
+{
+ const QString hintName = prop("HintName").toString();
+ const QString hintName = property("HintName").toString(); // non-cached
+ if (!hintName.isEmpty())
+ return hintName;
+
+ if (queryDeviceInterface(Solid::DeviceInterface::StorageDrive))
+ if (isLoop())
+ return QObject::tr("Loop Device");
+ else if (isSwap())
+ return QObject::tr("Swap Space");
+ else if (queryDeviceInterface(Solid::DeviceInterface::StorageDrive))
+ return storageDescription();
+ else if (queryDeviceInterface(Solid::DeviceInterface::StorageVolume))
+ return volumeDescription();
@ -668,7 +656,7 @@ index 0000000..22b0c45
+ QString description;
+ const UDisks2::StorageDrive storageDrive(const_cast<Device*>(this));
+ Solid::StorageDrive::DriveType drive_type = storageDrive.driveType();
+ bool drive_is_hotpluggable = storageDrive.isHotpluggable();
+ const bool drive_is_hotpluggable = storageDrive.isHotpluggable();
+
+ if (drive_type == Solid::StorageDrive::CdromDrive)
+ {
@ -740,7 +728,7 @@ index 0000000..22b0c45
+ return description;
+ }
+
+ bool drive_is_removable = storageDrive.isRemovable();
+ const bool drive_is_removable = storageDrive.isRemovable();
+
+ if (drive_type == Solid::StorageDrive::HardDisk && !drive_is_removable)
+ {
@ -973,19 +961,23 @@ index 0000000..22b0c45
+
+QString Device::icon() const
+{
+ QString iconName = prop( "HintIconName" ).toString();
+ QString iconName = property( "HintIconName" ).toString(); // non-cached
+
+ if ( !iconName.isEmpty() )
+ {
+ return iconName;
+ }
+ else if (isLoop() || isSwap())
+ {
+ return "drive-harddisk";
+ }
+ else if (isDrive()) {
+ const bool isRemovable = prop("Removable").toBool();
+ const QString conn = prop("ConnectionBus").toString();
+
+ if (isOpticalDrive())
+ return "drive-optical";
+ else if (isRemovable && !isOpticalDisc()) {
+ else if (isRemovable && !prop("Optical").toBool()) {
+ if (conn == "usb")
+ return "drive-removable-media-usb";
+ else
@ -993,14 +985,18 @@ index 0000000..22b0c45
+ }
+ }
+ else if (isBlock()) {
+ Device drive(drivePath());
+ const QString drv = drivePath();
+ if (drv.isEmpty() || drv == "/")
+ return "drive-harddisk"; // stuff like loop devices or swap which don't have the Drive prop set
+
+ Device drive(drv);
+
+ // handle media
+ const QString media = drive.prop("Media").toString();
+
+ if ( !media.isEmpty() )
+ {
+ if ( isOpticalDisc() ) // optical stuff
+ if ( drive.prop("Optical").toBool() ) // optical stuff
+ {
+ bool isWritable = drive.prop("OpticalBlank").toBool();
+
@ -1107,8 +1103,7 @@ index 0000000..22b0c45
+ if (reply.isValid()) {
+ m_cache.insert(key, reply);
+ } else {
+ //qDebug() << "got invalid reply for cache:" << key;
+ //m_cache.insert(key, QVariant());
+ qWarning() << "got invalid reply for cache:" << key;
+ }
+}
+
@ -1140,11 +1135,12 @@ index 0000000..22b0c45
+
+QVariantMap Device::allProperties() const
+{
+ QDBusMessage call = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, m_udi, DBUS_INTERFACE_PROPS, "GetAll");
+
+ Q_FOREACH (const QString & iface, m_interfaces) {
+ if (iface.startsWith("org.freedesktop.DBus"))
+ continue;
+ QDBusMessage call = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, m_udi, DBUS_INTERFACE_PROPS, "GetAll");
+ call << iface;
+ call.setArguments(QVariantList() << iface);
+ QDBusPendingReply<QVariantMap> reply = QDBusConnection::systemBus().asyncCall(call);
+ reply.waitForFinished();
+
@ -1354,16 +1350,21 @@ index 0000000..22b0c45
+ return hasInterface(UD2_DBUS_INTERFACE_SWAP);
+}
+
+bool Device::isLoop() const
+{
+ return hasInterface(UD2_DBUS_INTERFACE_LOOP);
+}
+
+QString Device::drivePath() const
+{
+ return prop("Drive").value<QDBusObjectPath>().path();
+}
diff --git a/solid/solid/backends/udisks2/udisksdevice.h b/solid/solid/backends/udisks2/udisksdevice.h
new file mode 100644
index 0000000..cf8e2f5
index 0000000..7e27634
--- /dev/null
+++ b/solid/solid/backends/udisks2/udisksdevice.h
@@ -0,0 +1,112 @@
@@ -0,0 +1,113 @@
+/*
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
@ -1445,6 +1446,7 @@ index 0000000..cf8e2f5
+ bool isEncryptedContainer() const;
+ bool isEncryptedCleartext() const;
+ bool isSwap() const;
+ bool isLoop() const;
+
+ QString drivePath() const;
+
@ -1793,10 +1795,10 @@ index 0000000..d225f32
+#endif // SOLID_BACKENDS_UDISKS2_GENERICINTERFACE_H
diff --git a/solid/solid/backends/udisks2/udisksmanager.cpp b/solid/solid/backends/udisks2/udisksmanager.cpp
new file mode 100644
index 0000000..46d934e
index 0000000..fab5208
--- /dev/null
+++ b/solid/solid/backends/udisks2/udisksmanager.cpp
@@ -0,0 +1,228 @@
@@ -0,0 +1,269 @@
+/*
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
+
@ -1822,6 +1824,7 @@ index 0000000..46d934e
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDebug>
+#include <QtDBus>
+#include <QtXml/QDomDocument>
+
+#include "../shared/rootdevice.h"
+
@ -1927,6 +1930,7 @@ index 0000000..46d934e
+{
+ m_deviceCache.clear();
+
+#if 0
+ QDBusPendingReply<DBUSManagerStruct> reply = m_manager.GetManagedObjects();
+ reply.waitForFinished();
+ if (!reply.isError()) { // enum devices
@ -1955,9 +1959,47 @@ index 0000000..46d934e
+ qWarning() << "Failed enumerating UDisks2 objects:" << reply.error().name() << "\n" << reply.error().message();
+ }
+
+#endif
+
+ introspect("/org/freedesktop/UDisks2/block_devices", true /*checkOptical*/);
+ introspect("/org/freedesktop/UDisks2/drives");
+
+ return m_deviceCache;
+}
+
+void Manager::introspect(const QString & path, bool checkOptical)
+{
+ QDBusMessage call = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, path,
+ DBUS_INTERFACE_INTROSPECT, "Introspect");
+ QDBusPendingReply<QString> reply = QDBusConnection::systemBus().asyncCall(call);
+ reply.waitForFinished();
+
+ if (reply.isValid()) {
+ QDomDocument dom;
+ dom.setContent(reply.value());
+ QDomNodeList nodeList = dom.documentElement().elementsByTagName("node");
+ for (int i = 0; i < nodeList.count(); i++) {
+ QDomElement nodeElem = nodeList.item(i).toElement();
+ if (!nodeElem.isNull() && nodeElem.hasAttribute("name")) {
+ const QString udi = path + "/" + nodeElem.attribute("name");
+
+ if (checkOptical) {
+ Device device(udi);
+ if (device.mightBeOpticalDisc()) {
+ QDBusConnection::systemBus().connect(UD2_DBUS_SERVICE, udi, DBUS_INTERFACE_PROPS, "PropertiesChanged", this,
+ SLOT(slotMediaChanged(QDBusMessage)));
+ if (!device.isOpticalDisc()) // skip empty CD disc
+ continue;
+ }
+ }
+
+ m_deviceCache.append(udi);
+ }
+ }
+ }
+ else
+ qWarning() << "Failed enumerating UDisks2 objects:" << reply.error().name() << "\n" << reply.error().message();
+}
+
+QSet< Solid::DeviceInterface::Type > Manager::supportedInterfaces() const
+{
@ -2025,12 +2067,13 @@ index 0000000..46d934e
+
+ return m_deviceCache;
+}
+
diff --git a/solid/solid/backends/udisks2/udisksmanager.h b/solid/solid/backends/udisks2/udisksmanager.h
new file mode 100644
index 0000000..7cf0a72
index 0000000..fb929ce
--- /dev/null
+++ b/solid/solid/backends/udisks2/udisksmanager.h
@@ -0,0 +1,69 @@
@@ -0,0 +1,70 @@
+/*
+ Copyright 2010 Michael Zanetti <mzanetti@kde.org>
+ Copyright 2010-2012 Lukáš Tinkl <ltinkl@redhat.com>
@ -2091,6 +2134,7 @@ index 0000000..7cf0a72
+
+private:
+ const QStringList &deviceCache();
+ void introspect(const QString & path, bool checkOptical = false);
+ QSet<Solid::DeviceInterface::Type> m_supportedInterfaces;
+ org::freedesktop::DBus::ObjectManager m_manager;
+ QStringList m_deviceCache;
@ -3666,94 +3710,30 @@ index 0000000..2ca04d2
+
+#endif // UDISKS2STORAGEVOLUME_H
diff --git a/solid/solid/managerbase.cpp b/solid/solid/managerbase.cpp
index fb5a67c..d832f31 100644
index fb5a67c..beaeac5 100644
--- a/solid/solid/managerbase.cpp
+++ b/solid/solid/managerbase.cpp
@@ -21,7 +21,7 @@
#include "managerbase_p.h"
#include <stdlib.h>
-#if !defined (Q_WS_WIN) && !defined (Q_OS_MAC)
+#if !defined (Q_OS_WIN) && !defined (Q_OS_MAC)
#include <config-solid.h>
#endif
@@ -30,8 +30,7 @@
#if defined (Q_OS_MAC)
@@ -31,7 +31,11 @@
#include "backends/iokit/iokitmanager.h"
#elif defined (Q_OS_UNIX)
-#include "backends/hal/halmanager.h"
-#include "backends/udisks/udisksmanager.h"
#include "backends/hal/halmanager.h"
+#if defined (WITH_SOLID_UDISKS2)
+#include "backends/udisks2/udisksmanager.h"
+#else
#include "backends/udisks/udisksmanager.h"
+#endif
#include "backends/upower/upowermanager.h"
#if defined (HUPNP_FOUND)
@@ -44,7 +43,7 @@
#include "backends/fstab/fstabmanager.h"
-#elif defined (Q_WS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
+#elif defined (Q_OS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
#include "backends/wmi/wmimanager.h"
#endif
@@ -68,25 +67,16 @@ void Solid::ManagerBasePrivate::loadBackends()
# if defined(Q_OS_MAC)
m_backends << new Solid::Backends::IOKit::IOKitManager(0);
-# elif defined(Q_WS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
+# elif defined(Q_OS_WIN) && defined(HAVE_WBEM) && !defined(_WIN32_WCE)
m_backends << new Solid::Backends::Wmi::WmiManager(0);
-# elif defined(Q_OS_UNIX) && !defined(Q_OS_LINUX)
- m_backends << new Solid::Backends::Hal::HalManager(0);
-
# elif defined(Q_OS_LINUX)
- bool solidHalLegacyEnabled
- = QString::fromLocal8Bit(qgetenv("SOLID_HAL_LEGACY")).toInt()==1;
- if (solidHalLegacyEnabled) {
- m_backends << new Solid::Backends::Hal::HalManager(0);
- } else {
@@ -83,7 +87,11 @@ void Solid::ManagerBasePrivate::loadBackends()
# if defined(UDEV_FOUND)
m_backends << new Solid::Backends::UDev::UDevManager(0);
# endif
- m_backends << new Solid::Backends::UDisks::UDisksManager(0)
+# if defined(WITH_SOLID_UDISKS2)
+ m_backends << new Solid::Backends::UDisks2::Manager(0)
+# else
m_backends << new Solid::Backends::UDisks::UDisksManager(0)
+# endif
<< new Solid::Backends::UPower::UPowerManager(0)
<< new Solid::Backends::Fstab::FstabManager(0);
- }
# endif
# if defined (HUPNP_FOUND)
@@ -99,5 +89,3 @@ QList<QObject*> Solid::ManagerBasePrivate::managerBackends() const
{
return m_backends;
}
-
-
diff --git a/solid/tests/CMakeLists.txt b/solid/tests/CMakeLists.txt
index ef507d1..b9f3720 100644
--- a/solid/tests/CMakeLists.txt
+++ b/solid/tests/CMakeLists.txt
@@ -15,21 +15,6 @@ endif(WIN32)
target_link_libraries(fakehardwaretest solid_static ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTTEST_LIBRARY} )
add_definitions(-DTEST_DATA="\\"${CMAKE_CURRENT_SOURCE_DIR}/../solid/backends/fakehw/fakecomputer.xml\\"")
-
-########### halbasictest ###############
-
-if(NOT WIN32 AND NOT APPLE)
-set(halbasictest_SRCS halbasictest.cpp )
-
-kde4_add_executable(halbasictest ${halbasictest_SRCS})
-
-if(WIN32)
- set_target_properties(halbasictest PROPERTIES COMPILE_FLAGS -DSOLID_EXPORT=)
-endif(WIN32)
-
-target_link_libraries(halbasictest solid_static ${KDEWIN_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTTEST_LIBRARY} )
-endif(NOT WIN32 AND NOT APPLE)
-
########### solidhwtest ###############
set(solidhwtest_SRCS
}

View File

@ -25,7 +25,7 @@
Summary: KDE Libraries
Version: 4.9.2
Release: 8%{?dist}
Release: 9%{?dist}
Name: kdelibs
Epoch: 6
@ -121,7 +121,7 @@ Patch42: 0003-Implement-automatic-scanning-of-source-code-for-requ.patch
# make forcefully hal-free build
Patch45: kdelibs-4.7.3-halectomy.patch
# udisks2 Solid backend, halectomy
# udisks2 Solid backend
Patch47: kdelibs-udisks2-backend.patch
## upstreamable
@ -350,6 +350,9 @@ mkdir -p %{_target_platform}
pushd %{_target_platform}
%{cmake_kde4} \
-DKDE_DISTRIBUTION_TEXT="%{version}-%{release} Fedora" \
%if 0%{?rhel} > 6 || 0%{?fedora} > 17
-DWITH_SOLID_UDISKS2:BOOL=ON \
%endif
..
popd
@ -590,6 +593,11 @@ rm -rf %{buildroot}
%changelog
* Mon Oct 29 2012 Lukáš Tinkl <ltinkl@redhat.com> 6:4.9.2-9
- Resolves #868530 - cache information about solid device in 'Places'
panel in open/save dialog
- update solid/udisks2 backend, switch to cmake-define
* Thu Oct 25 2012 Dan Vrátil <dvratil@redhat.com> 6:4.9.2-8
- Resolves #868530 - cache information about solid device in 'Places'
panel in open/save dialog