[prev in list] [next in list] [prev in thread] [next in thread] 

List:       quanta-devel
Subject:    Re: [quanta-devel] Re: Using KDOM in Quanta[typing parsing]
From:       Frans Englich <frans.englich () telia ! com>
Date:       2005-06-07 12:25:46
Message-ID: 200506071225.46437.frans.englich () telia ! com
[Download RAW message or body]

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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic