diff --git a/src/plugins/libparted/libpartedbackend.cpp b/src/plugins/libparted/libpartedbackend.cpp index 53b7372..949494d 100644 --- a/src/plugins/libparted/libpartedbackend.cpp +++ b/src/plugins/libparted/libpartedbackend.cpp @@ -441,6 +441,8 @@ QList LibPartedBackend::scanDevices() ped_device_probe_all(); PedDevice* pedDevice = NULL; + QVector path; + quint32 totalDevices = 0; while (true) { pedDevice = ped_device_get_next(pedDevice); @@ -448,8 +450,13 @@ QList LibPartedBackend::scanDevices() break; if (pedDevice->type == PED_DEVICE_DM) continue; - QString path = QString::fromUtf8(pedDevice->path); - Device* d = scanDevice(path); + path.push_back(QString::fromUtf8(pedDevice->path)); + ++totalDevices; + } + for (quint32 i = 0; i < totalDevices; ++i) + { + emitScanProgress(path[i], i * 100 / totalDevices); + Device* d = scanDevice(path[i]); if (d) result.append(d); }