OBSWhatsNew.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include "OBSWhatsNew.hpp"
  2. #include <widgets/OBSBasic.hpp>
  3. #ifdef BROWSER_AVAILABLE
  4. #include <browser-panel.hpp>
  5. extern QCef *cef;
  6. #endif
  7. #include <QHBoxLayout>
  8. #include <QPushButton>
  9. #include <QVBoxLayout>
  10. #include "moc_OBSWhatsNew.cpp"
  11. OBSWhatsNew::OBSWhatsNew(QWidget *parent, const std::string &url) : QDialog(parent)
  12. {
  13. #ifdef BROWSER_AVAILABLE
  14. if (!cef) {
  15. return;
  16. }
  17. setWindowTitle("What's New");
  18. setAttribute(Qt::WA_DeleteOnClose, true);
  19. resize(700, 600);
  20. Qt::WindowFlags flags = windowFlags();
  21. Qt::WindowFlags helpFlag = Qt::WindowContextHelpButtonHint;
  22. setWindowFlags(flags & (~helpFlag));
  23. OBSBasic::InitBrowserPanelSafeBlock();
  24. cefWidget = cef->create_widget(nullptr, url);
  25. if (!cefWidget) {
  26. return;
  27. }
  28. connect(cefWidget, &QCefWidget::titleChanged, this, &OBSWhatsNew::setWindowTitle);
  29. QPushButton *close = new QPushButton(QTStr("Close"));
  30. connect(close, &QAbstractButton::clicked, this, &QDialog::accept);
  31. QHBoxLayout *bottomLayout = new QHBoxLayout();
  32. bottomLayout->addStretch();
  33. bottomLayout->addWidget(close);
  34. bottomLayout->addStretch();
  35. QVBoxLayout *topLayout = new QVBoxLayout(this);
  36. topLayout->addWidget(cefWidget);
  37. topLayout->addLayout(bottomLayout);
  38. show();
  39. #else
  40. UNUSED_PARAMETER(url);
  41. #endif
  42. }
  43. OBSWhatsNew::~OBSWhatsNew() {}
  44. void OBSWhatsNew::reject()
  45. {
  46. #ifdef BROWSER_AVAILABLE
  47. delete cefWidget;
  48. #endif
  49. QDialog::reject();
  50. }
  51. void OBSWhatsNew::accept()
  52. {
  53. #ifdef BROWSER_AVAILABLE
  54. delete cefWidget;
  55. #endif
  56. QDialog::accept();
  57. }