Commit 6a4e4569 authored by Sandro Knauß's avatar Sandro Knauß 🐝
Browse files

Make one setting page for encryption settings.

parent 04b5047d
......@@ -355,10 +355,9 @@ qt_add_dbus_interfaces(kmailprivate_LIB_SRCS
ki18n_wrap_ui(kmailprivate
ui/composercryptoconfiguration.ui
ui/warningconfiguration.ui
ui/smimeconfiguration.ui
ui/miscpagemaintab.ui
ui/securitypageencryptiontab.ui
ui/securitypagegeneraltab.ui
ui/securitypagemdntab.ui
ui/identitypage.ui
......
......@@ -48,17 +48,11 @@ SecurityPage::SecurityPage(QWidget *parent, const QVariantList &args)
addTab(new SecurityPageMDNTab(), i18n("Message Disposition Notifications"));
//
// "Composing" tab:
// "Encryption" tab:
//
auto composerCryptoTab = new SecurityPageComposerCryptoTab();
addTab(composerCryptoTab, i18n("Composing"));
//
// "Warnings" tab:
//
auto warningTab = new SecurityPageWarningTab();
addTab(warningTab, i18n("Miscellaneous"));
auto encryptionTab = new SecurityPageEncryptionTab();
addTab(encryptionTab, i18n("Encryption"));
//
// "S/MIME Validation" tab:
//
......@@ -217,98 +211,53 @@ void SecurityPageMDNTab::save()
saveCheckBox(mUi.mNoMDNsWhenEncryptedCheck, MessageViewer::MessageViewerSettings::self()->notSendWhenEncryptedItem());
}
QString SecurityPageComposerCryptoTab::helpAnchor() const
QString SecurityPageEncryptionTab::helpAnchor() const
{
return QStringLiteral("configure-security-composing");
}
SecurityPageComposerCryptoTab::SecurityPageComposerCryptoTab(QWidget *parent)
SecurityPageEncryptionTab::SecurityPageEncryptionTab(QWidget *parent)
: ConfigModuleTab(parent)
{
mWidget = new Ui::ComposerCryptoConfiguration;
mWidget = new Ui::SecurityPageEncryptionTab;
mWidget->setupUi(this);
connect(mWidget->mEncToSelf, &QCheckBox::toggled, this, &SecurityPageComposerCryptoTab::slotEmitChanged);
connect(mWidget->mShowKeyApprovalDlg, &QCheckBox::toggled, this, &SecurityPageComposerCryptoTab::slotEmitChanged);
connect(mWidget->mAlwaysEncryptWhenSavingInDrafts, &QCheckBox::toggled, this, &SecurityPageComposerCryptoTab::slotEmitChanged);
connect(mWidget->mStoreEncrypted, &QCheckBox::toggled, this, &SecurityPageComposerCryptoTab::slotEmitChanged);
connect(mWidget->mShowEncSignIndicator, &QCheckBox::toggled, this, &SecurityPageComposerCryptoTab::slotEmitChanged);
}
SecurityPageComposerCryptoTab::~SecurityPageComposerCryptoTab()
connect(mWidget->mEncToSelf, &QCheckBox::toggled, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mShowKeyApprovalDlg, &QCheckBox::toggled, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mAlwaysEncryptWhenSavingInDrafts, &QCheckBox::toggled, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mStoreEncrypted, &QCheckBox::toggled, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mShowEncSignIndicator, &QCheckBox::toggled, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->warnGroupBox, &QGroupBox::toggled, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mWarnUnsigned, &QCheckBox::toggled, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->warnUnencryptedCB, &QCheckBox::toggled, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mWarnSignKeyExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mWarnEncrKeyExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mWarnEncrChainCertExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mWarnSignChainCertExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mWarnSignRootCertExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->mWarnEncrRootCertExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageEncryptionTab::slotEmitChanged);
connect(mWidget->gnupgButton, &QPushButton::clicked, this, &SecurityPageEncryptionTab::slotConfigureGnupg);
connect(mWidget->enableAllWarningsPB, &QPushButton::clicked, this, &SecurityPageEncryptionTab::slotReenableAllWarningsClicked);
}
SecurityPageEncryptionTab::~SecurityPageEncryptionTab()
{
delete mWidget;
}
void SecurityPageComposerCryptoTab::doLoadOther()
void SecurityPageEncryptionTab::doLoadFromGlobalSettings()
{
// If you change default values, sync messagecomposer.cpp too
loadWidget(mWidget->mEncToSelf, MessageComposer::MessageComposerSettings::self()->cryptoEncryptToSelfItem());
loadWidget(mWidget->mShowKeyApprovalDlg, MessageComposer::MessageComposerSettings::self()->cryptoShowKeysForApprovalItem());
loadWidget(mWidget->mAlwaysEncryptWhenSavingInDrafts, KMailSettings::self()->alwaysEncryptDraftsItem());
loadWidget(mWidget->mStoreEncrypted, KMailSettings::self()->cryptoStoreEncryptedItem());
loadWidget(mWidget->mShowEncSignIndicator, KMailSettings::self()->showCryptoLabelIndicatorItem());
}
void SecurityPageComposerCryptoTab::save()
{
saveCheckBox(mWidget->mEncToSelf, MessageComposer::MessageComposerSettings::self()->cryptoEncryptToSelfItem());
saveCheckBox(mWidget->mShowKeyApprovalDlg, MessageComposer::MessageComposerSettings::self()->cryptoShowKeysForApprovalItem());
saveCheckBox(mWidget->mAlwaysEncryptWhenSavingInDrafts, KMailSettings::self()->alwaysEncryptDraftsItem());
saveCheckBox(mWidget->mStoreEncrypted, KMailSettings::self()->cryptoStoreEncryptedItem());
saveCheckBox(mWidget->mShowEncSignIndicator, KMailSettings::self()->showCryptoLabelIndicatorItem());
}
void SecurityPageComposerCryptoTab::doLoadFromGlobalSettings()
{
loadWidget(mWidget->mEncToSelf, MessageComposer::MessageComposerSettings::self()->cryptoEncryptToSelfItem());
loadWidget(mWidget->mShowKeyApprovalDlg, MessageComposer::MessageComposerSettings::self()->cryptoShowKeysForApprovalItem());
loadWidget(mWidget->mAlwaysEncryptWhenSavingInDrafts, KMailSettings::self()->alwaysEncryptDraftsItem());
loadWidget(mWidget->mStoreEncrypted, KMailSettings::self()->cryptoStoreEncryptedItem());
loadWidget(mWidget->mShowEncSignIndicator, KMailSettings::self()->showCryptoLabelIndicatorItem());
}
QString SecurityPageWarningTab::helpAnchor() const
{
return QStringLiteral("configure-security-warnings");
}
SecurityPageWarningTab::SecurityPageWarningTab(QWidget *parent)
: ConfigModuleTab(parent)
{
mWidget = new Ui::WarningConfiguration;
mWidget->setupUi(this);
connect(mWidget->warnGroupBox, &QGroupBox::toggled, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->mWarnUnsigned, &QCheckBox::toggled, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->warnUnencryptedCB, &QCheckBox::toggled, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->mWarnSignKeyExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->mWarnEncrKeyExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->mWarnEncrChainCertExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->mWarnSignChainCertExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->mWarnSignRootCertExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->mWarnEncrRootCertExpiresSB, &KPluralHandlingSpinBox::valueChanged, this, &SecurityPageWarningTab::slotEmitChanged);
connect(mWidget->gnupgButton, &QPushButton::clicked, this, &SecurityPageWarningTab::slotConfigureGnupg);
connect(mWidget->enableAllWarningsPB, &QPushButton::clicked, this, &SecurityPageWarningTab::slotReenableAllWarningsClicked);
}
SecurityPageWarningTab::~SecurityPageWarningTab()
{
delete mWidget;
}
void SecurityPageWarningTab::doLoadFromGlobalSettings()
{
loadWidget(mWidget->warnUnencryptedCB, MessageComposer::MessageComposerSettings::self()->cryptoWarningUnencryptedItem());
loadWidget(mWidget->mWarnUnsigned, MessageComposer::MessageComposerSettings::self()->cryptoWarningUnsignedItem());
// The "-int" part of the key name is because there used to be a separate boolean
// config entry for enabling/disabling. This is done with the single bool value now.
mWidget->warnGroupBox->setChecked(MessageComposer::MessageComposerSettings::self()->cryptoWarnWhenNearExpire());
loadWidget(mWidget->mWarnSignKeyExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnSignKeyNearExpiryThresholdDaysItem());
......@@ -319,25 +268,35 @@ void SecurityPageWarningTab::doLoadFromGlobalSettings()
loadWidget(mWidget->mWarnEncrRootCertExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnEncrRootNearExpiryThresholdDaysItem());
}
void SecurityPageWarningTab::doLoadOther()
void SecurityPageEncryptionTab::doLoadOther()
{
loadWidget(mWidget->mEncToSelf, MessageComposer::MessageComposerSettings::self()->cryptoEncryptToSelfItem());
loadWidget(mWidget->mShowKeyApprovalDlg, MessageComposer::MessageComposerSettings::self()->cryptoShowKeysForApprovalItem());
loadWidget(mWidget->mAlwaysEncryptWhenSavingInDrafts, KMailSettings::self()->alwaysEncryptDraftsItem());
loadWidget(mWidget->mStoreEncrypted, KMailSettings::self()->cryptoStoreEncryptedItem());
loadWidget(mWidget->mShowEncSignIndicator, KMailSettings::self()->showCryptoLabelIndicatorItem());
loadWidget(mWidget->warnUnencryptedCB, MessageComposer::MessageComposerSettings::self()->cryptoWarningUnencryptedItem());
loadWidget(mWidget->mWarnUnsigned, MessageComposer::MessageComposerSettings::self()->cryptoWarningUnsignedItem());
// The "-int" part of the key name is because there used to be a separate boolean
// config entry for enabling/disabling. This is done with the single bool value now.
mWidget->warnGroupBox->setChecked(MessageComposer::MessageComposerSettings::self()->cryptoWarnWhenNearExpire());
loadWidget(mWidget->mWarnSignOwnKeyExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnSignKeyNearExpiryThresholdDaysItem());
mWidget->mWarnSignOwnKeyExpiresSB->setSuffix(ki18np(" day", " days"));
loadWidget(mWidget->mWarnSignKeyExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnSignKeyNearExpiryThresholdDaysItem());
mWidget->mWarnSignKeyExpiresSB->setSuffix(ki18np(" day", " days"));
loadWidget(mWidget->mWarnSignChainCertExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnSignChaincertNearExpiryThresholdDaysItem());
mWidget->mWarnSignChainCertExpiresSB->setSuffix(ki18np(" day", " days"));
loadWidget(mWidget->mWarnSignRootCertExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnSignRootNearExpiryThresholdDaysItem());
mWidget->mWarnSignRootCertExpiresSB->setSuffix(ki18np(" day", " days"));
loadWidget(mWidget->mWarnEncrOwnKeyExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnSignKeyNearExpiryThresholdDaysItem());
mWidget->mWarnEncrOwnKeyExpiresSB->setSuffix(ki18np(" day", " days"));
loadWidget(mWidget->mWarnEncrKeyExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnEncrKeyNearExpiryThresholdDaysItem());
mWidget->mWarnEncrKeyExpiresSB->setSuffix(ki18np(" day", " days"));
loadWidget(mWidget->mWarnEncrChainCertExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnEncrChaincertNearExpiryThresholdDaysItem());
mWidget->mWarnEncrChainCertExpiresSB->setSuffix(ki18np(" day", " days"));
loadWidget(mWidget->mWarnEncrRootCertExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnEncrRootNearExpiryThresholdDaysItem());
......@@ -346,8 +305,15 @@ void SecurityPageWarningTab::doLoadOther()
mWidget->enableAllWarningsPB->setEnabled(true);
}
void SecurityPageWarningTab::save()
void SecurityPageEncryptionTab::save()
{
saveCheckBox(mWidget->mEncToSelf, MessageComposer::MessageComposerSettings::self()->cryptoEncryptToSelfItem());
saveCheckBox(mWidget->mShowKeyApprovalDlg, MessageComposer::MessageComposerSettings::self()->cryptoShowKeysForApprovalItem());
saveCheckBox(mWidget->mAlwaysEncryptWhenSavingInDrafts, KMailSettings::self()->alwaysEncryptDraftsItem());
saveCheckBox(mWidget->mStoreEncrypted, KMailSettings::self()->cryptoStoreEncryptedItem());
saveCheckBox(mWidget->mShowEncSignIndicator, KMailSettings::self()->showCryptoLabelIndicatorItem());
saveCheckBox(mWidget->warnUnencryptedCB, MessageComposer::MessageComposerSettings::self()->cryptoWarningUnencryptedItem());
saveCheckBox(mWidget->mWarnUnsigned, MessageComposer::MessageComposerSettings::self()->cryptoWarningUnsignedItem());
......@@ -361,13 +327,13 @@ void SecurityPageWarningTab::save()
saveSpinBox(mWidget->mWarnEncrRootCertExpiresSB, MessageComposer::MessageComposerSettings::self()->cryptoWarnEncrRootNearExpiryThresholdDaysItem());
}
void SecurityPageWarningTab::slotReenableAllWarningsClicked()
void SecurityPageEncryptionTab::slotReenableAllWarningsClicked()
{
KMessageBox::enableAllMessages();
mWidget->enableAllWarningsPB->setEnabled(false);
}
void SecurityPageWarningTab::slotConfigureGnupg()
void SecurityPageEncryptionTab::slotConfigureGnupg()
{
QPointer<GpgSettingsDialog> dlg(new GpgSettingsDialog(this));
dlg->setWindowTitle(i18nc("@title:window", "GnuPG Settings"));
......
......@@ -8,11 +8,10 @@
#include "configuredialog_p.h"
#include "kmail_export.h"
#include "ui_composercryptoconfiguration.h"
#include "ui_securitypageencryptiontab.h"
#include "ui_securitypagegeneraltab.h"
#include "ui_securitypagemdntab.h"
#include "ui_smimeconfiguration.h"
#include "ui_warningconfiguration.h"
#include <KCMultiDialog>
......@@ -58,31 +57,12 @@ private:
Ui_SecurityPageMDNTab mUi;
};
class SecurityPageComposerCryptoTab : public ConfigModuleTab
class SecurityPageEncryptionTab : public ConfigModuleTab
{
Q_OBJECT
public:
explicit SecurityPageComposerCryptoTab(QWidget *parent = nullptr);
~SecurityPageComposerCryptoTab() override;
Q_REQUIRED_RESULT QString helpAnchor() const;
void save() override;
private:
void doLoadFromGlobalSettings() override;
void doLoadOther() override;
private:
Ui::ComposerCryptoConfiguration *mWidget = nullptr;
};
class SecurityPageWarningTab : public ConfigModuleTab
{
Q_OBJECT
public:
explicit SecurityPageWarningTab(QWidget *parent = nullptr);
~SecurityPageWarningTab() override;
explicit SecurityPageEncryptionTab(QWidget *parent = nullptr);
~SecurityPageEncryptionTab() override;
Q_REQUIRED_RESULT QString helpAnchor() const;
......@@ -95,7 +75,7 @@ private:
void doLoadOther() override;
private:
Ui::WarningConfiguration *mWidget = nullptr;
Ui::SecurityPageEncryptionTab *mWidget = nullptr;
};
class SecurityPageSMimeTab : public ConfigModuleTab
......
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ComposerCryptoConfiguration</class>
<widget class="QWidget" name="ComposerCryptoConfiguration">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>581</width>
<height>318</height>
</rect>
</property>
<layout class="QVBoxLayout">
<item>
<widget class="QGroupBox" name="optionsGroup">
<property name="title">
<string>Encrypting</string>
</property>
<layout class="QVBoxLayout">
<item>
<widget class="QCheckBox" name="mEncToSelf">
<property name="whatsThis">
<string>When this option is enabled, the message/file will not only be encrypted with the receiver's public key, but also with your key. This will enable you to decrypt the message/file at a later time. This is generally a good idea.</string>
</property>
<property name="text">
<string>When encrypting emails, always also encr&amp;ypt to the certificate of my own identity</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mStoreEncrypted">
<property name="toolTip">
<string>Check to store messages encrypted </string>
</property>
<property name="whatsThis">
<string>&lt;qt&gt;
&lt;h1&gt;Store Messages Encrypted&lt;/h1&gt;
When this box is checked, sent messages are stored encrypted like they were sent. This is not recommended, as you will not be able to read the messages any longer if a necessary certificate expires.
&lt;p&gt;
However, there may be local rules that require you to turn this option on. When in doubt, check with your local administrator.
&lt;/p&gt;&lt;/qt&gt;</string>
</property>
<property name="text">
<string>Store sent messages encry&amp;pted</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mShowKeyApprovalDlg">
<property name="whatsThis">
<string>When this option is enabled, the application will always show you a list of public keys from which you can choose the one it will use for encryption. If it is off, the application will only show the dialog if it cannot find the right key or if there are several which could be used.</string>
</property>
<property name="text">
<string>Always show the encryption keys &amp;for approval</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mAlwaysEncryptWhenSavingInDrafts">
<property name="text">
<string>When sa&amp;ving as draft, sign/encrypt as indicated</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mShowEncSignIndicator">
<property name="text">
<string>Show sign/encrypt indicator in editor</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="spacer22">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<tabstops>
<tabstop>mEncToSelf</tabstop>
<tabstop>mStoreEncrypted</tabstop>
<tabstop>mShowKeyApprovalDlg</tabstop>
<tabstop>mAlwaysEncryptWhenSavingInDrafts</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SecurityPageEncryptionTab</class>
<widget class="QWidget" name="SecurityPageEncryptionTab">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>581</width>
<height>757</height>
</rect>
</property>
<layout class="QVBoxLayout">
<item>
<widget class="QGroupBox" name="optionsGroup">
<property name="title">
<string>Security defaults</string>
</property>
<layout class="QVBoxLayout">
<item>
<widget class="QCheckBox" name="mEncToSelf">
<property name="whatsThis">
<string>When this option is enabled, the message/file will not only be encrypted with the receiver's public key, but also with your key. This will enable you to decrypt the message/file at a later time. This is generally a good idea.</string>
</property>
<property name="text">
<string>When encrypting emails, always also encr&amp;ypt to the certificate of my own identity</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mStoreEncrypted">
<property name="toolTip">
<string>Check to store messages encrypted </string>
</property>
<property name="whatsThis">
<string>&lt;qt&gt;
&lt;h1&gt;Store Messages Encrypted&lt;/h1&gt;
When this box is checked, sent messages are stored encrypted like they were sent. This is not recommended, as you will not be able to read the messages any longer if a necessary certificate expires.
&lt;p&gt;
However, there may be local rules that require you to turn this option on. When in doubt, check with your local administrator.
&lt;/p&gt;&lt;/qt&gt;</string>
</property>
<property name="text">
<string>Store sent messages encry&amp;pted</string>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mShowKeyApprovalDlg">
<property name="whatsThis">
<string>When this option is enabled, the application will always show you a list of public keys from which you can choose the one it will use for encryption. If it is off, the application will only show the dialog if it cannot find the right key or if there are several which could be used.</string>
</property>
<property name="text">
<string>Always show the encryption keys &amp;for approval</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mAlwaysEncryptWhenSavingInDrafts">
<property name="text">
<string>When sa&amp;ving as draft, sign/encrypt as indicated</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mShowEncSignIndicator">
<property name="text">
<string>Show sign/encrypt indicator in editor</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="optionsGroup2">
<property name="title">
<string>Encryption indicators</string>
</property>
<layout class="QVBoxLayout">
<item>
<widget class="QCheckBox" name="mShowEncSignIndicator2">
<property name="text">
<string>Show sign/encrypt indicator</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mShowEncSignIndicator3">
<property name="text">
<string>Show encryption key ownertrust level</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="optionsGroup3">
<property name="title">
<string>Alerts</string>
</property>
<layout class="QVBoxLayout">
<item>
<widget class="QCheckBox" name="mShowEncSignIndicator4">
<property name="text">
<string>Always approve encryption keys before send</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="mWarnUnsigned">
<property name="text">
<string>Warn when tryping to send unsigned messages</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="warnUnencryptedCB">
<property name="text">
<string>Warn when tryping to send unencrypted messages</string>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="warnGroupBox">
<property name="title">
<string>Warn if certificates/ke&amp;ys expire soon (configure thresholds below)</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="_2">
<item row="0" column="2">
<widget class="QLabel" name="textLabel2_2">
<property name="text">
<string>For Encryption</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="textLabel1">
<property name="text">
<string>For end-user certificates/&amp;keys:</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
<property name="buddy">
<cstring>mWarnSignKeyExpiresSB</cstring>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="KPluralHandlingSpinBox" name="mWarnEncrRootCertExpiresSB">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>110</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Select the number of days here</string>
</property>
<property name="whatsThis">
<string>&lt;qt&gt;
&lt;h1&gt;Warn If Root Certificate Expires&lt;/h1&gt;
Select the minimum number of days the root certificate should be valid without issuing a warning.
&lt;p&gt;
The recommended SPHINX setting is 14 days.
&lt;/p&gt;&lt;/qt&gt;</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>999</number>
</property>
<property name="value">
<number>14</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="KPluralHandlingSpinBox" name="mWarnSignKeyExpiresSB">
<property name="minimumSize">
<size>