respin the udisks2 backend patch

- fix k3b not recognizing any CD/DVD burning device
This commit is contained in:
Lukas Tinkl 2012-07-18 09:08:53 +02:00
parent 91142b58ad
commit 18c6ca619e
2 changed files with 18 additions and 8 deletions

View File

@ -359,7 +359,7 @@ index 0000000..19cb70a
+#endif // UDISKS2BLOCK_H
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp b/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp
new file mode 100644
index 0000000..fb74fa2
index 0000000..3076278
--- /dev/null
+++ b/tier1/solid/src/solid/backends/udisks2/udisksdevice.cpp
@@ -0,0 +1,910 @@
@ -522,7 +522,7 @@ index 0000000..fb74fa2
+ case Solid::DeviceInterface::GenericInterface:
+ return true;
+ case Solid::DeviceInterface::Block:
+ return isBlock();
+ return isBlock() || isDrive();
+ case Solid::DeviceInterface::StorageVolume:
+ return isStorageVolume();
+ case Solid::DeviceInterface::StorageAccess:
@ -1708,10 +1708,10 @@ index 0000000..d225f32
+#endif // SOLID_BACKENDS_UDISKS2_GENERICINTERFACE_H
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp b/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp
new file mode 100644
index 0000000..0a77c16
index 0000000..de7d564
--- /dev/null
+++ b/tier1/solid/src/solid/backends/udisks2/udisksmanager.cpp
@@ -0,0 +1,227 @@
@@ -0,0 +1,231 @@
+/*
+ Copyright 2012 Lukáš Tinkl <ltinkl@redhat.com>
+
@ -1891,6 +1891,7 @@ index 0000000..0a77c16
+
+ // new device, we don't know it yet
+ if (!m_deviceCache.contains(udi)) {
+ qDebug() << "ADDING NEW DEVICE" << udi;
+ m_deviceCache.append(udi);
+ Q_EMIT deviceAdded(udi);
+ }
@ -1905,6 +1906,7 @@ index 0000000..0a77c16
+ Device device(udi);
+
+ if (!udi.isEmpty() && (interfaces.isEmpty() || device.interfaces().isEmpty() || device.interfaces().contains(UD2_DBUS_INTERFACE_FILESYSTEM))) {
+ qDebug() << "REMOVING DEVICE" << udi;
+ Q_EMIT deviceRemoved(udi);
+ m_deviceCache.removeAll(udi);
+ }
@ -1922,11 +1924,13 @@ index 0000000..0a77c16
+ qDebug() << "MEDIA CHANGED in" << udi << "; size is:" << size;
+
+ if (!m_deviceCache.contains(udi) && size > 0) { // we don't know the optdisc, got inserted
+ qDebug() << "ADDING NEW OPTDISC" << udi;
+ m_deviceCache.append(udi);
+ Q_EMIT deviceAdded(udi);
+ }
+
+ if (m_deviceCache.contains(udi) && size == 0) { // we know the optdisc, got removed
+ qDebug() << "REMOVING OPTDISC" << udi;
+ Q_EMIT deviceRemoved(udi);
+ m_deviceCache.removeAll(udi);
+ }
@ -2689,10 +2693,10 @@ index 0000000..4c98ef5
+#endif // UDISKS2OPTICALDRIVE_H
diff --git a/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp b/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp
new file mode 100644
index 0000000..c2af2b0
index 0000000..ec18369
--- /dev/null
+++ b/tier1/solid/src/solid/backends/udisks2/udisksstorageaccess.cpp
@@ -0,0 +1,360 @@
@@ -0,0 +1,362 @@
+/*
+ Copyright 2009 Pino Toscano <pino@kde.org>
+ Copyright 2009-2012 Lukáš Tinkl <ltinkl@redhat.com>
@ -2869,7 +2873,9 @@ index 0000000..c2af2b0
+ if (!drivePath.isEmpty() || drivePath != "/")
+ {
+ Device drive(drivePath);
+ if (drive.prop("Ejectable").toBool() && !m_device->isOpticalDisc()) // optical drives have their Eject method
+ if (drive.prop("Ejectable").toBool() &&
+ drive.prop("MediaAvailable").toBool() &&
+ !m_device->isOpticalDisc()) // optical drives have their Eject method
+ {
+ QDBusConnection c = QDBusConnection::systemBus();
+ QDBusMessage msg = QDBusMessage::createMethodCall(UD2_DBUS_SERVICE, drivePath, UD2_DBUS_INTERFACE_DRIVE, "Eject");

View File

@ -25,7 +25,7 @@
Summary: KDE Libraries
Version: 4.8.97
Release: 3%{?dist}
Release: 5%{?dist}
Name: kdelibs
Epoch: 6
@ -628,6 +628,10 @@ rm -rf %{buildroot}
%changelog
* Wed Jul 18 2012 Lukas Tinkl <ltinkl@redhat.com> - 6:4.8.97-5
- respin the udisks2 backend patch
- fix k3b not recognizing any CD/DVD burning device
* Fri Jul 13 2012 Rex Dieter <rdieter@fedoraproject.org> - 6:4.8.97-4
- CD drive tray goes back in after 'Eject' when dolphin is running (kde#296657, #811609)