diff --git a/src/modules/partition/core/DeviceModel.cpp b/src/modules/partition/core/DeviceModel.cpp index fe4f71b4f..ba0df2c18 100644 --- a/src/modules/partition/core/DeviceModel.cpp +++ b/src/modules/partition/core/DeviceModel.cpp @@ -25,7 +25,6 @@ // KPMcore #include -#include // KF5 #include @@ -80,7 +79,7 @@ DeviceModel::data( const QModelIndex& index, int role ) const return device->deviceNode(); else { - if ( device->capacity() != 1 ) + if ( device->logicalSize() >= 0 && device->totalLogical() >= 0 ) return tr( "%1 - %2 (%3)" ) .arg( device->name() ) .arg( KFormat().formatByteSize( device->capacity() ) ) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 710f85378..d6be78844 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include // Qt @@ -604,6 +605,30 @@ PartitionCoreModule::scanForLVMPVs() for ( auto p : LVM::pvList ) m_lvmPVs << p.partition().data(); + + for ( DeviceInfo* d : m_deviceInfos ) + { + for ( auto job : d->jobs ) + { + // Including new LVM PVs + CreatePartitionJob* partJob = dynamic_cast( job.data() ); + if ( partJob ) + { + Partition* p = partJob->partition(); + + if ( p->fileSystem().type() == FileSystem::Type::Lvm2_PV ) + m_lvmPVs << p; + else if ( p->fileSystem().type() == FileSystem::Type::Luks || p->fileSystem().type() == FileSystem::Type::Luks2 ) + { + // Encrypted LVM PVs + FileSystem* innerFS = static_cast(&p->fileSystem())->innerFS(); + + if ( innerFS && innerFS->type() == FileSystem::Type::Lvm2_PV ) + m_lvmPVs << p; + } + } + } + } } PartitionCoreModule::DeviceInfo*