diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index e70b1b92b..ba3deb9ca 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -85,6 +85,7 @@ StudioMode.Program="Program" ShowInMultiview="Show in Multiview" VerticalLayout="Vertical Layout" Group="Group" +DoNotShowAgain="Do not show again" # warning if program already open AlreadyRunning.Title="OBS is already running" diff --git a/UI/window-dock.cpp b/UI/window-dock.cpp index 365c221f3..840c4f7f7 100644 --- a/UI/window-dock.cpp +++ b/UI/window-dock.cpp @@ -2,14 +2,28 @@ #include "obs-app.hpp" #include +#include void OBSDock::closeEvent(QCloseEvent *event) { auto msgBox = [] () { - QMessageBox::information(App()->GetMainWindow(), - QTStr("DockCloseWarning.Title"), - QTStr("DockCloseWarning.Text")); + QMessageBox msgbox(App()->GetMainWindow()); + msgbox.setWindowTitle(QTStr("DockCloseWarning.Title")); + msgbox.setText(QTStr("DockCloseWarning.Text")); + msgbox.setIcon(QMessageBox::Icon::Information); + msgbox.addButton(QMessageBox::Ok); + + QCheckBox *cb = new QCheckBox(QTStr("DoNotShowAgain")); + msgbox.setCheckBox(cb); + + msgbox.exec(); + + if (cb->isChecked()) { + config_set_bool(App()->GlobalConfig(), "General", + "WarnedAboutClosingDocks", true); + config_save_safe(App()->GlobalConfig(), "tmp", nullptr); + } }; bool warned = config_get_bool(App()->GlobalConfig(), "General", @@ -18,9 +32,6 @@ void OBSDock::closeEvent(QCloseEvent *event) QMetaObject::invokeMethod(App(), "Exec", Qt::QueuedConnection, Q_ARG(VoidFunc, msgBox)); - config_set_bool(App()->GlobalConfig(), "General", - "WarnedAboutClosingDocks", true); - config_save_safe(App()->GlobalConfig(), "tmp", nullptr); } QDockWidget::closeEvent(event);