From 9ccb08987043b82ccec3e545f1556fa2f4fb32ec Mon Sep 17 00:00:00 2001 From: Marc Reilly Date: Fri, 6 May 2016 15:13:28 +1000 Subject: [PATCH] tooltip: make TextTip links clickable This enables the text to contain links which the user can click on to follow. Change-Id: I892d1d915a48974e72adb0e712d46220560f5537 Reviewed-by: David Schulz --- src/libs/utils/tooltip/tips.cpp | 12 ++++++++++++ src/libs/utils/tooltip/tips.h | 1 + 2 files changed, 13 insertions(+) diff --git a/src/libs/utils/tooltip/tips.cpp b/src/libs/utils/tooltip/tips.cpp index 11425d2e0d5..ebad4d070a7 100644 --- a/src/libs/utils/tooltip/tips.cpp +++ b/src/libs/utils/tooltip/tips.cpp @@ -127,9 +127,21 @@ TextTip::TextTip(QWidget *parent) : QTipLabel(parent) setWindowOpacity(style()->styleHint(QStyle::SH_ToolTipLabel_Opacity, 0, this) / 255.0); } +static bool likelyContainsLink(const QString &s) +{ + return s.contains(QLatin1String("href"), Qt::CaseInsensitive); +} + void TextTip::setContent(const QVariant &content) { m_text = content.toString(); + bool containsLink = likelyContainsLink(m_text); + setOpenExternalLinks(containsLink); +} + +bool TextTip::isInteractive() const +{ + return likelyContainsLink(m_text); } void TextTip::configure(const QPoint &pos, QWidget *w) diff --git a/src/libs/utils/tooltip/tips.h b/src/libs/utils/tooltip/tips.h index e2d467f6dbe..fe1a8633d01 100644 --- a/src/libs/utils/tooltip/tips.h +++ b/src/libs/utils/tooltip/tips.h @@ -64,6 +64,7 @@ public: TextTip(QWidget *parent); virtual void setContent(const QVariant &content); + virtual bool isInteractive() const; virtual void configure(const QPoint &pos, QWidget *w); virtual bool canHandleContentReplacement(int typeId) const; virtual int showTime() const;