From 70a59d6cd1a77cbf16ddb7862c28b1f7fcb2b620 Mon Sep 17 00:00:00 2001 From: Penvern Vincent Date: Sat, 13 Apr 2024 02:09:09 +0200 Subject: [PATCH] add possibility to pre check encryption checkox --- src/modules/partition/PartitionViewStep.cpp | 2 ++ src/modules/partition/gui/ChoicePage.cpp | 7 +++++++ src/modules/partition/gui/ChoicePage.h | 1 + src/modules/partition/gui/EncryptWidget.cpp | 5 +++++ src/modules/partition/gui/EncryptWidget.h | 1 + src/modules/partition/partition.conf | 5 +++++ src/modules/partition/partition.schema.yaml | 1 + 7 files changed, 22 insertions(+) diff --git a/src/modules/partition/PartitionViewStep.cpp b/src/modules/partition/PartitionViewStep.cpp index 119bf1baa..4b170a8ab 100644 --- a/src/modules/partition/PartitionViewStep.cpp +++ b/src/modules/partition/PartitionViewStep.cpp @@ -698,6 +698,8 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) Calamares::getBool( configurationMap, "alwaysShowPartitionLabels", true ) ); gs->insert( "enableLuksAutomatedPartitioning", Calamares::getBool( configurationMap, "enableLuksAutomatedPartitioning", true ) ); + gs->insert( "preCheckEncryption", + Calamares::getBool( configurationMap, "preCheckEncryption", false ) ); QString partitionTableName = Calamares::getString( configurationMap, "defaultPartitionTableType" ); if ( partitionTableName.isEmpty() ) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index 8a1313237..823525fd3 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -83,12 +83,14 @@ ChoicePage::ChoicePage( Config* config, QWidget* parent ) , m_beforePartitionLabelsView( nullptr ) , m_bootloaderComboBox( nullptr ) , m_enableEncryptionWidget( true ) + , m_preCheckEncryption( false ) { setupUi( this ); auto gs = Calamares::JobQueue::instance()->globalStorage(); m_enableEncryptionWidget = gs->value( "enableLuksAutomatedPartitioning" ).toBool(); + m_preCheckEncryption = gs->value( "preCheckEncryption" ).toBool(); // Set up drives combo m_mainLayout->setDirection( QBoxLayout::TopToBottom ); @@ -468,6 +470,11 @@ ChoicePage::onActionChanged() { m_encryptWidget->setFilesystem( FileSystem::typeForName( m_replaceFsTypesChoiceComboBox->currentText() ) ); } + + if ( m_preCheckEncryption ) + { + m_encryptWidget->setEncryptionCheckbox( m_preCheckEncryption ); + } } Device* currd = selectedDevice(); diff --git a/src/modules/partition/gui/ChoicePage.h b/src/modules/partition/gui/ChoicePage.h index 7deb4dec6..0508cb9cd 100644 --- a/src/modules/partition/gui/ChoicePage.h +++ b/src/modules/partition/gui/ChoicePage.h @@ -170,6 +170,7 @@ private: int m_lastSelectedDeviceIndex = -1; bool m_enableEncryptionWidget = false; + bool m_preCheckEncryption = false; QMutex m_coreMutex; }; diff --git a/src/modules/partition/gui/EncryptWidget.cpp b/src/modules/partition/gui/EncryptWidget.cpp index 176a7c610..3d5f122f2 100644 --- a/src/modules/partition/gui/EncryptWidget.cpp +++ b/src/modules/partition/gui/EncryptWidget.cpp @@ -70,6 +70,11 @@ EncryptWidget::EncryptWidget( QWidget* parent ) CALAMARES_RETRANSLATE_SLOT( &EncryptWidget::retranslate ); } +void EncryptWidget::setEncryptionCheckbox( bool preCheckEncrypt) +{ + m_ui->m_encryptCheckBox->setChecked( preCheckEncrypt ); +} + void EncryptWidget::reset( bool checkVisible ) { diff --git a/src/modules/partition/gui/EncryptWidget.h b/src/modules/partition/gui/EncryptWidget.h index 9669b4d21..8833f61ad 100644 --- a/src/modules/partition/gui/EncryptWidget.h +++ b/src/modules/partition/gui/EncryptWidget.h @@ -36,6 +36,7 @@ public: explicit EncryptWidget( QWidget* parent = nullptr ); + void setEncryptionCheckbox( bool preCheckEncrypt = false); void reset( bool checkVisible = true ); Encryption state() const; diff --git a/src/modules/partition/partition.conf b/src/modules/partition/partition.conf index 0975179de..3d335432f 100644 --- a/src/modules/partition/partition.conf +++ b/src/modules/partition/partition.conf @@ -240,6 +240,11 @@ defaultFileSystemType: "ext4" # If nothing is specified, LUKS is enabled in automated modes. #enableLuksAutomatedPartitioning: true +# When enableLuksAutomatedPartitioning is true, this option will pre-check +# encryption checkbox. This option is only usefull to help people to not forget +# to cypher their disk when installing in enterprise (for exemple). +#preCheckEncryption: false + # Partition layout. # # This optional setting specifies a custom partition layout. diff --git a/src/modules/partition/partition.schema.yaml b/src/modules/partition/partition.schema.yaml index 769c1abae..65bc723f5 100644 --- a/src/modules/partition/partition.schema.yaml +++ b/src/modules/partition/partition.schema.yaml @@ -34,6 +34,7 @@ properties: luksGeneration: { type: string, enum: [luks1, luks2] } # Also allows "luks" as alias of "luks1" enableLuksAutomatedPartitioning: { type: boolean, default: false } + preCheckEncryption: { type: boolean, default: false } allowManualPartitioning: { type: boolean, default: true } showNotEncryptedBootMessage: { type: boolean, default: true }