From ab09e56d56325b0cb6c532655cf3f3da465995a9 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Sun, 8 Mar 2020 00:00:28 +0200 Subject: [PATCH] dont close settings dialog with Enter key --- app/settings/settingsdialog.cpp | 22 ++++++++++++++++++---- app/settings/settingsdialog.h | 4 +++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/app/settings/settingsdialog.cpp b/app/settings/settingsdialog.cpp index 375d9284c..0521f12e8 100644 --- a/app/settings/settingsdialog.cpp +++ b/app/settings/settingsdialog.cpp @@ -93,6 +93,10 @@ SettingsDialog::SettingsDialog(QWidget *parent, Latte::Corona *corona) connect(ui->buttonBox->button(QDialogButtonBox::Apply), &QPushButton::clicked , this, &SettingsDialog::apply); + connect(ui->buttonBox->button(QDialogButtonBox::Cancel), &QPushButton::clicked + , this, &SettingsDialog::cancel); + connect(ui->buttonBox->button(QDialogButtonBox::Ok), &QPushButton::clicked + , this, &SettingsDialog::ok); connect(ui->buttonBox->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked , this, &SettingsDialog::restoreDefaults); @@ -823,21 +827,31 @@ void SettingsDialog::requestColorsDialog(int row) } } - void SettingsDialog::accept() { + //! disable accept totally in order to avoid closing with ENTER key with no real reason qDebug() << Q_FUNC_INFO; +} - if (saveAllChanges()) { + +void SettingsDialog::cancel() +{ + qDebug() << Q_FUNC_INFO; + + if (!m_blockDeleteOnReject) { deleteLater(); } } -void SettingsDialog::reject() +void SettingsDialog::ok() { + if (!ui->buttonBox->button(QDialogButtonBox::Ok)->hasFocus()) { + return; + } + qDebug() << Q_FUNC_INFO; - if (!m_blockDeleteOnReject) { + if (saveAllChanges()) { deleteLater(); } } diff --git a/app/settings/settingsdialog.h b/app/settings/settingsdialog.h index 5cade509e..deb6ab0f3 100644 --- a/app/settings/settingsdialog.h +++ b/app/settings/settingsdialog.h @@ -95,7 +95,9 @@ private slots: void on_exportButton_clicked(); void accept() override; - void reject() override; + + void ok(); + void cancel(); void apply(); void restoreDefaults(); void showLayoutInformation();