#include "rtfPopup.h" #include #include #include #include #include #include "../interop/QtDotNetConverters.h" RtfPopup::RtfPopup(System::String^ rtfText, QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f) { QString text = rtfText->StartsWith("{\\rtf") ? toQString(RtfPipe::Rtf::ToHtml(rtfText)) : Qt::convertFromPlainText(toQString(rtfText), Qt::WhiteSpaceNormal); QRegularExpression urlFinder(R"REGEX((?\1)"); QLayout* layout = new QGridLayout(this); setLayout(layout); QScrollArea* scrollArea = new QScrollArea(this); scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); layout->addWidget(scrollArea); QLabel* label = new QLabel(text, scrollArea); label->setWordWrap(true); label->setTextFormat(Qt::RichText); label->setOpenExternalLinks(true); label->setTextInteractionFlags(Qt::TextBrowserInteraction); scrollArea->setWidget(label); scrollArea->setWidgetResizable(true); setSizeGripEnabled(true); }