From 3c7b74fae0f1faf6c416ccd8a197fa1a1e90439d Mon Sep 17 00:00:00 2001 From: Matthias Kuhn Date: Thu, 5 Apr 2018 18:06:13 +0200 Subject: [PATCH] Allow clicking hyperlinks in HTML text edit widget --- src/gui/editorwidgets/qgstexteditwrapper.cpp | 8 ++++++-- src/gui/editorwidgets/qgstexteditwrapper.h | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/gui/editorwidgets/qgstexteditwrapper.cpp b/src/gui/editorwidgets/qgstexteditwrapper.cpp index 304d096f373..eb5da83c3d1 100644 --- a/src/gui/editorwidgets/qgstexteditwrapper.cpp +++ b/src/gui/editorwidgets/qgstexteditwrapper.cpp @@ -85,7 +85,7 @@ QWidget *QgsTextEditWrapper::createWidget( QWidget *parent ) { if ( config( QStringLiteral( "UseHtml" ) ).toBool() ) { - return new QTextEdit( parent ); + return new QTextBrowser( parent ); } else { @@ -100,7 +100,7 @@ QWidget *QgsTextEditWrapper::createWidget( QWidget *parent ) void QgsTextEditWrapper::initWidget( QWidget *editor ) { - mTextEdit = qobject_cast( editor ); + mTextEdit = qobject_cast( editor ); mPlainTextEdit = qobject_cast( editor ); mLineEdit = qobject_cast( editor ); @@ -223,7 +223,11 @@ void QgsTextEditWrapper::setWidgetValue( const QVariant &val ) if ( val != value() ) { if ( config( QStringLiteral( "UseHtml" ) ).toBool() ) + { mTextEdit->setHtml( v ); + mTextEdit->setTextInteractionFlags( Qt::LinksAccessibleByMouse ); + mTextEdit->setOpenExternalLinks( true ); + } else mTextEdit->setPlainText( v ); } diff --git a/src/gui/editorwidgets/qgstexteditwrapper.h b/src/gui/editorwidgets/qgstexteditwrapper.h index 533087b77ff..d2380da404b 100644 --- a/src/gui/editorwidgets/qgstexteditwrapper.h +++ b/src/gui/editorwidgets/qgstexteditwrapper.h @@ -20,7 +20,7 @@ #include #include -#include +#include #include "qgis_gui.h" SIP_NO_FILE @@ -68,7 +68,7 @@ class GUI_EXPORT QgsTextEditWrapper : public QgsEditorWidgetWrapper void textChanged( const QString &text ); private: - QTextEdit *mTextEdit = nullptr; + QTextBrowser *mTextEdit = nullptr; QPlainTextEdit *mPlainTextEdit = nullptr; QLineEdit *mLineEdit = nullptr; QPalette mReadOnlyPalette;