diff options
Diffstat (limited to 'src/libs/utils/tooltip/tips.cpp')
-rw-r--r-- | src/libs/utils/tooltip/tips.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libs/utils/tooltip/tips.cpp b/src/libs/utils/tooltip/tips.cpp index 7e847dcef2..496876bdbb 100644 --- a/src/libs/utils/tooltip/tips.cpp +++ b/src/libs/utils/tooltip/tips.cpp @@ -159,7 +159,14 @@ static bool likelyContainsLink(const QString &s) void TextTip::setContent(const QVariant &content) { - m_text = content.toString(); + if (content.canConvert<QString>()) { + m_text = content.toString(); + } else if (content.canConvert<TextItem>()) { + auto item = content.value<TextItem>(); + m_text = item.first; + m_format = item.second; + } + bool containsLink = likelyContainsLink(m_text); setOpenExternalLinks(containsLink); } @@ -171,6 +178,7 @@ bool TextTip::isInteractive() const void TextTip::configure(const QPoint &pos, QWidget *w) { + setTextFormat(m_format); setText(m_text); // Make it look good with the default ToolTip font on Mac, which has a small descent. @@ -205,7 +213,9 @@ int TextTip::showTime() const bool TextTip::equals(int typeId, const QVariant &other, const QVariant &otherContextHelp) const { return typeId == ToolTip::TextContent && otherContextHelp == contextHelp() - && other.toString() == m_text; + && ((other.canConvert<QString>() && other.toString() == m_text) + || (other.canConvert<TextItem>() + && other.value<TextItem>() == TextItem(m_text, m_format))); } void TextTip::paintEvent(QPaintEvent *event) |