diff --git a/src/plugins/libparted/libpartedbackend.cpp b/src/plugins/libparted/libpartedbackend.cpp index b14d52a..497b7db 100644 --- a/src/plugins/libparted/libpartedbackend.cpp +++ b/src/plugins/libparted/libpartedbackend.cpp @@ -49,11 +49,6 @@ #include #include -#include -#include -#include -#include - #include #include #include @@ -441,62 +436,24 @@ Device* LibPartedBackend::scanDevice(const QString& device_node) return d; } -static quint32 countDevices(const QList& driveList) -{ - quint32 rval = 0; - - foreach(const Solid::Device& solidDevice, driveList) - { - (void) solidDevice; // Silence compiler warning. -#ifndef ENABLE_UDISKS2 - const Solid::StorageDrive* solidDrive = solidDevice.as(); - if (solidDrive->driveType() == Solid::StorageDrive::HardDisk || - solidDrive->driveType() == Solid::StorageDrive::CompactFlash || - solidDrive->driveType() == Solid::StorageDrive::MemoryStick || - solidDrive->driveType() == Solid::StorageDrive::SmartMedia || - solidDrive->driveType() == Solid::StorageDrive::SdMmc || - solidDrive->driveType() == Solid::StorageDrive::Xd) -#endif - rval++; - } - return rval; -} - QList LibPartedBackend::scanDevices() { QList result; - const QList driveList = getSolidDeviceList(); - const quint32 totalDevices = countDevices(driveList); - - quint32 count = 0; - - foreach(const Solid::Device& solidDevice, driveList) + ped_device_probe_all(); + PedDevice* pedDevice = NULL; + while (true) { -#ifndef ENABLE_UDISKS2 - const Solid::StorageDrive* solidDrive = solidDevice.as(); - - if (solidDrive->driveType() != Solid::StorageDrive::HardDisk && - solidDrive->driveType() != Solid::StorageDrive::CompactFlash && - solidDrive->driveType() != Solid::StorageDrive::MemoryStick && - solidDrive->driveType() != Solid::StorageDrive::SmartMedia && - solidDrive->driveType() != Solid::StorageDrive::SdMmc && - solidDrive->driveType() != Solid::StorageDrive::Xd) + pedDevice = ped_device_get_next(pedDevice); + if (!pedDevice) + break; + if (pedDevice->type == PED_DEVICE_DM) continue; -#endif - const Solid::Block* solidBlock = solidDevice.as(); - - Device* d = scanDevice(solidBlock->device()); - kWarning() << solidBlock->device(); - - if (d != NULL) - { - d->setIconName(solidDevice.icon()); + QString path = QString::fromUtf8(pedDevice->path); + Device* d = scanDevice(path); + if (d) result.append(d); - } - - emitScanProgress(solidBlock->device(), (++count) * 100 / totalDevices); } return result;