On Wednesday, June 14, 2017 at 5:05:55 AM UTC-5, Edward K. Ream wrote: > This is a highly experimental project, as I'll explain in the previous Engineering Notebook thread.
Hehe. *This* is the ENB thread I was talking about :-) There are various intertwined aspects of the project. 1. It's not clear how to "suppress" the Qt gui (especially its drawing code). There are at least two ways to do so: A. Disable qt_tree.full_redraw, and disable/patch/hack other methods so that unit tests work. I doubt that this approach is sound. It introduces too many special cases into the Qt gui code. That's the last thing we need. B. Create a *completely new* NullGui environment in TM.doTests. This seems cleaner, but there is a big complication: The Commander class and its subclasses cache gui-related ivars. Boo hoo. It does not suffice merely to switch g.app.gui! The result is a strange admixture of QtGui methods called from cached ivars and NullGui methods called otherwise. Instead, we need a *fresh* copy of c (and all its subcommanders), inited from the new NullGui environment. A new method, say, c2 = *c.copy_with_gui(gui)*, will create a *fully inited copy* of c, but inited with the new gui ivars. c2 must have the same outline as c, copied from c without re-reading any files. c.copy_with_gui() looks like a major sub-project. 2. Recent revs have significantly revised the NullGui class. Using this class makes the unit tests lightning fast, but many fail in one of two ways. *Errors *typically are the result of missing ivars or methods (over-zealous house-cleaning), but some are a more subtle, and maybe more important. *Failures *are more concerning. They must be studied in detail to understand why they fail. This study is crucial to determining what approach is actually sound. That's all for now. 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.
