Fix crash when smartStatus is nullptr.

This commit is contained in:
Chantara Tith 2016-08-08 04:51:27 +07:00 committed by Andrius Štikonas
parent 175ea6a5ed
commit 92cbb1f6dc
1 changed files with 14 additions and 9 deletions

View File

@ -119,18 +119,23 @@ void DevicePropsDialog::setupDialog()
dialogWidget().primariesMax().setText(maxPrimaries);
dialogWidget().logicalSectorSize().setText(Capacity::formatByteSize(disk.logicalSectorSize()));
dialogWidget().physicalSectorSize().setText(Capacity::formatByteSize(disk.physicalSectorSize()));
}
if (device().smartStatus().isValid()) {
if (device().smartStatus().status()) {
dialogWidget().smartStatusText().setText(xi18nc("@label SMART disk status", "good"));
dialogWidget().smartStatusIcon().setPixmap(QIcon::fromTheme(QStringLiteral("dialog-ok")).pixmap(IconSize(KIconLoader::Small)));
if (device().smartStatus().isValid()) {
if (device().smartStatus().status()) {
dialogWidget().smartStatusText().setText(xi18nc("@label SMART disk status", "good"));
dialogWidget().smartStatusIcon().setPixmap(QIcon::fromTheme(QStringLiteral("dialog-ok")).pixmap(IconSize(KIconLoader::Small)));
} else {
dialogWidget().smartStatusText().setText(xi18nc("@label SMART disk status", "BAD"));
dialogWidget().smartStatusIcon().setPixmap(QIcon::fromTheme(QStringLiteral("dialog-warning")).pixmap(IconSize(KIconLoader::Small)));
}
} else {
dialogWidget().smartStatusText().setText(xi18nc("@label SMART disk status", "BAD"));
dialogWidget().smartStatusIcon().setPixmap(QIcon::fromTheme(QStringLiteral("dialog-warning")).pixmap(IconSize(KIconLoader::Small)));
dialogWidget().smartStatusText().setText(xi18nc("@label", "(unknown)"));
dialogWidget().smartStatusIcon().setVisible(false);
dialogWidget().buttonSmartMore().setVisible(false);
}
} else {
dialogWidget().smartStatusText().setText(xi18nc("@label", "(unknown)"));
//TODO: add Volume Manger Device info
dialogWidget().type().setText(xi18nc("@label device", "Volume Manager Device"));
dialogWidget().smartStatusText().setVisible(false);
dialogWidget().smartStatusIcon().setVisible(false);
dialogWidget().buttonSmartMore().setVisible(false);
}