From 644b73eb461c39e15778974927d7b6178da5be15 Mon Sep 17 00:00:00 2001 From: derrod Date: Sun, 29 Jan 2023 13:40:59 +0100 Subject: [PATCH] UI: Add confirmation dialog for resetting properties --- UI/data/locale/en-US.ini | 4 ++++ UI/window-basic-filters.cpp | 14 ++++++++++++++ UI/window-basic-properties.cpp | 14 ++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index 4e0b39f58..67496c3dc 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -382,6 +382,10 @@ ConfirmRemove.Title="Confirm Remove" ConfirmRemove.Text="Are you sure you wish to remove '%1'?" ConfirmRemove.TextMultiple="Are you sure you wish to remove %1 items?" +# confirm reset to defaults dialog box +ConfirmReset.Title="Reset Properties" +ConfirmReset.Text="Are you sure you wish to reset current properties to their defaults?" + # output start messages Output.StartStreamFailed="Failed to start streaming" Output.StartRecordingFailed="Failed to start recording" diff --git a/UI/window-basic-filters.cpp b/UI/window-basic-filters.cpp index bbff8c23a..266a10e64 100644 --- a/UI/window-basic-filters.cpp +++ b/UI/window-basic-filters.cpp @@ -1184,6 +1184,17 @@ void OBSBasicFilters::EffectFilterNameEdited( UNUSED_PARAMETER(endHint); } +static bool ConfirmReset(QWidget *parent) +{ + QMessageBox::StandardButton button; + + button = OBSMessageBox::question(parent, QTStr("ConfirmReset.Title"), + QTStr("ConfirmReset.Text"), + QMessageBox::Yes | QMessageBox::No); + + return button == QMessageBox::Yes; +} + void OBSBasicFilters::ResetFilters() { QListWidget *list = isAsync ? ui->asyncFilters : ui->effectFilters; @@ -1194,6 +1205,9 @@ void OBSBasicFilters::ResetFilters() if (!filter) return; + if (!ConfirmReset(this)) + return; + OBSDataAutoRelease settings = obs_source_get_settings(filter); OBSDataAutoRelease empty_settings = obs_data_create(); diff --git a/UI/window-basic-properties.cpp b/UI/window-basic-properties.cpp index 8dce819a1..145b2efc0 100644 --- a/UI/window-basic-properties.cpp +++ b/UI/window-basic-properties.cpp @@ -301,6 +301,17 @@ void OBSBasicProperties::UpdateProperties(void *data, calldata_t *) "ReloadProperties"); } +static bool ConfirmReset(QWidget *parent) +{ + QMessageBox::StandardButton button; + + button = OBSMessageBox::question(parent, QTStr("ConfirmReset.Title"), + QTStr("ConfirmReset.Text"), + QMessageBox::Yes | QMessageBox::No); + + return button == QMessageBox::Yes; +} + void OBSBasicProperties::on_buttonBox_clicked(QAbstractButton *button) { QDialogButtonBox::ButtonRole val = ui->buttonBox->buttonRole(button); @@ -362,6 +373,9 @@ void OBSBasicProperties::on_buttonBox_clicked(QAbstractButton *button) close(); } else if (val == QDialogButtonBox::ResetRole) { + if (!ConfirmReset(this)) + return; + OBSDataAutoRelease settings = obs_source_get_settings(source); obs_data_clear(settings);