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;