[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