summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2016-01-23 04:25:40 +0100
committerSlávek Banko <slavek.banko@axis.cz>2016-01-23 04:25:40 +0100
commit68102d50e99fe35442f78be21cf8b720481e7e0b (patch)
tree0fa37f7d54c77ffbdb60657b9741ebe830a0314c
parent026a0ccdcdd054f227682f7e37dceef68173c6f9 (diff)
downloadtdelibs-68102d50.tar.gz
tdelibs-68102d50.zip
Fix disk type clasification in tdehwlib
This resolves Bug 2473 Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-rw-r--r--tdecore/tdehw/tdehardwaredevices.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/tdecore/tdehw/tdehardwaredevices.cpp b/tdecore/tdehw/tdehardwaredevices.cpp
index 017b1188f..547c24e4d 100644
--- a/tdecore/tdehw/tdehardwaredevices.cpp
+++ b/tdecore/tdehw/tdehardwaredevices.cpp
@@ -1068,20 +1068,8 @@ TDEDiskDeviceType::TDEDiskDeviceType classifyDiskType(udev_device* dev, const TQ
if (disktypestring.upper() == "DISK") {
disktype = disktype | TDEDiskDeviceType::HDD;
}
- if (disktypestring.isNull()) {
- // Fallback
- // If we can't recognize the disk type then set it as a simple HDD volume
- disktype = disktype | TDEDiskDeviceType::HDD;
- }
-
- // Certain combinations of media flags should never be set at the same time as they don't make sense
- // This block is needed as udev is more than happy to provide inconsistent data to us
- if ((disktype & TDEDiskDeviceType::Zip) || (disktype & TDEDiskDeviceType::Floppy) || (disktype & TDEDiskDeviceType::Jaz) || (disktype & TDEDiskDeviceType::Tape)) {
- disktype = disktype & ~TDEDiskDeviceType::HDD;
- }
if (disktypestring.upper() == "CD") {
- disktype = disktype & ~TDEDiskDeviceType::HDD;
disktype = disktype | TDEDiskDeviceType::Optical;
if (TQString(udev_device_get_property_value(dev, "ID_CDROM_MEDIA")) == "1") {
@@ -1251,6 +1239,12 @@ TDEDiskDeviceType::TDEDiskDeviceType classifyDiskType(udev_device* dev, const TQ
disktype = disktype | TDEDiskDeviceType::Loop;
}
+ if (disktype == TDEDiskDeviceType::Null) {
+ // Fallback
+ // If we can't recognize the disk type then set it as a simple HDD volume
+ disktype = disktype | TDEDiskDeviceType::HDD;
+ }
+
if (filesystemtype.upper() == "CRYPTO_LUKS") {
disktype = disktype | TDEDiskDeviceType::LUKS;
}