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 <david.schulz@theqtcompany.com>
This commit is contained in:
Marc Reilly
2016-05-06 15:13:28 +10:00
committed by Orgad Shaneh
parent c3a5eecfc5
commit 9ccb089870
2 changed files with 13 additions and 0 deletions

View File

@@ -127,9 +127,21 @@ TextTip::TextTip(QWidget *parent) : QTipLabel(parent)
setWindowOpacity(style()->styleHint(QStyle::SH_ToolTipLabel_Opacity, 0, this) / 255.0); 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) void TextTip::setContent(const QVariant &content)
{ {
m_text = content.toString(); 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) void TextTip::configure(const QPoint &pos, QWidget *w)

View File

@@ -64,6 +64,7 @@ public:
TextTip(QWidget *parent); TextTip(QWidget *parent);
virtual void setContent(const QVariant &content); virtual void setContent(const QVariant &content);
virtual bool isInteractive() const;
virtual void configure(const QPoint &pos, QWidget *w); virtual void configure(const QPoint &pos, QWidget *w);
virtual bool canHandleContentReplacement(int typeId) const; virtual bool canHandleContentReplacement(int typeId) const;
virtual int showTime() const; virtual int showTime() const;