From quanta-devel Tue Jun 07 12:25:46 2005 From: Frans Englich Date: Tue, 07 Jun 2005 12:25:46 +0000 To: quanta-devel Subject: Re: [quanta-devel] Re: Using KDOM in Quanta[typing parsing] Message-Id: <200506071225.46437.frans.englich () telia ! com> X-MARC-Message: https://marc.info/?l=quanta-devel&m=111814659721269 On Tuesday 07 June 2005 11:55, Frans Englich wrote: > On Tuesday 07 June 2005 01:56, Jens Herden wrote: I define typing parsing as: When the user edits the document, either by typing on the keyboard or (replace-)pasting, Quanta does dynamic house-keeping in order to keep internal structures up-to-date to correspond to the text stream(which the user percepts as the document). For example, this could be to edit the KDOM tree to correspond to the text stream. I don't know what status quo is, or what exactly is the hard & crucial parts, but I propose ideas from the problems I see. I think typing-parsing can be divided into two categories: -- Keyboard input. Characters are delivered on a key-event, character-by-character basis. This can perhaps be handled by simply doing whatever smart editing is needed(e.g, do the small changes to the tree, usually append a character to a node, and do character reference replacements etc). -- Copy & Paste. One type is the insertion of a string in a certain position in the text -- pasting. Another type is to replace-paste; existing text is replaced by new text. And the difficulty lies in(AFAICT) to keep the KDOM tree and text stream in sync. In the case of replace-paste; it can be seen as a removal followed by an addition. So first the nodes that correspond to the removed text are removed. Then the tree needs to be updated for the new addition. AFAICT, the new text must be fed into an XML parser, which should produce an XML fragment, which can be inserted into the tree. DOM Load and Save have a nice entry point for that: http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407/load-save.html#LS-LSParser-parseWithContext It does exactly what one wants, except that I raises an error on invalid XML. So, one would have to sub-class and feed it into KHTML's tokenizer, combined with a "setQuirkMode(true)" on the sub-class LSParserImpl. And when the XML fragment is built, it's inserted into the KDOM tree. Right. World piece next? Cheers, Frans _______________________________________________ quanta-devel mailing list quanta-devel@kde.org https://mail.kde.org/mailman/listinfo/quanta-devel