1 files changed, 56 insertions, 0 deletions
diff --git a/src/dialogs/RawMessage.h b/src/dialogs/RawMessage.h
new file mode 100644
index 00000000..5a7335f4
--- /dev/null
+++ b/src/dialogs/RawMessage.h
@@ -0,0 +1,56 @@
+#pragma once
+
+#include <QFont>
+#include <QFontDatabase>
+#include <QTextBrowser>
+#include <QVBoxLayout>
+#include <QWidget>
+
+#include "json.hpp"
+
+#include "Logging.h"
+#include "MainWindow.h"
+#include "ui/FlatButton.h"
+
+namespace dialogs {
+
+class RawMessage : public QWidget
+{
+ Q_OBJECT
+public:
+ RawMessage(QString msg, QWidget *parent = nullptr)
+ : QWidget{parent}
+ {
+ QFont monospaceFont = QFontDatabase::systemFont(QFontDatabase::FixedFont);
+
+ auto layout = new QVBoxLayout{this};
+ auto viewer = new QTextBrowser{this};
+ viewer->setFont(monospaceFont);
+ viewer->setText(msg);
+
+ layout->setSpacing(0);
+ layout->setMargin(0);
+ layout->addWidget(viewer);
+
+ setAutoFillBackground(true);
+ setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
+ setAttribute(Qt::WA_DeleteOnClose, true);
+
+ QSize winsize;
+ QPoint center;
+
+ auto window = MainWindow::instance();
+ if (window) {
+ winsize = window->frameGeometry().size();
+ center = window->frameGeometry().center();
+
+ move(center.x() - (width() * 0.5), center.y() - (height() * 0.5));
+ } else {
+ nhlog::ui()->warn("unable to retrieve MainWindow's size");
+ }
+
+ raise();
+ show();
+ }
+};
+} // namespace dialogs
|