提交 c76b7cbf 编写于 作者: S Socapex

Improved settings usability.

Don't ask user to save changes every item switch.
Apply button greyed out when there are no changes.
上级 6f832575
...@@ -158,6 +158,9 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) ...@@ -158,6 +158,9 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
HookWidget(ui->fpsNumerator, SCROLL_CHANGED, VIDEO_CHANGED); HookWidget(ui->fpsNumerator, SCROLL_CHANGED, VIDEO_CHANGED);
HookWidget(ui->fpsDenominator, SCROLL_CHANGED, VIDEO_CHANGED); HookWidget(ui->fpsDenominator, SCROLL_CHANGED, VIDEO_CHANGED);
//Apply button disabled until change.
EnableApplyButton(false);
LoadServiceTypes(); LoadServiceTypes();
LoadServiceInfo(); LoadServiceInfo();
LoadSettings(false); LoadSettings(false);
...@@ -664,11 +667,6 @@ void OBSBasicSettings::on_listWidget_itemSelectionChanged() ...@@ -664,11 +667,6 @@ void OBSBasicSettings::on_listWidget_itemSelectionChanged()
if (loading || row == pageIndex) if (loading || row == pageIndex)
return; return;
if (Changed() && !QueryChanges()) {
ui->listWidget->setCurrentRow(pageIndex);
return;
}
pageIndex = row; pageIndex = row;
} }
...@@ -744,20 +742,26 @@ void OBSBasicSettings::on_baseResolution_editTextChanged(const QString &text) ...@@ -744,20 +742,26 @@ void OBSBasicSettings::on_baseResolution_editTextChanged(const QString &text)
void OBSBasicSettings::GeneralChanged() void OBSBasicSettings::GeneralChanged()
{ {
if (!loading) if (!loading) {
generalChanged = true; generalChanged = true;
EnableApplyButton(true);
}
} }
void OBSBasicSettings::OutputsChanged() void OBSBasicSettings::OutputsChanged()
{ {
if (!loading) if (!loading) {
outputsChanged = true; outputsChanged = true;
EnableApplyButton(true);
}
} }
void OBSBasicSettings::AudioChanged() void OBSBasicSettings::AudioChanged()
{ {
if (!loading) if (!loading) {
audioChanged = true; audioChanged = true;
EnableApplyButton(true);
}
} }
void OBSBasicSettings::AudioChangedRestart() void OBSBasicSettings::AudioChangedRestart()
...@@ -765,6 +769,7 @@ void OBSBasicSettings::AudioChangedRestart() ...@@ -765,6 +769,7 @@ void OBSBasicSettings::AudioChangedRestart()
if (!loading) { if (!loading) {
audioChanged = true; audioChanged = true;
ui->audioMsg->setText(QTStr("Basic.Settings.ProgramRestart")); ui->audioMsg->setText(QTStr("Basic.Settings.ProgramRestart"));
EnableApplyButton(true);
} }
} }
...@@ -773,17 +778,22 @@ void OBSBasicSettings::VideoChangedRestart() ...@@ -773,17 +778,22 @@ void OBSBasicSettings::VideoChangedRestart()
if (!loading) { if (!loading) {
videoChanged = true; videoChanged = true;
ui->videoMsg->setText(QTStr("Basic.Settings.ProgramRestart")); ui->videoMsg->setText(QTStr("Basic.Settings.ProgramRestart"));
EnableApplyButton(true);
} }
} }
void OBSBasicSettings::VideoChangedResolution() void OBSBasicSettings::VideoChangedResolution()
{ {
if (!loading && ValidResolutions(ui.get())) if (!loading && ValidResolutions(ui.get())) {
videoChanged = true; videoChanged = true;
EnableApplyButton(true);
}
} }
void OBSBasicSettings::VideoChanged() void OBSBasicSettings::VideoChanged()
{ {
if (!loading) if (!loading) {
videoChanged = true; videoChanged = true;
EnableApplyButton(true);
}
} }
...@@ -53,12 +53,18 @@ private: ...@@ -53,12 +53,18 @@ private:
audioChanged || videoChanged; audioChanged || videoChanged;
} }
inline void EnableApplyButton(bool en)
{
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(en);
}
inline void ClearChanged() inline void ClearChanged()
{ {
generalChanged = false; generalChanged = false;
outputsChanged = false; outputsChanged = false;
audioChanged = false; audioChanged = false;
videoChanged = false; videoChanged = false;
EnableApplyButton(false);
} }
void HookWidget(QWidget *widget, const char *signal, const char *slot); void HookWidget(QWidget *widget, const char *signal, const char *slot);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册