diff --git a/src/solid/devices/backends/fstab/fstabdevice.h b/src/solid/devices/backends/fstab/fstabdevice.h --- a/src/solid/devices/backends/fstab/fstabdevice.h +++ b/src/solid/devices/backends/fstab/fstabdevice.h @@ -68,6 +68,7 @@ Encrypted, }; StorageType m_storageType = StorageType::Other; + QStringList m_emblems; }; } diff --git a/src/solid/devices/backends/fstab/fstabdevice.cpp b/src/solid/devices/backends/fstab/fstabdevice.cpp --- a/src/solid/devices/backends/fstab/fstabdevice.cpp +++ b/src/solid/devices/backends/fstab/fstabdevice.cpp @@ -91,6 +91,12 @@ } } } + + if (FstabHandling::currentMountPoints(m_device).isEmpty()) { + m_emblems = s_emblemUnmounted; + } else { + m_emblems = s_emblemMounted; + } } FstabDevice::~FstabDevice() @@ -124,15 +130,7 @@ QStringList FstabDevice::emblems() const { - if (!m_storageAccess) { - FstabDevice *d = const_cast(this); - d->m_storageAccess = new FstabStorageAccess(d); - } - if (m_storageAccess->isAccessible()) { - return s_emblemMounted; - } else { - return s_emblemUnmounted; - } + return m_emblems; } QString FstabDevice::description() const @@ -174,6 +172,11 @@ void FstabDevice::onMtabChanged(const QString &device) { if (m_device == device) { + if (FstabHandling::currentMountPoints(device).isEmpty()) { + m_emblems = s_emblemUnmounted; + } else { + m_emblems = s_emblemMounted; + } emit mtabChanged(device); } }