diff --git a/src/qt/forms/debugwindow.ui b/src/qt/forms/debugwindow.ui index eccea143189..d1c627bb3ce 100644 --- a/src/qt/forms/debugwindow.ui +++ b/src/qt/forms/debugwindow.ui @@ -573,7 +573,7 @@ - + 0 @@ -1868,6 +1868,10 @@ clear() + + PlainCopyTextEdit + QTextEdit + diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h index a1b9522b98e..fe2955cc26b 100644 --- a/src/qt/rpcconsole.h +++ b/src/qt/rpcconsole.h @@ -15,6 +15,9 @@ #include #include +#include +#include +#include #include #include @@ -191,4 +194,20 @@ private Q_SLOTS: void updateAlerts(const QString& warnings); }; +/** + * A version of QTextEdit that only populates plaintext mime data from a + * selection, this avoids some bad behavior in QT's HTML->Markdown conversion. + */ +class PlainCopyTextEdit : public QTextEdit { + Q_OBJECT +public: + using QTextEdit::QTextEdit; +protected: + QMimeData* createMimeDataFromSelection() const override { + auto md = new QMimeData(); + md->setText(textCursor().selection().toPlainText()); + return md; + } +}; + #endif // BITCOIN_QT_RPCCONSOLE_H