Avoiding pointer comparison.

This commit is contained in:
Caio Carvalho 2018-07-15 15:51:23 -03:00
parent cacc6f6067
commit a508cfbc83
1 changed files with 18 additions and 8 deletions

View File

@ -164,7 +164,7 @@ void SoftwareRAID::setStatus(SoftwareRAID::Status status)
void SoftwareRAID::scanSoftwareRAID(QList<Device*>& devices) void SoftwareRAID::scanSoftwareRAID(QList<Device*>& devices)
{ {
QList<Device *> scannedRaid; QStringList availableInConf;
// TODO: Support custom config files. // TODO: Support custom config files.
QString config = getRAIDConfiguration(QStringLiteral("/etc/mdadm.conf")); QString config = getRAIDConfiguration(QStringLiteral("/etc/mdadm.conf"));
@ -177,10 +177,7 @@ void SoftwareRAID::scanSoftwareRAID(QList<Device*>& devices)
QRegularExpressionMatch reMatch = i.next(); QRegularExpressionMatch reMatch = i.next();
QString deviceName = reMatch.captured(2).trimmed(); QString deviceName = reMatch.captured(2).trimmed();
SoftwareRAID *raidDevice = new SoftwareRAID(deviceName, availableInConf << deviceName;
SoftwareRAID::Status::Inactive);
scannedRaid << raidDevice;
} }
} }
@ -197,8 +194,18 @@ void SoftwareRAID::scanSoftwareRAID(QList<Device*>& devices)
SoftwareRAID* d = static_cast<SoftwareRAID *>(CoreBackendManager::self()->backend()->scanDevice(deviceNode)); SoftwareRAID* d = static_cast<SoftwareRAID *>(CoreBackendManager::self()->backend()->scanDevice(deviceNode));
if (!scannedRaid.contains(d)) bool isInConf = false;
scannedRaid << d;
for (const QString& path : qAsConst(availableInConf)) {
if (getUUID(QStringLiteral("/dev/") + path) == d->uuid()) {
isInConf = true;
availableInConf.removeAll(path);
break;
}
}
if (isInConf)
devices << d;
if (status == QStringLiteral("inactive")) if (status == QStringLiteral("inactive"))
d->setStatus(SoftwareRAID::Status::Inactive); d->setStatus(SoftwareRAID::Status::Inactive);
@ -218,7 +225,10 @@ void SoftwareRAID::scanSoftwareRAID(QList<Device*>& devices)
} }
} }
devices << scannedRaid; for (const QString& name : qAsConst(availableInConf)) {
SoftwareRAID *raidDevice = new SoftwareRAID(name, SoftwareRAID::Status::Inactive);
devices << raidDevice;
}
} }
qint32 SoftwareRAID::getRaidLevel(const QString &path) qint32 SoftwareRAID::getRaidLevel(const QString &path)