qt: Fix richtext detection hang issue on very old Qt versions
Alternative implementation. Thanks to @awoland for the original. Fixes #3486.
This commit is contained in:
parent
8b2cf12b53
commit
17b409b2e6
@ -361,11 +361,11 @@ bool ToolTipToRichTextFilter::eventFilter(QObject *obj, QEvent *evt)
|
|||||||
{
|
{
|
||||||
QWidget *widget = static_cast<QWidget*>(obj);
|
QWidget *widget = static_cast<QWidget*>(obj);
|
||||||
QString tooltip = widget->toolTip();
|
QString tooltip = widget->toolTip();
|
||||||
if(tooltip.size() > size_threshold && !tooltip.startsWith("<qt/>") && !Qt::mightBeRichText(tooltip))
|
if(tooltip.size() > size_threshold && !tooltip.startsWith("<qt") && !Qt::mightBeRichText(tooltip))
|
||||||
{
|
{
|
||||||
// Prefix <qt/> to make sure Qt detects this as rich text
|
// Envelop with <qt></qt> to make sure Qt detects this as rich text
|
||||||
// Escape the current message as HTML and replace \n by <br>
|
// Escape the current message as HTML and replace \n by <br>
|
||||||
tooltip = "<qt/>" + HtmlEscape(tooltip, true);
|
tooltip = "<qt>" + HtmlEscape(tooltip, true) + "</qt>";
|
||||||
widget->setToolTip(tooltip);
|
widget->setToolTip(tooltip);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user