diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2016-01-23 04:25:40 +0100 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2016-01-23 04:25:40 +0100 |
commit | 68102d50e99fe35442f78be21cf8b720481e7e0b (patch) | |
tree | 0fa37f7d54c77ffbdb60657b9741ebe830a0314c | |
parent | 026a0ccdcdd054f227682f7e37dceef68173c6f9 (diff) | |
download | tdelibs-68102d50e99fe35442f78be21cf8b720481e7e0b.tar.gz tdelibs-68102d50e99fe35442f78be21cf8b720481e7e0b.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.cpp | 18 |
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; } |