From 173f8b093f5af4be0044e49ce59f1dbce4023ed6 Mon Sep 17 00:00:00 2001 From: Si Yong Kim Date: Mon, 8 Feb 2021 09:02:12 -0800 Subject: [PATCH] Refactor apply button logics on options dialog --- src/gui/optionsdialog.cpp | 45 +++++++++++++++------------------------ src/gui/optionsdialog.h | 5 ++--- 2 files changed, 19 insertions(+), 31 deletions(-) diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index 20119e850..064e1daa3 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -233,15 +233,8 @@ OptionsDialog::OptionsDialog(QWidget *parent) m_ui->hsplitter->setCollapsible(0, false); m_ui->hsplitter->setCollapsible(1, false); // Get apply button in button box - const QList buttons = m_ui->buttonBox->buttons(); - for (QAbstractButton *button : buttons) - { - if (m_ui->buttonBox->buttonRole(button) == QDialogButtonBox::ApplyRole) - { - m_applyButton = button; - break; - } - } + m_applyButton = m_ui->buttonBox->button(QDialogButtonBox::Apply); + connect(m_applyButton, &QPushButton::clicked, this, &OptionsDialog::applySettings); m_ui->scanFoldersView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); m_ui->scanFoldersView->setModel(ScanFoldersModel::instance()); @@ -249,7 +242,6 @@ OptionsDialog::OptionsDialog(QWidget *parent) connect(ScanFoldersModel::instance(), &QAbstractListModel::dataChanged, this, &ThisType::enableApplyButton); connect(m_ui->scanFoldersView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &ThisType::handleScanFolderViewSelectionChanged); - connect(m_ui->buttonBox, &QDialogButtonBox::clicked, this, &OptionsDialog::applySettings); // Languages supported initializeLanguageCombo(); @@ -1439,27 +1431,24 @@ void OptionsDialog::on_buttonBox_accepted() accept(); } -void OptionsDialog::applySettings(QAbstractButton *button) +void OptionsDialog::applySettings() { - if (button == m_applyButton) + if (!schedTimesOk()) { - if (!schedTimesOk()) - { - m_ui->tabSelection->setCurrentRow(TAB_SPEED); - return; - } - if (!webUIAuthenticationOk()) - { - m_ui->tabSelection->setCurrentRow(TAB_WEBUI); - return; - } - if (!isAlternativeWebUIPathValid()) - { - m_ui->tabSelection->setCurrentRow(TAB_WEBUI); - return; - } - saveOptions(); + m_ui->tabSelection->setCurrentRow(TAB_SPEED); + return; + } + if (!webUIAuthenticationOk()) + { + m_ui->tabSelection->setCurrentRow(TAB_WEBUI); + return; + } + if (!isAlternativeWebUIPathValid()) + { + m_ui->tabSelection->setCurrentRow(TAB_WEBUI); + return; } + saveOptions(); } void OptionsDialog::closeEvent(QCloseEvent *e) diff --git a/src/gui/optionsdialog.h b/src/gui/optionsdialog.h index 8479c450a..b9c374be3 100644 --- a/src/gui/optionsdialog.h +++ b/src/gui/optionsdialog.h @@ -32,7 +32,6 @@ #include "base/settingvalue.h" -class QAbstractButton; class QCloseEvent; class QListWidgetItem; @@ -95,7 +94,7 @@ private slots: void on_buttonBox_accepted(); void closeEvent(QCloseEvent *e) override; void on_buttonBox_rejected(); - void applySettings(QAbstractButton *button); + void applySettings(); void enableApplyButton(); void toggleComboRatioLimitAct(); void changePage(QListWidgetItem *, QListWidgetItem *); @@ -181,7 +180,7 @@ private: SettingValue m_storeDialogSize; SettingValue m_storeHSplitterSize; - QAbstractButton *m_applyButton; + QPushButton *m_applyButton; AdvancedSettings *m_advancedSettings;