Browse Source

Refactor apply button logics on options dialog

adaptive-webui-19844
Si Yong Kim 4 years ago
parent
commit
173f8b093f
  1. 45
      src/gui/optionsdialog.cpp
  2. 5
      src/gui/optionsdialog.h

45
src/gui/optionsdialog.cpp

@ -233,15 +233,8 @@ OptionsDialog::OptionsDialog(QWidget *parent)
m_ui->hsplitter->setCollapsible(0, false); m_ui->hsplitter->setCollapsible(0, false);
m_ui->hsplitter->setCollapsible(1, false); m_ui->hsplitter->setCollapsible(1, false);
// Get apply button in button box // Get apply button in button box
const QList<QAbstractButton *> buttons = m_ui->buttonBox->buttons(); m_applyButton = m_ui->buttonBox->button(QDialogButtonBox::Apply);
for (QAbstractButton *button : buttons) connect(m_applyButton, &QPushButton::clicked, this, &OptionsDialog::applySettings);
{
if (m_ui->buttonBox->buttonRole(button) == QDialogButtonBox::ApplyRole)
{
m_applyButton = button;
break;
}
}
m_ui->scanFoldersView->header()->setSectionResizeMode(QHeaderView::ResizeToContents); m_ui->scanFoldersView->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
m_ui->scanFoldersView->setModel(ScanFoldersModel::instance()); m_ui->scanFoldersView->setModel(ScanFoldersModel::instance());
@ -249,7 +242,6 @@ OptionsDialog::OptionsDialog(QWidget *parent)
connect(ScanFoldersModel::instance(), &QAbstractListModel::dataChanged, this, &ThisType::enableApplyButton); connect(ScanFoldersModel::instance(), &QAbstractListModel::dataChanged, this, &ThisType::enableApplyButton);
connect(m_ui->scanFoldersView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &ThisType::handleScanFolderViewSelectionChanged); connect(m_ui->scanFoldersView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &ThisType::handleScanFolderViewSelectionChanged);
connect(m_ui->buttonBox, &QDialogButtonBox::clicked, this, &OptionsDialog::applySettings);
// Languages supported // Languages supported
initializeLanguageCombo(); initializeLanguageCombo();
@ -1439,27 +1431,24 @@ void OptionsDialog::on_buttonBox_accepted()
accept(); accept();
} }
void OptionsDialog::applySettings(QAbstractButton *button) void OptionsDialog::applySettings()
{ {
if (button == m_applyButton) if (!schedTimesOk())
{ {
if (!schedTimesOk()) m_ui->tabSelection->setCurrentRow(TAB_SPEED);
{ return;
m_ui->tabSelection->setCurrentRow(TAB_SPEED); }
return; if (!webUIAuthenticationOk())
} {
if (!webUIAuthenticationOk()) m_ui->tabSelection->setCurrentRow(TAB_WEBUI);
{ return;
m_ui->tabSelection->setCurrentRow(TAB_WEBUI); }
return; if (!isAlternativeWebUIPathValid())
} {
if (!isAlternativeWebUIPathValid()) m_ui->tabSelection->setCurrentRow(TAB_WEBUI);
{ return;
m_ui->tabSelection->setCurrentRow(TAB_WEBUI);
return;
}
saveOptions();
} }
saveOptions();
} }
void OptionsDialog::closeEvent(QCloseEvent *e) void OptionsDialog::closeEvent(QCloseEvent *e)

5
src/gui/optionsdialog.h

@ -32,7 +32,6 @@
#include "base/settingvalue.h" #include "base/settingvalue.h"
class QAbstractButton;
class QCloseEvent; class QCloseEvent;
class QListWidgetItem; class QListWidgetItem;
@ -95,7 +94,7 @@ private slots:
void on_buttonBox_accepted(); void on_buttonBox_accepted();
void closeEvent(QCloseEvent *e) override; void closeEvent(QCloseEvent *e) override;
void on_buttonBox_rejected(); void on_buttonBox_rejected();
void applySettings(QAbstractButton *button); void applySettings();
void enableApplyButton(); void enableApplyButton();
void toggleComboRatioLimitAct(); void toggleComboRatioLimitAct();
void changePage(QListWidgetItem *, QListWidgetItem *); void changePage(QListWidgetItem *, QListWidgetItem *);
@ -181,7 +180,7 @@ private:
SettingValue<QSize> m_storeDialogSize; SettingValue<QSize> m_storeDialogSize;
SettingValue<QStringList> m_storeHSplitterSize; SettingValue<QStringList> m_storeHSplitterSize;
QAbstractButton *m_applyButton; QPushButton *m_applyButton;
AdvancedSettings *m_advancedSettings; AdvancedSettings *m_advancedSettings;

Loading…
Cancel
Save