Refactor apply button logics on options dialog

This commit is contained in:
Si Yong Kim 2021-02-08 09:02:12 -08:00
parent e6033c952e
commit 173f8b093f
2 changed files with 19 additions and 31 deletions

View file

@ -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<QAbstractButton *> 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)

View file

@ -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<QSize> m_storeDialogSize;
SettingValue<QStringList> m_storeHSplitterSize;
QAbstractButton *m_applyButton;
QPushButton *m_applyButton;
AdvancedSettings *m_advancedSettings;