On Oct 25, 12:38 pm, "Edward K. Ream" <[EMAIL PROTECTED]> wrote:

> Under some (as-yet-unclear) circumstances the qt plugin can replace
> the contents of one node with another. This bug be fixed before the qt
> plugin has any chance of being safe.

I think I have found an important simplification: rather than a single
selectHint method, Leo's core now calls tree.beforeSelectHint at the
very start of the tree-select process and tree.afterSelectHint at the
end of the tree-select process.  This is done in tree.select using a
try/finally block, so tree.beforeSelectHint will surely be matched by
tree.afterSelectHint.

tree.beforeSelectHint now is the *only* method that sets
tree.selecting, and similarly tree.afterSelectHint is the *only*
method that clears tree.selecting.

Happily qt will generate an onTextChanged event *between* those two
calls, so onTextChanged can simply do nothing when tree.selecting is
True.  This is a *huge* simplification: onTextChanged doesn't have to
"figure anything out."  More importantly, perhaps, it eliminates some
very dubious state variables in the leoQtTree class.  Such state
variables must be avoided at all costs.

This simplification has a chance of making the qt tree code completely
reliable, but only extensive dog-fooding will show for sure.

In short, there is progress, but I discourage anyone from using the qt
plugin until further notice.

Edward

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to