crash-report.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "crash-report.hpp"
  2. #include <QApplication>
  3. #include <QFontDatabase>
  4. #include <QPushButton>
  5. #include <QVBoxLayout>
  6. #include <QHBoxLayout>
  7. #include <QClipboard>
  8. #include "qt-wrappers.hpp"
  9. #include "plain-text-edit.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 OBSPlainTextEdit;
  18. textBox->setPlainText(QT_UTF8(text));
  19. textBox->setLineWrapMode(QPlainTextEdit::NoWrap);
  20. QHBoxLayout *buttonLayout = new QHBoxLayout;
  21. buttonLayout->addWidget(copyButton);
  22. buttonLayout->addWidget(exitButton);
  23. QVBoxLayout *mainLayout = new QVBoxLayout;
  24. mainLayout->addWidget(textBox);
  25. mainLayout->addItem(buttonLayout);
  26. setLayout(mainLayout);
  27. QWidget::connect(copyButton, SIGNAL(clicked()), this,
  28. SLOT(CopyClicked()));
  29. QWidget::connect(exitButton, SIGNAL(clicked()), this,
  30. SLOT(ExitClicked()));
  31. resize(800, 600);
  32. setWindowTitle("Oops, OBS has crashed!");
  33. }
  34. void OBSCrashReport::ExitClicked()
  35. {
  36. exit(-1);
  37. }
  38. void OBSCrashReport::CopyClicked()
  39. {
  40. QApplication::clipboard()->setText(textBox->toPlainText());
  41. }