[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdelibs/solid/solid/backends/udisks
From: Lukáš Tinkl <lukas () kde ! org>
Date: 2011-01-19 16:56:31
Message-ID: 20110119165631.5A50AAC8B7 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1215781 by lukas:
forwardport, workaround for 2-stage storage drives
M +20 -1 udisksmanager.cpp
M +1 -0 udisksmanager.h
--- trunk/KDE/kdelibs/solid/solid/backends/udisks/udisksmanager.cpp #1215780:1215781
@@ -186,9 +186,16 @@
{
const QString udi = opath.path();
- if (!m_deviceCache.isEmpty()) {
+ if (!m_deviceCache.contains(udi)) {
m_deviceCache.append(udi);
}
+
+ UDisksDevice device(udi);
+ if (device.queryDeviceInterface(Solid::DeviceInterface::StorageDrive)
+ && !device.property("DeviceIsMediaAvailable").toBool()
+ && !m_dirtyDevices.contains(udi))
+ m_dirtyDevices.append(udi);
+
emit deviceAdded(udi);
slotDeviceChanged(opath); // case: hotswap event (optical drive with media inside)
}
@@ -204,6 +211,9 @@
emit deviceRemoved(udi + ":media");
}
+ if (m_dirtyDevices.contains(udi))
+ m_dirtyDevices.removeAll(udi);
+
emit deviceRemoved(udi);
m_deviceCache.removeAll(opath.path());
}
@@ -231,7 +241,16 @@
emit deviceRemoved(udi + ":media");
}
}
+
+ if (device.queryDeviceInterface(Solid::DeviceInterface::StorageDrive)
+ && device.property("DeviceIsMediaAvailable").toBool()
+ && m_dirtyDevices.contains(udi))
+ {
+ //qDebug() << "dirty device added:" << udi;
+ emit deviceAdded(udi);
+ m_dirtyDevices.removeAll(udi);
}
+}
const QStringList &UDisksManager::deviceCache()
{
--- trunk/KDE/kdelibs/solid/solid/backends/udisks/udisksmanager.h #1215780:1215781
@@ -61,6 +61,7 @@
QSet<Solid::DeviceInterface::Type> m_supportedInterfaces;
QDBusInterface m_manager;
QStringList m_deviceCache;
+ QStringList m_dirtyDevices; // special 2-stage storage like Nokia N900
};
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic