window-dock.cpp 952 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "window-dock.hpp"
  2. #include "obs-app.hpp"
  3. #include <QMessageBox>
  4. #include <QCheckBox>
  5. void OBSDock::closeEvent(QCloseEvent *event)
  6. {
  7. auto msgBox = []() {
  8. QMessageBox msgbox(App()->GetMainWindow());
  9. msgbox.setWindowTitle(QTStr("DockCloseWarning.Title"));
  10. msgbox.setText(QTStr("DockCloseWarning.Text"));
  11. msgbox.setIcon(QMessageBox::Icon::Information);
  12. msgbox.addButton(QMessageBox::Ok);
  13. QCheckBox *cb = new QCheckBox(QTStr("DoNotShowAgain"));
  14. msgbox.setCheckBox(cb);
  15. msgbox.exec();
  16. if (cb->isChecked()) {
  17. config_set_bool(App()->GlobalConfig(), "General",
  18. "WarnedAboutClosingDocks", true);
  19. config_save_safe(App()->GlobalConfig(), "tmp", nullptr);
  20. }
  21. };
  22. bool warned = config_get_bool(App()->GlobalConfig(), "General",
  23. "WarnedAboutClosingDocks");
  24. if (!warned) {
  25. QMetaObject::invokeMethod(App(), "Exec", Qt::QueuedConnection,
  26. Q_ARG(VoidFunc, msgBox));
  27. }
  28. QDockWidget::closeEvent(event);
  29. }