[Interest] Tooltips and Anchors with QSyntaxHighlighter

Jonathan Purol contact at folling.de
Tue Jan 21 13:21:40 CET 2020

Hello everyone,

I should note this is my first time posting to a mailing list, so 
apologies if I'm messing up something.

We're currently trying to write an editable text editor which has two 
modes, edit and view. In edit mode you can make changes using a specific 
syntax, and in view mode that is rendered with your usual text-editor 
The following features ought to be supported:

* Bold, Italic, Underlined, and strikethrough text
* Different font sizes
* Lists
* Table Of Contents (i.e. hyperlinks that jump to some place in the text)
* Coloured Text
* Aligned Text (horizontal alignment suffices)
* And two special features:
--> Links written in markdown format [display text](link) should be 
clickable and emit a signal `linkClicked(QString const& text)` | Note: 
They will not be opened in the browser, but rather link to something 
else in the application
--> Hovering those links should open a tooltip which is able to render 
the HTML4 subset QT provides for all tooltips

I was delighted to see that QTextCharFormat 
(https://doc.qt.io/qt-5/qtextcharformat.html) already ships with 
`setTooltip` and `setAnchor`/`setAnchorHref`/`setAnchorNames`, however 
once I tried to use those, nothing happened.
I scoured around online and found two bug reports, both either 
unanswered, or closed. Digging a bit through the source, it seems that 
those exact two features are not implemented yet:

The two bugreports:

My questions now are:
1. Is that a really bug, i.e. was it just forgotten? The first bug 
report exists since 2011, though I'm unsure of how common it is for 
TODOs to exist that long in QTs code base.
2. If not, is there an ETA for those features, or a plan for when 
they'll be released?
3. If the answer to 2. is not "very soon", what approach should I take 
to implement those features manually. The timeplan for the document 
editor was around a month - or at most two, and I'm the sole developer 
on it, so I'm looking for something that's doable in that time frame 
(I.e. not having to write everything from scratch).

I'm aware of `QTextBrowser`, so combining that with 
`QTextDocument::setHtml` would be one option, though I'm unsure if that 
would suffice/scale, as we would have to manually reparse user input 
into HTML, doable, but certainly not as performant.

Thanks in Advance!
Jonathan Purol

More information about the Interest mailing list