I just wanted to give a quick update on some of the things I’ve been working on 
in terms of IDLE UI improvements. Any comments or feedback appreciated.


Short-term - incremental improvements to existing behaviours:

  * (patch done) minor cosmetic updates to the editor window (#24750, #24745)

  * (patch done) changes to make existing preferences and about dialogs 
non-modal (#24760)

  * (patch done) modified about dialog to display credits, readme, etc. inline 
rather than launching further (modal) windows

  * (patch done) mac-specific bug fixes to workaround problems in Tk (#24801, 
#24570)

  * (patch done) centralize creation of ui components in a new ‘uifactory’ 
module. This is now used by about/prefs (#24760), and soon others. This module 
will also be in charge of choosing to use ‘ttk’ or ‘non-ttk’ based components 
(#24759)

  * (patch done) utilities to help with functional/integration testing across 
application via tkinter introspection/event generation (#24845); much more to 
come

  * (in progress) replacement for simpledialog calls: adding ttk option, some 
behaviour fixes (e.g. #24812), displaying errors inline rather than launching 
another modal dialog; integrate in uifactory

  * (in progress) ttk-based redesign of preferences+extensions dialog, when 
running Tk >= 8.5 (#24759, #24776, #24782, etc.)

  * (in progress) ttk-based version of find dialogs, with minor enhancements

  * (in progress) new ‘tkextras’ module, to centralize some of the small 
tricks, wrappers and workarounds that get used multiple places in the code

  * (soon) make find dialogs non-modal, integrate with uifactory


The next things I plan on having a look at:

  * create a 'stand-alone' canvas-based tab widget (modelled after the one in 
textmate) to later be used as the ui to handle switching between multiple 
editors/shell within same window (#9262, #24826)

  * separate UI of debugger from underlying internals (so ui can be attached 
‘on the fly’), make it runnable as a frame (so can embed in toplevel or 
panedwindow), and improve UI

  * menu handling, in particular enabling/disabling items according to app 
state (#24814 etc.)


For others making or planning broad changes, the main thing to note of at this 
point is the ‘uifactory’ addition, as well as some of the module decoupling 
that’s happening as a result of other changes like making things non-modal. The 
functional testing pieces are early stages, but I hope it can fill in some gaps 
and also replace a subset of the manual ‘htest’ tests with automation.

Mark

_______________________________________________
IDLE-dev mailing list
IDLE-dev@python.org
https://mail.python.org/mailman/listinfo/idle-dev

Reply via email to