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.