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(QWidget * parent,const char * text)11 OBSCrashReport::OBSCrashReport(QWidget *parent, const char *text)
12 : QDialog(parent)
13 {
14 QPushButton *copyButton = new QPushButton;
15 copyButton->setText("Copy crash log");
16
17 QPushButton *exitButton = new QPushButton;
18 exitButton->setText("Exit");
19
20 textBox = new QPlainTextEdit;
21 textBox->setPlainText(QT_UTF8(text));
22 textBox->setLineWrapMode(QPlainTextEdit::NoWrap);
23 textBox->setFont(QFontDatabase::systemFont(QFontDatabase::FixedFont));
24
25 QHBoxLayout *buttonLayout = new QHBoxLayout;
26 buttonLayout->addWidget(copyButton);
27 buttonLayout->addWidget(exitButton);
28
29 QVBoxLayout *mainLayout = new QVBoxLayout;
30 mainLayout->addWidget(textBox);
31 mainLayout->addItem(buttonLayout);
32
33 setLayout(mainLayout);
34
35 QWidget::connect(copyButton, SIGNAL(clicked()), this,
36 SLOT(CopyClicked()));
37 QWidget::connect(exitButton, SIGNAL(clicked()), this,
38 SLOT(ExitClicked()));
39
40 resize(800, 600);
41 setWindowTitle("Oops, OBS has crashed!");
42 }
43
ExitClicked()44 void OBSCrashReport::ExitClicked()
45 {
46 exit(-1);
47 }
48
CopyClicked()49 void OBSCrashReport::CopyClicked()
50 {
51 QApplication::clipboard()->setText(textBox->toPlainText());
52 }
53