using ktexteditor as a base for a disassembly viewer

Christoph Cullmann christoph at cullmann.io
Fri Dec 11 19:25:03 GMT 2020


On 2020-12-11 20:19, Milian Wolff wrote:
> On Freitag, 11. Dezember 2020 16:52:25 CET Sven Brauch wrote:
>> Hi,
>> 
>> > PS: How would one even use KSyntaxHighlighting for rendering into a
>> > QAbstractItemView? That also sounds somewhat nasty hmmm
>> 
>> That doesn't sound too complicated, or maybe I'm mistaken? For one of 
>> my
>> applications, I needed HTML rendering once, which I implemented by 
>> creating
>> a delegate holding a QTextDocument. The delegate just sets the text on 
>> the
>> document and then draws its contents. The same should work when you 
>> set a
>> highlighter. Like this (sorry, not the cleanest code, it's already a 
>> few
>> years old): http://pastie.org/p/6yTw8HZl47KcgvrjSBaDG8
> 
> Yes, that's obviously an easy approach to take, and for the amount of 
> data I'm
> expecting should probably work out fine. But note that this approach 
> requires
> a re-layouting for every paint. A better approach would store the 
> layout (i.e.
> the text document) per item somehow. Maybe I can just put that into the 
> model
> itself, next to the highlighting...
> 
> Anyhow, probably premature optimization, and a KISS approach should 
> work out
> fine for now.
> 
>> Otherwise, I'm not sure either. I personally think it will be easier 
>> if you
>> just use a QTableView, unless you need column-wise text selection. I 
>> think
>> you could hook everything you need into KTextEditor as well (by e.g.
>> setting custom context menus depending on the column that was clicked 
>> etc)
>> but it will require more lines of hacks than you would otherwise need 
>> to
>> re-create the needed functionality yourself ;) Some applications use 
>> the
>> text editor for a lot of stuff, maybe that can serve you as 
>> inspiration --
>> e.g. sublime text comes to mind, which presents its search results 
>> (and
>> probably other things) as an interactive text document.
> 
> Right, that could work. But it would let the disassembly view stand out 
> a lot
> from the other hotspot views.
> 
> Thank you, unless someone else chimes in with an awesome idea, I really 
> think
> that we'll have to try the KSyntaxHighlighter + custom delegate 
> approach.

I guess that is the most pragmatic way to go.

Greetings
Christoph

-- 
Ignorance is bliss...
https://cullmann.io | https://kate-editor.org


More information about the KWrite-Devel mailing list