This project appears to be a complete success.  No further work is planned. 
I have encountered no problems at all during this reorg, and don't expect 
any, but we shall see...

Here are the highlights:

1. *All* of the odious redirection code in Leo is gone.
 
The redirection code appeared in various places, especially in the 
HighLevelInterface class.

2. The HighLevelInterface class is gone: the LeoBody and LeoLog classes are 
now subclasses of object.

3. The logCtrl property is gone: the LeoLog class now defines a .logCtrl 
ivar.

This ivar is inherently tricky: depending on which log *tab* is selected, 
LeoLog.logCtrl may be either a wrapper or a widget!

Because LeoLog no longer contains redirection code a hack was needed.  
k.masterKeyHandler redirects text-related events originally sent to the 
c.frame.log to c.frame.log.logWidget, which, confusingly enough, is 
actually a text wrapper.

4. leoFrame.py contains several new API classes: ColorizerAPI, IconBarAPI, 
StatusLineAPI and WrapperAPI.

No class is a subclass of these classes: they are for unit testing only.

The new unit test, "@test interfaces using API classes", checks that 
classes implement all the methods in the corresponding API class. This is 
not a perfect solution and it is no substitute for pylint.  Nevertheless, 
these API classes are good documentation, and they did result in a few new 
methods being added to each tested "Null" class.

That's all!  You may not believe it, but I think of all this work as being 
related to fixing bugs.  I'll now return more directly to bug fixes.

Edward


-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to