diff --git a/src/solid/devices/backends/udisks2/udisksdevice.h b/src/solid/devices/backends/udisks2/udisksdevice.h --- a/src/solid/devices/backends/udisks2/udisksdevice.h +++ b/src/solid/devices/backends/udisks2/udisksdevice.h @@ -81,6 +81,7 @@ bool isMounted() const; bool isEncryptedContainer() const; bool isEncryptedCleartext() const; + bool isRoot() const; bool isSwap() const; bool isLoop() const; diff --git a/src/solid/devices/backends/udisks2/udisksdevice.cpp b/src/solid/devices/backends/udisks2/udisksdevice.cpp --- a/src/solid/devices/backends/udisks2/udisksdevice.cpp +++ b/src/solid/devices/backends/udisks2/udisksdevice.cpp @@ -614,11 +614,8 @@ if (!iconName.isEmpty()) { return iconName; - } else if (queryDeviceInterface(Solid::DeviceInterface::StorageAccess)) { - const UDisks2::StorageAccess accessIface(const_cast(this)); - if (accessIface.filePath() == QLatin1String("/")) { - return QStringLiteral("drive-harddisk-root"); - } + } else if (isRoot()) { + return QStringLiteral("drive-harddisk-root"); } else if (isLoop()) { const QString backingFile = prop("BackingFile").toString(); if (!backingFile.isEmpty()) { @@ -872,6 +869,15 @@ } } +bool Device::isRoot() const +{ + if (isStorageAccess()) { + const UDisks2::StorageAccess accessIface(const_cast(this)); + return accessIface.filePath() == QLatin1String("/"); + } + return false; +} + bool Device::isSwap() const { return hasInterface(QStringLiteral(UD2_DBUS_INTERFACE_SWAP));