diff options
author | Eike Ziller <eike.ziller@qt.io> | 2018-11-08 16:04:20 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2018-11-09 08:42:44 +0000 |
commit | d58c0a9ac8123fd81c335b322defbbb567de840d (patch) | |
tree | 2fbb2444554320d22cb32d87ccc8f084652d261b | |
parent | c0a1683de3dd6e29c93d8c1fb268a6cc4a7c02c5 (diff) | |
download | qt-creator-d58c0a9ac8123fd81c335b322defbbb567de840d.tar.gz |
Work around crash when dragging text from tool tip
Disallow text selection for the code model tool tips because dragging
the selection somewhere crashes.
Task-number: QTCREATORBUG-21430
Change-Id: I3aed4e16bf429162258d2dfafaa45fff25ba700a
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
-rw-r--r-- | src/plugins/clangcodemodel/clangdiagnostictooltipwidget.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/clangcodemodel/clangdiagnostictooltipwidget.cpp b/src/plugins/clangcodemodel/clangdiagnostictooltipwidget.cpp index d7af5ab8ec..d92b5d67ac 100644 --- a/src/plugins/clangcodemodel/clangdiagnostictooltipwidget.cpp +++ b/src/plugins/clangcodemodel/clangdiagnostictooltipwidget.cpp @@ -98,6 +98,7 @@ public: bool enableClickableFixits; bool limitWidth; bool hideTooltipAfterLinkActivation; + bool allowTextSelection; }; static QWidget *create(const QVector<ClangBackEnd::DiagnosticContainer> &diagnostics, @@ -122,7 +123,12 @@ private: auto *label = new QLabel; label->setTextFormat(Qt::RichText); label->setText(text); - label->setTextInteractionFlags(Qt::TextBrowserInteraction); + if (m_displayHints.allowTextSelection) { + label->setTextInteractionFlags(Qt::TextBrowserInteraction); + } else { + label->setTextInteractionFlags(Qt::LinksAccessibleByMouse + | Qt::LinksAccessibleByKeyboard); + } if (m_displayHints.limitWidth) { const int limit = widthLimit(); @@ -457,6 +463,7 @@ QWidget *ClangDiagnosticWidget::create( hints.enableClickableFixits = true; hints.limitWidth = true; hints.hideTooltipAfterLinkActivation = true; + hints.allowTextSelection = false; } else { // Info Bar hints.showCategoryAndEnableOption = false; hints.showFileNameInMainDiagnostic = true; @@ -464,6 +471,7 @@ QWidget *ClangDiagnosticWidget::create( hints.enableClickableFixits = false; hints.limitWidth = false; hints.hideTooltipAfterLinkActivation = false; + hints.allowTextSelection = true; } return WidgetFromDiagnostics::create(diagnostics, hints); |