refactor: SettingsDialog, add reset to default button
This commit is contained in:
parent
58963de10f
commit
208556b5aa
9 changed files with 105 additions and 1 deletions
|
|
@ -85,6 +85,10 @@ void SettingsDialog::initConnections() const
|
||||||
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::accept);
|
connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &SettingsDialog::accept);
|
||||||
connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
||||||
connect(ui->buttonBox->button(QDialogButtonBox::Reset), &QPushButton::clicked, this, &SettingsDialog::loadFromConfig);
|
connect(ui->buttonBox->button(QDialogButtonBox::Reset), &QPushButton::clicked, this, &SettingsDialog::loadFromConfig);
|
||||||
|
connect(
|
||||||
|
ui->buttonBox->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked, this,
|
||||||
|
&SettingsDialog::resetToDefault
|
||||||
|
);
|
||||||
|
|
||||||
connect(ui->groupSecurity, &QGroupBox::toggled, this, &SettingsDialog::updateTlsControlsEnabled);
|
connect(ui->groupSecurity, &QGroupBox::toggled, this, &SettingsDialog::updateTlsControlsEnabled);
|
||||||
connect(ui->groupService, &QGroupBox::toggled, this, &SettingsDialog::updateControls);
|
connect(ui->groupService, &QGroupBox::toggled, this, &SettingsDialog::updateControls);
|
||||||
|
|
@ -191,6 +195,7 @@ void SettingsDialog::updateText()
|
||||||
ui->buttonBox->button(QDialogButtonBox::Save)->setToolTip(tr("Close and save changes"));
|
ui->buttonBox->button(QDialogButtonBox::Save)->setToolTip(tr("Close and save changes"));
|
||||||
ui->buttonBox->button(QDialogButtonBox::Cancel)->setToolTip(tr("Close and forget changes"));
|
ui->buttonBox->button(QDialogButtonBox::Cancel)->setToolTip(tr("Close and forget changes"));
|
||||||
ui->buttonBox->button(QDialogButtonBox::Reset)->setToolTip(tr("Reset to stored values"));
|
ui->buttonBox->button(QDialogButtonBox::Reset)->setToolTip(tr("Reset to stored values"));
|
||||||
|
ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setToolTip(tr("Reset to default values"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsDialog::accept()
|
void SettingsDialog::accept()
|
||||||
|
|
@ -397,11 +402,75 @@ bool SettingsDialog::isModified() const
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SettingsDialog::isDefault() const
|
||||||
|
{
|
||||||
|
const auto processMode = Settings::defaultValue(Settings::Core::ProcessMode).value<Settings::ProcessMode>();
|
||||||
|
|
||||||
|
return (
|
||||||
|
(ui->sbPort->value() == Settings::defaultValue(Settings::Core::Port).toInt()) &&
|
||||||
|
(ui->comboLogLevel->currentIndex() == Settings::defaultValue(Settings::Log::Level).toInt()) &&
|
||||||
|
(ui->cbLogToFile->isChecked() == Settings::defaultValue(Settings::Log::ToFile).toBool()) &&
|
||||||
|
(ui->lineLogFilename->text() == Settings::defaultValue(Settings::Log::File).toString()) &&
|
||||||
|
(ui->cbAutoHide->isChecked() == Settings::defaultValue(Settings::Gui::Autohide).toBool()) &&
|
||||||
|
(ui->cbPreventSleep->isChecked() == Settings::defaultValue(Settings::Core::PreventSleep).toBool()) &&
|
||||||
|
(ui->cbCloseToTray->isChecked() == Settings::defaultValue(Settings::Gui::CloseToTray).toBool()) &&
|
||||||
|
(ui->cbElevateDaemon->isChecked() == Settings::defaultValue(Settings::Daemon::Elevate).toBool()) &&
|
||||||
|
(ui->cbAutoUpdate->isChecked() == Settings::defaultValue(Settings::Gui::AutoUpdateCheck).toBool()) &&
|
||||||
|
(ui->cbGuiDebug->isChecked() == Settings::defaultValue(Settings::Log::GuiDebug).toBool()) &&
|
||||||
|
(ui->cbUseWlClipboard->isChecked() == Settings::defaultValue(Settings::Core::UseWlClipboard).toBool()) &&
|
||||||
|
(ui->cbShowVersion->isChecked() == Settings::defaultValue(Settings::Gui::ShowVersionInTitle).toBool()) &&
|
||||||
|
(ui->rbIconMono->isChecked() == Settings::defaultValue(Settings::Gui::SymbolicTrayIcon).toBool()) &&
|
||||||
|
(ui->groupService->isChecked() == (processMode == Settings::ProcessMode::Service)) &&
|
||||||
|
(ui->comboInterface->currentIndex() == 0) &&
|
||||||
|
(ui->lineTlsCertPath->text() == Settings::defaultValue(Settings::Security::Certificate).toString()) &&
|
||||||
|
(ui->comboTlsKeyLength->currentText() == Settings::defaultValue(Settings::Security::KeySize).toString()) &&
|
||||||
|
(ui->groupSecurity->isChecked() == Settings::defaultValue(Settings::Security::TlsEnabled).toBool()) &&
|
||||||
|
(ui->cbRequireClientCert->isChecked() == Settings::defaultValue(Settings::Security::CheckPeers).toBool()) &&
|
||||||
|
(ui->comboLanguage->currentText() == "English")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsDialog::resetToDefault()
|
||||||
|
{
|
||||||
|
ui->sbPort->setValue(Settings::defaultValue(Settings::Core::Port).toInt());
|
||||||
|
ui->comboLogLevel->setCurrentIndex(Settings::defaultValue(Settings::Log::Level).toInt());
|
||||||
|
ui->cbLogToFile->setChecked(Settings::defaultValue(Settings::Log::ToFile).toBool());
|
||||||
|
ui->lineLogFilename->setText(Settings::defaultValue(Settings::Log::File).toString());
|
||||||
|
ui->cbAutoHide->setChecked(Settings::defaultValue(Settings::Gui::Autohide).toBool());
|
||||||
|
ui->cbPreventSleep->setChecked(Settings::defaultValue(Settings::Core::PreventSleep).toBool());
|
||||||
|
ui->cbCloseToTray->setChecked(Settings::defaultValue(Settings::Gui::CloseToTray).toBool());
|
||||||
|
ui->cbElevateDaemon->setChecked(Settings::defaultValue(Settings::Daemon::Elevate).toBool());
|
||||||
|
ui->cbAutoUpdate->setChecked(Settings::defaultValue(Settings::Gui::AutoUpdateCheck).toBool());
|
||||||
|
ui->cbGuiDebug->setChecked(Settings::defaultValue(Settings::Log::GuiDebug).toBool());
|
||||||
|
ui->cbUseWlClipboard->setChecked(Settings::defaultValue(Settings::Core::UseWlClipboard).toBool());
|
||||||
|
ui->cbShowVersion->setChecked(Settings::defaultValue(Settings::Gui::ShowVersionInTitle).toBool());
|
||||||
|
|
||||||
|
const auto processMode = Settings::defaultValue(Settings::Core::ProcessMode).value<Settings::ProcessMode>();
|
||||||
|
ui->groupService->setChecked(processMode == Settings::ProcessMode::Service);
|
||||||
|
|
||||||
|
if (!deskflow::platform::isWindows())
|
||||||
|
ui->groupService->setVisible(false);
|
||||||
|
|
||||||
|
if (Settings::defaultValue(Settings::Gui::SymbolicTrayIcon).toBool())
|
||||||
|
ui->rbIconMono->setChecked(true);
|
||||||
|
else
|
||||||
|
ui->rbIconColorful->setChecked(true);
|
||||||
|
|
||||||
|
ui->lblDebugWarning->setVisible(false);
|
||||||
|
|
||||||
|
ui->comboInterface->setCurrentIndex(0);
|
||||||
|
|
||||||
|
qDebug() << "reset to default values";
|
||||||
|
updateControls();
|
||||||
|
setButtonBoxEnabledButtons();
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsDialog::setButtonBoxEnabledButtons() const
|
void SettingsDialog::setButtonBoxEnabledButtons() const
|
||||||
{
|
{
|
||||||
const bool modified = isModified();
|
const bool modified = isModified();
|
||||||
ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(modified);
|
ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(modified);
|
||||||
ui->buttonBox->button(QDialogButtonBox::Reset)->setEnabled(modified);
|
ui->buttonBox->button(QDialogButtonBox::Reset)->setEnabled(modified);
|
||||||
|
ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setEnabled(!isDefault());
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsDialog::~SettingsDialog() = default;
|
SettingsDialog::~SettingsDialog() = default;
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,17 @@ private:
|
||||||
*/
|
*/
|
||||||
bool isModified() const;
|
bool isModified() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief isDefault
|
||||||
|
* @return true if all client settings match the default values
|
||||||
|
*/
|
||||||
|
bool isDefault() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set the gui values to the defalut values for all client settings
|
||||||
|
*/
|
||||||
|
void resetToDefault();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief setButtonBoxEnabledButtons
|
* @brief setButtonBoxEnabledButtons
|
||||||
* Enable / Disable the button box buttons based on the state of the gui
|
* Enable / Disable the button box buttons based on the state of the gui
|
||||||
|
|
|
||||||
|
|
@ -711,7 +711,7 @@
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
<property name="standardButtons">
|
||||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Reset|QDialogButtonBox::StandardButton::Save</set>
|
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Reset|QDialogButtonBox::StandardButton::RestoreDefaults|QDialogButtonBox::StandardButton::Save</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
||||||
|
|
@ -1327,6 +1327,10 @@ Al habilitar esta opción, se deshabilitará la interfaz gráfica de usuario (GU
|
||||||
<source>Reset to stored values</source>
|
<source>Reset to stored values</source>
|
||||||
<translation type="unfinished">Restablecer los valores almacenados</translation>
|
<translation type="unfinished">Restablecer los valores almacenados</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset to default values</source>
|
||||||
|
<translation type="unfinished">Restablecer valores predeterminados</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>TLS Certificate Regenerated</source>
|
<source>TLS Certificate Regenerated</source>
|
||||||
<translation type="unfinished">Certificado TLS regenerado</translation>
|
<translation type="unfinished">Certificado TLS regenerado</translation>
|
||||||
|
|
|
||||||
|
|
@ -1327,6 +1327,10 @@ L'abilitazione di questa impostazione disabiliterà l'interfaccia graf
|
||||||
<source>Reset to stored values</source>
|
<source>Reset to stored values</source>
|
||||||
<translation type="unfinished">Ripristina i valori memorizzati</translation>
|
<translation type="unfinished">Ripristina i valori memorizzati</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset to default values</source>
|
||||||
|
<translation type="unfinished">Ripristina i valori predefiniti</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>TLS Certificate Regenerated</source>
|
<source>TLS Certificate Regenerated</source>
|
||||||
<translation>Certificato TLS rigenerato</translation>
|
<translation>Certificato TLS rigenerato</translation>
|
||||||
|
|
|
||||||
|
|
@ -1356,6 +1356,10 @@ Enabling this setting will disable the server config GUI.</source>
|
||||||
<source>Reset to stored values</source>
|
<source>Reset to stored values</source>
|
||||||
<translation>変更前の値にリセットする</translation>
|
<translation>変更前の値にリセットする</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset to default values</source>
|
||||||
|
<translation>デフォルト値にリセットする</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable wl-clipboard support</source>
|
<source>Enable wl-clipboard support</source>
|
||||||
<translation>wl-clipboard によるクリップボード対応を有効にする</translation>
|
<translation>wl-clipboard によるクリップボード対応を有効にする</translation>
|
||||||
|
|
|
||||||
|
|
@ -1354,6 +1354,10 @@ Enabling this setting will disable the server config GUI.</source>
|
||||||
<source>Reset to stored values</source>
|
<source>Reset to stored values</source>
|
||||||
<translation type="unfinished">저장된 값으로 재설정</translation>
|
<translation type="unfinished">저장된 값으로 재설정</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset to default values</source>
|
||||||
|
<translation type="unfinished">기본값으로 재설정</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable wl-clipboard support</source>
|
<source>Enable wl-clipboard support</source>
|
||||||
<translation>wl-clipboard 지원 사용</translation>
|
<translation>wl-clipboard 지원 사용</translation>
|
||||||
|
|
|
||||||
|
|
@ -1358,6 +1358,10 @@ Enabling this setting will disable the server config GUI.</source>
|
||||||
<source>Reset to stored values</source>
|
<source>Reset to stored values</source>
|
||||||
<translation type="unfinished">Сбросить до сохраненных значений</translation>
|
<translation type="unfinished">Сбросить до сохраненных значений</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset to default values</source>
|
||||||
|
<translation type="unfinished">Сбросить до значений по умолчанию</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><html><head/><body><p>Requires the wl-clipboard package</p><p>When using wl-clipboard v2.2.1, there is a focus stealing bug that may make Deskflow harder to use. This has been fixed when using the wl-clipboard master branch, unless your Compositor lacks wlroots-data-control protocol support.</p></body></html></source>
|
<source><html><head/><body><p>Requires the wl-clipboard package</p><p>When using wl-clipboard v2.2.1, there is a focus stealing bug that may make Deskflow harder to use. This has been fixed when using the wl-clipboard master branch, unless your Compositor lacks wlroots-data-control protocol support.</p></body></html></source>
|
||||||
<translation><html><head/><body><p>Требуется пакет wl-clipboard. В версии 2.2.1 есть ошибка перехвата фокуса.</p></body></html></translation>
|
<translation><html><head/><body><p>Требуется пакет wl-clipboard. В версии 2.2.1 есть ошибка перехвата фокуса.</p></body></html></translation>
|
||||||
|
|
|
||||||
|
|
@ -1356,6 +1356,10 @@ Enabling this setting will disable the server config GUI.</source>
|
||||||
<source>Reset to stored values</source>
|
<source>Reset to stored values</source>
|
||||||
<translation type="unfinished">重置为存储值</translation>
|
<translation type="unfinished">重置为存储值</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Reset to default values</source>
|
||||||
|
<translation type="unfinished">重置为默认值</translation>
|
||||||
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Enable wl-clipboard support</source>
|
<source>Enable wl-clipboard support</source>
|
||||||
<translation>启用 wl-clipboard 支持</translation>
|
<translation>启用 wl-clipboard 支持</translation>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue