documentation improvements, code maintenance changes, and enhancements.
Highlights of this release
~~~~~~~~~~~~~~~~~~~~~~~~~~
* The migration from ``on_trait_change`` to ``observe`` is underway. As a
result, TraitsUI now requires Traits >= 6.2.
* New display-only VideoEditor (currently only on Qt backend).
* Exapnsion of features for the new ``UITester`` including the ability to
inspect UI object visibility / enabledness. Also documentation for testing
has been updated.
Notes on upgrading
~~~~~~~~~~~~~~~~~~
* This release of TraitsUI now depends on Traits 6.2+ and pyface 7.2+. Also,
deprecated code / modules have been removed. Namely, the
:mod:`traitsui.image <traitsui.image>` module which was moved to
``pyface.image``, ``editors_gen`` modules, Editor and EditorFactory factory
methods on Toolkit objects, and more. For a complete list, see PRs in the
"Removals" section below. These were all generally unused / deprecated for
sometime. Also, importing directly from ``traitsui.editors`` has been
deprecated. Please update imports to import directly from :mod:`traitsui.api`
or :mod:`traitsui.editors.api`.
Detailed changes
~~~~~~~~~~~~~~~~
Thanks to:
* Aaron Ayres
* Kit Yan Choi
* Mark Dickinson
* Rahul Poruri
* Corran Webster
Enhancements
~~~~~~~~~~~~
* Open links externally instead of in the html editor in etsdemo application (1446)
* Hide demo tab when the demo is None (1456)
* Extract an interface from TargetRegistry to allow wider testing support for IsEnabled (1490)
* Expose clearButtonEnabled for Qt TextEditor (1516)
* Extend / document secret TreeNode api for passing tuples into add list trait (1527)
* Add 'IsVisible` query class for UI Tester (1552)
* Extend button editor to allow dynamically changing button image (1566)
* Support testing with simple FileEditor (without dialog) (1571)
* Qt VideoEditor (745, 1609, 1621)
* Add item_factory callable for specifying creation of new list items (1634)
Fixes
~~~~~
* Support HTMLEditor.open_externally on QtWebEngine (1451)
* Qt InstanceEditor button should never be the default (1498)
* Propagate UI errors to the UI's parent (1503)
* Fix resizable readonly enum editor (1532)
* StartStyling API changed for new Wx version (1536)
* Don't use html for a variable name when using html module from standard library (1540)
* Label {visible/enabled}_when (1544)
* manually set the text format to plain text in error (1546)
* Fix RGBColor hex int to tuple color conversion (1554)
* Make Scrollable group respect visible_when (1555)
* Use correct source_path in example (1433)
* Move EnumEditor import in table_filter into the methods that need it (1616)
Documentation
~~~~~~~~~~~~~
* Add a module docstring to the api modules (1441)
* Use viewcode sphinx extension (1443)
* Add links to API docs in a etsdemo examples for traitsui standard editors (1445)
* Clarify which of traitsui.api and traitsui.editors.api is recommended (1471)
* traitsui.testing documentation updates (1482, 1483, 1485, 1486, 1487, 1488)
* Fix link label to the documentation home page (1489)
* Document enabled_when / visible_when better (1537)
* Document entries parameter not supported qt for FileEditor/DirectoryEditor (1557
* Add script to regenerate screenshots of editors for documentation (1574)
* Remove unused images in docs (1584)
* replace with : to document traits in traitsui.editors.* (1596)
* User facing docs for VideoEditor (1630)
* Format code examples in the user documentation (1640)
Build and continuous integration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Fix cron job not installing additional dependencies (1427)
* Remove job on Travis for testing against Traits 6.0 (1430)
* Drop Python 3.5 support in TraitsUI (1436)
* Declare Python 3.5 not supported for ets-demo (1437)
* Fix link for installing wxPython on CI (for etsdemo) (1491)
* Add GitHub Actions to test against EDM (1492)
* Add GitHub Actions workflow for testing ets-demo (1496)
* Use EDM 3.2.3 instead of EDM 3.2.1 (1548)
* Drop support for PyQt < 4.3.2 (1607)
* Remove CI test against Traits 6.0 (1637)
* explicitly install swig 3.0.12 for cron job (1652)
Test suite
~~~~~~~~~~
* Refactor and extend tests for Qt HTMLEditor handling of opening links (1465)
* Update new test_editor_error_msg (1553)
* Unskip "EnumEditor" tests that were failing earlier on windows (1615)
* skip video editor test without numpy / move numpy import to when it is needed
/ list numpy as test dependency (1639)
* skip test if no QtWebkit or QtWebEngine (1649)
* skip a couple wx test failures (1656)
Maintenance and code organization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Add pygments to etsdemo's etstool.py (1453)
* Add help aliases to etsdemo etstool module (1457)
* Fix/Update copyright headers (1467, 1486)
* work towards flake8 clean codebase (1469, 1562, 1563)
* Remove meaningless comments from an outdated coding style. (1472)
* Remove clause that deviates from PEP8 backward compatibility convention in the testing package (1481)
* Formal editor interface for tooltips (1493
* Add instance choice classes to traitsui.api (1495)
* Undo/Redo cleanup (1510)
* start on_trait_change to observe migration (1519, 1520, 1523, 1525, 1545, 1622, 1644)
* Refactor TreeEditor _new_actions and _menu_new_node to avoid hacky eval (1524)
* Refactor _add_items method of _GroupPanel object (1549)
* Add new trait to eventually replace scroll_to_row_hint (1560)
* Add 'default': True to the etsdemo eam metadata (1568)
* update "super" usage (1583, 1587, 1588, 1589, 1604)
* Use "str.capitalize" directly instead of an alias (1598)
* Use "PrefixList" from traits >= 6.1 (1599)
* Update use of deprecated "Thread.setDaemon" (1601)
* Replace deprecated "wx.ListItemAttr" with "wx.ItemAttr" (1602)
* Adds "traitsui.toolkit.toolkit_object" to "traitsui.api" (1603)
* Import "TraitFactory" from "traits.api" (1606)
* Rename editor factory classes (1610)
* Cleanup imports in "traitsui.editors.*" (1619)
Removals
~~~~~~~~
* Remove deprecated classes/modules (1594)
* remove traitsui.image submodule (1595)
* Remove Editor and EditorFactory factory methods on Toolkit objects (1600)
* Remove backwards compatibility toolkit factory imports (1608)
* Remove unused "Item.full_size" trait (1613)
* Remove code handling old/outdated versions of wx (1614)
* Remove unused editors_gen modules (1626)