summaryrefslogtreecommitdiffstats
path: root/kioslave/media/mediamanager/tdehardwarebackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kioslave/media/mediamanager/tdehardwarebackend.cpp')
-rw-r--r--kioslave/media/mediamanager/tdehardwarebackend.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/kioslave/media/mediamanager/tdehardwarebackend.cpp b/kioslave/media/mediamanager/tdehardwarebackend.cpp
index dc615a146..d23e38f32 100644
--- a/kioslave/media/mediamanager/tdehardwarebackend.cpp
+++ b/kioslave/media/mediamanager/tdehardwarebackend.cpp
@@ -549,6 +549,11 @@ bool TDEBackend::setFloppyProperties(Medium* medium)
}
if (sdevice->isDiskOfType(TDEDiskDeviceType::Floppy)) {
+ setFloppyMountState(medium);
+
+ // We don't use the routine above as floppy disks are extremely slow (we don't want them accessed at all during media listing)
+ medium->mountableState(sdevice->deviceNode(), sdevice->mountPath(), sdevice->fileSystemName(), !sdevice->mountPath().isNull());
+
if (sdevice->mountPath().isNull()) {
medium->setMimeType("media/floppy_unmounted");
}
@@ -615,6 +620,24 @@ void TDEBackend::setCameraProperties(Medium* medium)
}
}
+void TDEBackend::setFloppyMountState( Medium *medium )
+{
+ KMountPoint::List mtab = KMountPoint::currentMountPoints();
+ KMountPoint::List::iterator it = mtab.begin();
+ KMountPoint::List::iterator end = mtab.end();
+
+ TQString fstype;
+ TQString mountpoint;
+ for (; it!=end; ++it) {
+ if ((*it)->mountedFrom() == medium->deviceNode() ) {
+ fstype = (*it)->mountType().isNull() ? (*it)->mountType() : "auto";
+ mountpoint = (*it)->mountPoint();
+ medium->mountableState( medium->deviceNode(), mountpoint, fstype, true );
+ return;
+ }
+ }
+}
+
TQStringList TDEBackend::mountoptions(const TQString &name)
{
const Medium* medium = m_mediaList.findById(name);