From c655c99f670b0c674b6d5784c08884d5bb1d6cb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20G=C3=A2teau?= Date: Wed, 30 Jul 2014 23:21:06 +0200 Subject: [PATCH] Hide disk which contains / Fixes #75 --- src/modules/partition/PartitionCoreModule.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/modules/partition/PartitionCoreModule.cpp b/src/modules/partition/PartitionCoreModule.cpp index a32961d6e..4d46cd3cb 100644 --- a/src/modules/partition/PartitionCoreModule.cpp +++ b/src/modules/partition/PartitionCoreModule.cpp @@ -42,6 +42,15 @@ // Qt #include +static bool +hasRootPartition( Device* device ) +{ + for ( auto it = PartitionIterator::begin( device ); it != PartitionIterator::end( device ); ++it ) + if ( (*it)->mountPoint() == "/" ) + return true; + return false; +} + //- DeviceInfo --------------------------------------------- PartitionCoreModule::DeviceInfo::DeviceInfo( Device* _device ) : device( _device ) @@ -92,6 +101,14 @@ PartitionCoreModule::init() { CoreBackend* backend = CoreBackendManager::self()->backend(); auto devices = backend->scanDevices(); + + // Remove the device which contains / from the list + for ( auto it = devices.begin(); it != devices.end(); ) + if ( hasRootPartition( *it ) ) + it = devices.erase( it ); + else + ++it; + for ( auto device : devices ) { auto deviceInfo = new DeviceInfo( device );