SYNERGY-799 Update security controls enabling logic

This commit is contained in:
Serhii Hadzhilov 2021-04-15 16:02:37 +03:00
parent fe28d4c126
commit db2cb8954d
3 changed files with 26 additions and 14 deletions

View File

@ -17,7 +17,7 @@
<item>
<widget class="QTabWidget" name="m_pTabWidget">
<property name="currentIndex">
<number>3</number>
<number>0</number>
</property>
<widget class="QWidget" name="m_pTabScreens">
<attribute name="title">

View File

@ -208,6 +208,7 @@ void SettingsDialog::on_m_pCheckBoxLogToFile_stateChanged(int i)
{
bool checked = i == 2;
m_pLabelLogPath->setEnabled(checked);
m_pLineEditLogFilename->setEnabled(checked);
m_pButtonBrowseLog->setEnabled(checked);
buttonBox->button(QDialogButtonBox::Save)->setEnabled(isModified());
@ -235,13 +236,14 @@ void SettingsDialog::on_m_pComboLanguage_currentIndexChanged(int index)
void SettingsDialog::on_m_pCheckBoxEnableCrypto_toggled(bool checked)
{
m_pLabelKeyLength->setEnabled(checked);
m_pComboBoxKeyLength->setEnabled(checked);
m_pLabelCertificate->setEnabled(checked);
m_pLineEditCertificatePath->setEnabled(checked);
m_pPushButtonBrowseCert->setEnabled(checked);
m_pPushButtonRegenCert->setEnabled(checked);
buttonBox->button(QDialogButtonBox::Save)->setEnabled(isModified());
if (checked) {
verticalSpacer_4->changeSize(10, 10, QSizePolicy::Minimum);
} else {
verticalSpacer_4->changeSize(10, 0, QSizePolicy::Ignored);
}
adjustSize();
}
void SettingsDialog::on_m_pLabelInstallBonjour_linkActivated(const QString&)
@ -287,10 +289,9 @@ void SettingsDialog::updateRegenButton() {
// Disable the Regenerate cert button if the key length is different to saved
auto keyChanged = appConfig().getTLSKeyLength() != m_pComboBoxKeyLength->currentText();
auto pathChanged = appConfig().getTLSCertPath() != m_pLineEditCertificatePath->text();
auto cryptoChanged = appConfig().getCryptoEnabled() != m_pCheckBoxEnableCrypto->isChecked();
//NOR the above bools, if any have changed regen should be disabled as it will be done on save
auto nor = !(keyChanged || pathChanged || cryptoChanged);
m_pPushButtonRegenCert->setEnabled(nor);
auto nor = !(keyChanged || pathChanged);
m_pPushButtonRegenCert->setEnabled(nor && m_pCheckBoxEnableCrypto->isChecked());
}
void SettingsDialog::on_m_pPushButtonRegenCert_clicked() {
@ -345,18 +346,29 @@ void SettingsDialog::enableControls(bool enable) {
m_labelAdminRightsMessage->setVisible(!enable);
if (enable) {
m_pLabelLogPath->setEnabled(m_pCheckBoxLogToFile->isChecked());
m_pLineEditLogFilename->setEnabled(m_pCheckBoxLogToFile->isChecked());
m_pButtonBrowseLog->setEnabled(m_pCheckBoxLogToFile->isChecked());
m_pCheckBoxEnableCrypto->setEnabled(m_appConfig.isCryptoAvailable());
m_pLabelKeyLength->setEnabled(m_pCheckBoxEnableCrypto->isChecked());
m_pComboBoxKeyLength->setEnabled(m_pCheckBoxEnableCrypto->isChecked());
m_pLabelCertificate->setEnabled(m_pCheckBoxEnableCrypto->isChecked());
m_pLineEditCertificatePath->setEnabled(m_pCheckBoxEnableCrypto->isChecked());
m_pPushButtonBrowseCert->setEnabled(m_pCheckBoxEnableCrypto->isChecked());
updateRegenButton();
}
else {
m_pLabelLogPath->setEnabled(enable);
m_pLineEditLogFilename->setEnabled(enable);
m_pButtonBrowseLog->setEnabled(enable);
m_pCheckBoxEnableCrypto->setEnabled(enable);
m_pLabelKeyLength->setEnabled(enable);
m_pComboBoxKeyLength->setEnabled(enable);
m_pLabelCertificate->setEnabled(enable);
m_pLineEditCertificatePath->setEnabled(enable);
m_pPushButtonBrowseCert->setEnabled(enable);
m_pPushButtonRegenCert->setEnabled(enable);
}
}
void SettingsDialog::onChange()

View File

@ -115,7 +115,7 @@
</spacer>
</item>
<item>
<widget class="QLabel" name="m_pLabel_29">
<widget class="QLabel" name="m_pLabelKeyLength">
<property name="text">
<string>Key length</string>
</property>
@ -151,7 +151,7 @@
<number>0</number>
</property>
<item>
<widget class="QLabel" name="m_pLabel_30">
<widget class="QLabel" name="m_pLabelCertificate">
<property name="text">
<string>Certificate</string>
</property>
@ -776,7 +776,7 @@ font-weight: bold;</string>
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label">
<widget class="QLabel" name="m_pLabelLogPath">
<property name="text">
<string>Log path</string>
</property>