瀏覽代碼

UI: Add confirmation dialog for resetting properties

derrod 2 年之前
父節點
當前提交
644b73eb46
共有 3 個文件被更改,包括 32 次插入0 次删除
  1. 4 0
      UI/data/locale/en-US.ini
  2. 14 0
      UI/window-basic-filters.cpp
  3. 14 0
      UI/window-basic-properties.cpp

+ 4 - 0
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"

+ 14 - 0
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();

+ 14 - 0
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);