diff --git a/src/partition.cpp b/src/partition.cpp index 83cb09f..5cd608c 100644 --- a/src/partition.cpp +++ b/src/partition.cpp @@ -86,6 +86,11 @@ bool Partition::mountFailed() const return d && d->mountFailed; } +bool Partition::isEncrypted() const +{ + return d && d->isEncrypted; +} + bool Partition::isCryptoDevice() const { return d ? d->isCryptoDevice : false; diff --git a/src/partition.h b/src/partition.h index 9566c26..50146fe 100644 --- a/src/partition.h +++ b/src/partition.h @@ -104,6 +104,7 @@ class SYSTEMSETTINGS_EXPORT Partition bool canMount() const; bool mountFailed() const; bool isCryptoDevice() const; + bool isEncrypted() const; StorageType storageType() const; diff --git a/src/partition_p.h b/src/partition_p.h index 5e63acd..ee0b629 100644 --- a/src/partition_p.h +++ b/src/partition_p.h @@ -48,6 +48,7 @@ class PartitionPrivate : public QSharedData , status(Partition::Unmounted) , readOnly(true) , canMount(false) + , isEncrypted(false) , isCryptoDevice(false) , isSupportedFileSystemType(false) , mountFailed(false) @@ -76,6 +77,7 @@ class PartitionPrivate : public QSharedData Partition::Status status; bool readOnly; bool canMount; + bool isEncrypted; bool isCryptoDevice; bool isSupportedFileSystemType; bool mountFailed; diff --git a/src/partitionmodel.cpp b/src/partitionmodel.cpp index 93ea81c..3560d9e 100644 --- a/src/partitionmodel.cpp +++ b/src/partitionmodel.cpp @@ -252,6 +252,7 @@ QHash PartitionModel::roleNames() const { PartitionModelRole, "partitionModel" }, { IsCryptoDeviceRoles, "isCryptoDevice"}, { IsSupportedFileSystemType, "isSupportedFileSystemType"}, + { IsEncryptedRoles, "isEncrypted"}, }; return roleNames; @@ -302,6 +303,8 @@ QVariant PartitionModel::data(const QModelIndex &index, int role) const return partition.isCryptoDevice(); case IsSupportedFileSystemType: return partition.isSupportedFileSystemType(); + case IsEncryptedRoles: + return partition.isEncrypted(); default: return QVariant(); } diff --git a/src/partitionmodel.h b/src/partitionmodel.h index 125c78b..65c7eea 100644 --- a/src/partitionmodel.h +++ b/src/partitionmodel.h @@ -64,6 +64,7 @@ class SYSTEMSETTINGS_EXPORT PartitionModel : public QAbstractListModel PartitionModelRole, IsCryptoDeviceRoles, IsSupportedFileSystemType, + IsEncryptedRoles, }; // For Status role diff --git a/src/udisks2monitor.cpp b/src/udisks2monitor.cpp index e065117..7ec0f27 100644 --- a/src/udisks2monitor.cpp +++ b/src/udisks2monitor.cpp @@ -294,6 +294,7 @@ void UDisks2::Monitor::setPartitionProperties(QExplicitlySharedDataPointerstatus = blockDevice->isEncrypted() ? Partition::Locked : blockDevice->mountPath().isEmpty() ? Partition::Unmounted : Partition::Mounted; partition->isCryptoDevice = blockDevice->isEncrypted() || blockDevice->hasCryptoBackingDevice(); + partition->isEncrypted = blockDevice->isEncrypted(); } void UDisks2::Monitor::updatePartitionProperties(const UDisks2::Block *blockDevice)