1
0

crash-report.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "crash-report.hpp"
  2. #include <QApplication>
  3. #include <QFontDatabase>
  4. #include <QPlainTextEdit>
  5. #include <QPushButton>
  6. #include <QVBoxLayout>
  7. #include <QHBoxLayout>
  8. #include <QClipboard>
  9. #include "qt-wrappers.hpp"
  10. OBSCrashReport::OBSCrashReport(QWidget *parent, const char *text)
  11. : QDialog(parent)
  12. {
  13. QPushButton *copyButton = new QPushButton;
  14. copyButton->setText("Copy crash log");
  15. QPushButton *exitButton = new QPushButton;
  16. exitButton->setText("Exit");
  17. textBox = new QPlainTextEdit;
  18. textBox->setPlainText(QT_UTF8(text));
  19. textBox->setLineWrapMode(QPlainTextEdit::NoWrap);
  20. textBox->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
  21. QHBoxLayout *buttonLayout = new QHBoxLayout;
  22. buttonLayout->addWidget(copyButton);
  23. buttonLayout->addWidget(exitButton);
  24. QVBoxLayout *mainLayout = new QVBoxLayout;
  25. mainLayout->addWidget(textBox);
  26. mainLayout->addItem(buttonLayout);
  27. setLayout(mainLayout);
  28. QWidget::connect(copyButton, SIGNAL(clicked()), this,
  29. SLOT(CopyClicked()));
  30. QWidget::connect(exitButton, SIGNAL(clicked()), this,
  31. SLOT(ExitClicked()));
  32. resize(800, 600);
  33. setWindowTitle("Oops, OBS has crashed!");
  34. }
  35. void OBSCrashReport::ExitClicked()
  36. {
  37. exit(-1);
  38. }
  39. void OBSCrashReport::CopyClicked()
  40. {
  41. QApplication::clipboard()->setText(textBox->toPlainText());
  42. }