From 0a2a90811b94ad7c5e840c736e126844c187bfcc Mon Sep 17 00:00:00 2001 From: Aaron Rainbolt Date: Wed, 8 Nov 2023 14:57:19 -0600 Subject: [PATCH] Enhancements to UI functionality, document some of NetworkManagerQt's behavior --- connectionsettingsengine.cpp | 14 +++++----- security802_1xtab.cpp | 51 ++++++++++++++++++++++++++++++++++++ security802_1xtab.h | 8 ++++++ security802_1xtab.ui | 2 +- 4 files changed, 68 insertions(+), 7 deletions(-) diff --git a/connectionsettingsengine.cpp b/connectionsettingsengine.cpp index 985616f..89eb68b 100644 --- a/connectionsettingsengine.cpp +++ b/connectionsettingsengine.cpp @@ -20,15 +20,17 @@ QString ConnectionSettingsEngine::targetConnUuidStr = QString(); * * All things IPv4: * - * !ipv4Method: ConnectionSettingsEngine::Ipv4Method - * !ipv4DnsServers: QString - * !ipv4SearchDomains: QString - * !ipv4DhcpClientId: QString - * !ipv4AddressList: QList - * !ipv4Required: bool + * ipv4Method: ConnectionSettingsEngine::Ipv4Method + * ipv4DnsServers: QString + * ipv4SearchDomains: QString + * ipv4DhcpClientId: QString + * ipv4AddressList: QList + * ipv4Required: bool * * All things 802.1x: * + * NOTE: File names begin with "file://"! + * * 802.1xEnabled: bool * 802.1xAuthMode: ConnectionSettingsEngine::Security802_1xAuthMode * 802.1xPasswordStore: ConnectionSettingsEngine::Security802_1xPasswordStoreMode diff --git a/security802_1xtab.cpp b/security802_1xtab.cpp index e94d672..22ceab8 100644 --- a/security802_1xtab.cpp +++ b/security802_1xtab.cpp @@ -9,6 +9,7 @@ Security802_1xTab::Security802_1xTab(QWidget *parent) : ui->setupUi(this); connect(ui->enable802_1xCheckBox, &QCheckBox::stateChanged, this, &Security802_1xTab::onEnable802_1xCheckBoxToggled); onEnable802_1xCheckBoxToggled(Qt::Unchecked); + onFastAutoPacProvisionCheckBoxToggled(Qt::Unchecked); QStringList passwordStoreItems; passwordStoreItems.append(tr("Store password for all users (not encrypted)")); passwordStoreItems.append(tr("Store password for this user (encrypted)")); @@ -30,6 +31,13 @@ Security802_1xTab::Security802_1xTab(QWidget *parent) : connect(ui->fastShowPasswordCheckBox, &QCheckBox::stateChanged, this, &Security802_1xTab::onFastShowPasswordCheckBoxToggled); connect(ui->ttlsShowPasswordCheckBox, &QCheckBox::stateChanged, this, &Security802_1xTab::onTtlsShowPasswordCheckBoxToggled); connect(ui->peapShowPasswordCheckBox, &QCheckBox::stateChanged, this, &Security802_1xTab::onPeapShowPasswordCheckBoxToggled); + connect(ui->fastAutoPacProvisionCheckBox, &QCheckBox::stateChanged, this, &Security802_1xTab::onFastAutoPacProvisionCheckBoxToggled); + connect(ui->tlsCaCertificateOpenFileButton, &QPushButton::clicked, this, &Security802_1xTab::onTlsCaCertificateOpenFileButtonClicked); + connect(ui->tlsUserCertificateOpenFileButton, &QPushButton::clicked, this, &Security802_1xTab::onTlsUserCertificateOpenFileButtonClicked); + connect(ui->tlsUserPrivateKeyOpenFileButton, &QPushButton::clicked, this, &Security802_1xTab::onTlsUserPrivateKeyOpenFileButtonClicked); + connect(ui->fastPacFileOpenFileButton, &QPushButton::clicked, this, &Security802_1xTab::onFastPacFileOpenFileButtonClicked); + connect(ui->ttlsCaCertificateOpenFileButton, &QPushButton::clicked, this, &Security802_1xTab::onTtlsCaCertificateOpenFileButtonClicked); + connect(ui->peapCaCertificateOpenFileButton, &QPushButton::clicked, this, &Security802_1xTab::onPeapCaCertificateOpenFileButtonClicked); } Security802_1xTab::~Security802_1xTab() @@ -294,6 +302,7 @@ void Security802_1xTab::loadSettings(QVariantMap settings) ui->fastAutoPacProvisionCheckBox->setChecked(false); break; } + onFastAutoPacProvisionCheckBoxToggled(ui->fastAutoPacProvisionCheckBox->checkState()); ui->fastPacFileLineEdit->setText(settings["802.1xFastPacFile"].toString()); switch (settings["802.1xFastAuthMethod"].toInt()) { case ConnectionSettingsEngine::Security802_1xAuthMethodGtc: @@ -480,3 +489,45 @@ void Security802_1xTab::onPeapShowPasswordCheckBoxToggled(int state) break; } } + +void Security802_1xTab::onFastAutoPacProvisionCheckBoxToggled(int state) +{ + switch (state) { + case Qt::Checked: + ui->fastAutoPacProvisionComboBox->setEnabled(true); + break; + case Qt::Unchecked: + ui->fastAutoPacProvisionComboBox->setEnabled(false); + break; + } +} + +void Security802_1xTab::onTlsCaCertificateOpenFileButtonClicked() +{ + ui->tlsCaCertificateLineEdit->setText(QFileDialog::getOpenFileUrl(this, tr("Open CA Certificate"), QUrl("file:///home")).toString()); +} + +void Security802_1xTab::onTlsUserCertificateOpenFileButtonClicked() +{ + ui->tlsUserCertificateLineEdit->setText(QFileDialog::getOpenFileUrl(this, tr("Open User Certificate"), QUrl("file:///home")).toString()); +} + +void Security802_1xTab::onTlsUserPrivateKeyOpenFileButtonClicked() +{ + ui->tlsUserPrivateKeyLineEdit->setText(QFileDialog::getOpenFileUrl(this, tr("Open User Private Key"), QUrl("file:///home")).toString()); +} + +void Security802_1xTab::onFastPacFileOpenFileButtonClicked() +{ + ui->fastPacFileLineEdit->setText(QFileDialog::getOpenFileUrl(this, tr("Open PAC File"), QUrl("file:///home")).toString()); +} + +void Security802_1xTab::onTtlsCaCertificateOpenFileButtonClicked() +{ + ui->ttlsCaCertificateLineEdit->setText(QFileDialog::getOpenFileUrl(this, tr("Open CA Certificate"), QUrl("file:///home")).toString()); +} + +void Security802_1xTab::onPeapCaCertificateOpenFileButtonClicked() +{ + ui->peapCaCertificateLineEdit->setText(QFileDialog::getOpenFileUrl(this, tr("Open CA Certificate"), QUrl("file:///home")).toString()); +} diff --git a/security802_1xtab.h b/security802_1xtab.h index 3d46b0d..cfef5cd 100644 --- a/security802_1xtab.h +++ b/security802_1xtab.h @@ -3,6 +3,7 @@ #include "connectionsettingsengine.h" #include +#include namespace Ui { class Security802_1xTab; @@ -27,6 +28,13 @@ private slots: void onFastShowPasswordCheckBoxToggled(int state); void onTtlsShowPasswordCheckBoxToggled(int state); void onPeapShowPasswordCheckBoxToggled(int state); + void onFastAutoPacProvisionCheckBoxToggled(int state); + void onTlsCaCertificateOpenFileButtonClicked(); + void onTlsUserCertificateOpenFileButtonClicked(); + void onTlsUserPrivateKeyOpenFileButtonClicked(); + void onFastPacFileOpenFileButtonClicked(); + void onTtlsCaCertificateOpenFileButtonClicked(); + void onPeapCaCertificateOpenFileButtonClicked(); private: Ui::Security802_1xTab *ui; diff --git a/security802_1xtab.ui b/security802_1xtab.ui index 471efd1..0949100 100644 --- a/security802_1xtab.ui +++ b/security802_1xtab.ui @@ -31,7 +31,7 @@ - 1 + 3