Allow excluding read-only devices from backend scan.
This commit is contained in:
parent
adbcfb8943
commit
a683078b28
|
@ -88,7 +88,7 @@ public:
|
|||
* @return a QList of pointers to Device instances. The caller is responsible
|
||||
* for deleting these objects.
|
||||
*/
|
||||
virtual QList<Device*> scanDevices() = 0;
|
||||
virtual QList<Device*> scanDevices(bool excludeReadOnly = false) = 0;
|
||||
|
||||
/**
|
||||
* Scan a single device in the system.
|
||||
|
|
|
@ -45,8 +45,9 @@ void DummyBackend::initFSSupport()
|
|||
{
|
||||
}
|
||||
|
||||
QList<Device*> DummyBackend::scanDevices()
|
||||
QList<Device*> DummyBackend::scanDevices(bool excludeReadOnly)
|
||||
{
|
||||
Q_UNUSED(excludeReadOnly)
|
||||
QList<Device*> result;
|
||||
result.append(scanDevice(QStringLiteral("/dev/sda")));
|
||||
|
||||
|
|
|
@ -44,11 +44,11 @@ private:
|
|||
public:
|
||||
virtual void initFSSupport();
|
||||
|
||||
virtual QList<Device*> scanDevices();
|
||||
virtual CoreBackendDevice* openDevice(const QString& device_node);
|
||||
virtual CoreBackendDevice* openDeviceExclusive(const QString& device_node);
|
||||
virtual bool closeDevice(CoreBackendDevice* core_device);
|
||||
virtual Device* scanDevice(const QString& device_node);
|
||||
virtual QList<Device*> scanDevices(bool excludeReadOnly = false) override;
|
||||
virtual CoreBackendDevice* openDevice(const QString& device_node) override;
|
||||
virtual CoreBackendDevice* openDeviceExclusive(const QString& device_node) override;
|
||||
virtual bool closeDevice(CoreBackendDevice* core_device) override;
|
||||
virtual Device* scanDevice(const QString& device_node) override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -407,7 +407,7 @@ Device* LibPartedBackend::scanDevice(const QString& device_node)
|
|||
return d;
|
||||
}
|
||||
|
||||
QList<Device*> LibPartedBackend::scanDevices()
|
||||
QList<Device*> LibPartedBackend::scanDevices(bool excludeReadOnly)
|
||||
{
|
||||
QList<Device*> result;
|
||||
|
||||
|
@ -421,6 +421,12 @@ QList<Device*> LibPartedBackend::scanDevices()
|
|||
break;
|
||||
if (pedDevice->type == PED_DEVICE_DM)
|
||||
continue;
|
||||
if (excludeReadOnly && (
|
||||
pedDevice->type == PED_DEVICE_LOOP ||
|
||||
pedDevice->type == PED_DEVICE_UNKNOWN ||
|
||||
pedDevice->read_only))
|
||||
continue;
|
||||
|
||||
path.push_back(QString::fromUtf8(pedDevice->path));
|
||||
++totalDevices;
|
||||
}
|
||||
|
|
|
@ -60,11 +60,11 @@ private:
|
|||
public:
|
||||
virtual void initFSSupport();
|
||||
|
||||
virtual CoreBackendDevice* openDevice(const QString& device_node);
|
||||
virtual CoreBackendDevice* openDeviceExclusive(const QString& device_node);
|
||||
virtual bool closeDevice(CoreBackendDevice* core_device);
|
||||
virtual Device* scanDevice(const QString& device_node);
|
||||
virtual QList<Device*> scanDevices();
|
||||
virtual CoreBackendDevice* openDevice(const QString& device_node) override;
|
||||
virtual CoreBackendDevice* openDeviceExclusive(const QString& device_node) override;
|
||||
virtual bool closeDevice(CoreBackendDevice* core_device) override;
|
||||
virtual Device* scanDevice(const QString& device_node) override;
|
||||
virtual QList<Device*> scanDevices(bool excludeReadOnly = false) override;
|
||||
|
||||
static QString lastPartedExceptionMessage();
|
||||
|
||||
|
|
Loading…
Reference in New Issue