diff --git a/src/modules/partition/gui/EncryptWidget.cpp b/src/modules/partition/gui/EncryptWidget.cpp index ee50e7d66..e62ae512e 100644 --- a/src/modules/partition/gui/EncryptWidget.cpp +++ b/src/modules/partition/gui/EncryptWidget.cpp @@ -13,9 +13,26 @@ #include "ui_EncryptWidget.h" +#include "Branding.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Retranslator.h" +/** @brief Does this system support whole-disk encryption? + * + * Returns @c true if the system is likely to support encryption + * with sufficient performance to be usable. A machine that can't + * doe hardware-assisted AES is **probably** too slow, so we could + * warn the user that ticking the "encrypt system" box is a bad + * idea. + * + * Since we don't have an oracle that can answer that question, + * just pretend every system can do it. + */ +static inline bool systemSupportsEncryptionAcceptably() +{ + return true; +} + EncryptWidget::EncryptWidget( QWidget* parent ) : QWidget( parent ) , m_ui( new Ui::EncryptWidget ) @@ -27,6 +44,18 @@ EncryptWidget::EncryptWidget( QWidget* parent ) m_ui->m_passphraseLineEdit->hide(); m_ui->m_confirmLineEdit->hide(); m_ui->m_iconLabel->hide(); + // TODO: this deserves better rendering, an icon or something, but that will + // depend on having a non-bogus implementation of systemSupportsEncryptionAcceptably + if ( systemSupportsEncryptionAcceptably() ) + { + m_ui->m_encryptionUnsupportedLabel->hide(); + } + else + { + // This is really ugly, but the character is unicode "unlocked" + m_ui->m_encryptionUnsupportedLabel->setText( QStringLiteral("🔓") ); + m_ui->m_encryptionUnsupportedLabel->show(); + } connect( m_ui->m_encryptCheckBox, &QCheckBox::stateChanged, this, &EncryptWidget::onCheckBoxStateChanged ); connect( m_ui->m_passphraseLineEdit, &QLineEdit::textEdited, this, &EncryptWidget::onPassphraseEdited ); diff --git a/src/modules/partition/gui/EncryptWidget.ui b/src/modules/partition/gui/EncryptWidget.ui index 212300291..a629163d3 100644 --- a/src/modules/partition/gui/EncryptWidget.ui +++ b/src/modules/partition/gui/EncryptWidget.ui @@ -37,6 +37,19 @@ SPDX-License-Identifier: GPL-3.0-or-later + + + + Your system does not seem to support encryption well enough to encrypt the entire system. You may enable encryption, but performance may suffer. + + + 🔓 + + + Qt::AlignCenter + + + @@ -57,6 +70,19 @@ SPDX-License-Identifier: GPL-3.0-or-later + + + + Qt::Horizontal + + + + 40 + 20 + + + +