diff --git a/src/modules/partition/core/PartitionActions.cpp b/src/modules/partition/core/PartitionActions.cpp index 00cf32abe..cf7bc67a2 100644 --- a/src/modules/partition/core/PartitionActions.cpp +++ b/src/modules/partition/core/PartitionActions.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2014-2016, Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -230,7 +230,10 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass void -doReplacePartition( PartitionCoreModule* core, Device* dev, Partition* partition ) +doReplacePartition( PartitionCoreModule* core, + Device* dev, + Partition* partition, + const QString& luksPassphrase ) { cDebug() << "doReplacePartition for device" << partition->partitionPath(); @@ -250,13 +253,30 @@ doReplacePartition( PartitionCoreModule* core, Device* dev, Partition* partition } } - Partition* newPartition = KPMHelpers::createNewPartition( - partition->parent(), - *dev, - newRoles, - FileSystem::Ext4, - partition->firstSector(), - partition->lastSector() ); + Partition* newPartition = nullptr; + if ( luksPassphrase.isEmpty() ) + { + newPartition = KPMHelpers::createNewPartition( + partition->parent(), + *dev, + newRoles, + FileSystem::Ext4, + partition->firstSector(), + partition->lastSector() + ); + } + else + { + newPartition = KPMHelpers::createNewEncryptedPartition( + partition->parent(), + *dev, + newRoles, + FileSystem::Ext4, + partition->firstSector(), + partition->lastSector(), + luksPassphrase + ); + } PartitionInfo::setMountPoint( newPartition, "/" ); PartitionInfo::setFormat( newPartition, true ); diff --git a/src/modules/partition/core/PartitionActions.h b/src/modules/partition/core/PartitionActions.h index bf0559a49..41871eb4c 100644 --- a/src/modules/partition/core/PartitionActions.h +++ b/src/modules/partition/core/PartitionActions.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2014-2016, Teo Mrnjavac * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,7 +33,8 @@ void doAutopartition( PartitionCoreModule* core, void doReplacePartition( PartitionCoreModule* core, Device* dev, - Partition* partition ); + Partition* partition, + const QString& luksPassphrase = QString() ); } #endif // PARTITIONACTIONS_H diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index 4884057a2..6562e55c8 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -661,7 +661,8 @@ ChoicePage::doReplaceSelectedPartition( const QModelIndex& current, if ( selectedPartition ) PartitionActions::doReplacePartition( m_core, selectedDevice(), - selectedPartition ); + selectedPartition, + m_encryptWidget->passphrase() ); } } ), [=]