Skip to content

Releases: enthought/traitsui

Release 8.0.0

22 May 15:06
d28fbb2
Compare
Choose a tag to compare

This is a major release that provides support for PySide 6.4 and 6.5 as well as Python 3.11. It includes a number of backwards-incompatible changes following the example of Pyface 8.0.0, most notable is moving the traitsui.qt4.* modules to traitsui.qt.*. As with Pyface 8.0 we include a backwards-compatibility mode which allows importing from the 'qt4' namespace via:

  • setting the ETS toolkit to "qt4"
  • setting the ETS_QT4_IMPORTS environment variable
  • manually adding appropriate finders to sys.meta_path

This release also removes a number of features deprecated since TraitsUI 7.0.

Thanks To

  • David Baddeley
  • Mark Dickinson
  • Dominik Gresch
  • hopeful0
  • Chengyu Liu
  • Orion Poplawski
  • Corran Webster

Features

  • Be strict about 'handler.init()' return values (#2008)
  • Move 'traitsui.qt4.' to 'traitsui.qt.' (#2004)
  • Remove deprecated 'format' trait (#2002)
  • Deprecate imports from traitsui.editors (use traitsui.editors.api) (#2000)
  • Remove backwards-compatibility mode in undo/redo code (#1999)
  • Support for Python 3.11 and PySide 6.4+ (#1994)

Fixes

  • Fix uses of None in date range editor (#2019)
  • Add comments for Wx-only examples (#2011, #2020)
  • Replace uses of "fast_ui" dispatch with "ui" dispatch (#2009)
  • Fix FileDialog selection actions (#2003)
  • Fix regression in Wx version of FileEditor (#1993)
  • Fix missing attribute of InstanceFactoryChocie (#1989)

Test suite

  • Replace some relative imports in tests (#1985)

Release 7.4.3

12 Jan 15:34
Compare
Choose a tag to compare

This is a small bugfix release which resolves some bugs that have come to light
as we get more experience with PySide 6, together with changes to run CI on
more recent Python versions and current Github infrastructure.

Thanks To

  • Mark Dickinson
  • Matt Reay
  • Corran Webster
  • John Wiggins

Fixes

  • Fix rendering of dragged tree nodes on Qt6 (#1960)
  • Add explicit allow_none in Datetime traits (#1964)
  • Generate extra TableEditor menus dynamically (#1966)
  • Display the selected date in the DateEditor in custom style (#1967)
  • Guard Qt TreeEditor against destroyed QTreeViewItems (#1973)

Test suite

  • Update CI for EDM Python 3.8 (#1972)

Release 7.4.2

04 Nov 15:27
f4c744f
Compare
Choose a tag to compare

This is a small bug fix release which resolves a couple of bugs in the RangeEditor and TreeEditor. It also pins the PySide6 version to < 6.4.0 due to incompatibilities with the new enum system, which should improve the install experience.

Thanks To

  • Aaron Ayres
  • hopeful0
  • Corran Webster

Fixes

  • Fix RangeTextEditor handling of None for low/high (#1950)
  • Pin PySide6 to < 6.4 (#1951)
  • Fix issues with shared "New" context menu in TreeEditor (#1953)

Release 7.4.1

03 Oct 13:37
Compare
Choose a tag to compare

This is a bug fix release which resolves an issue with RangeEditor not handling
None for either the high or low value, as well as an issue with ProgressColumn
rendering.

Thanks To

  • Steve Allen
  • Chris Angell
  • Aaron Ayres
  • Maxwell Grady
  • Johannes Loibl
  • Rahul Poruri
  • Corran Webster
  • Hai Yan

Fixes

  • Fix issue with progress column rendering on Linux and Windows. (#1937)
  • Fix typos in docstrings (#1935)
  • Fix range text editor bug (#1931)
  • Fix issue where file editor filters were not used in simple editor (#1930)

Release 7.4.0

29 Jun 10:52
ecbc66d
Compare
Choose a tag to compare

This is a minor release which fixes a number of bugs and adds a couple of
small features. The most significant changes are the ability to add separators
to EnumEditor comboboxes, the ability to use Pyface action Schemas for menu bars
and toolbars in Views, and getting the VideoEditor working against the new
QtMultimedia APIs in Qt6.

Thanks To

  • Aaron Ayres
  • Mark Dickinson
  • Rahul Poruri
  • PyHannes
  • Prabhu Ramachandran
  • Ioannis Tziakos
  • Corran Webster
  • John Wiggins
  • Hai Yan

Features

  • Separators in Combobox EnumEditors. (#1885)
  • Allow the use of Pyface Schemas for View menus and toolbars. (#1827)

Fixes

  • Delay imports which force toolkit selection (#1883)
  • Fix ImageEditor paintEvent when image is None. (#1907)
  • Fix VideoEditor for Qt6 (#1908)
  • Fix the ImageEnumEditor on Qt5+ (#1910)
  • Fix some height and width calls for Qt and Python 3.10+ (#1911)
  • Fix a crash on PyQt5 when a Group has no content (#1914)
  • Numerous fixes for tests and CI (#1897, #1893, #1889, #1894, #1898, #1899,
    #1990, #1902, #1903)

Documentation changes

  • Add a copy button to code blocks in documentation (#1904)

Release 7.3.1

14 Mar 15:19
10f0d11
Compare
Choose a tag to compare

TraitsUI 7.3.1 is a bugfix release that resolves a couple of critical errors in
some Editors.

Thanks To

  • Mark Dickinson
  • Steven Kern
  • Orion Poplawski
  • Rahul Poruri
  • Corran Webster

Fixes

  • Fix an issue with KeyBindingsEditor double-click and dark mode colors (#1864)
  • Fix an issue with integer division in ImageEnumEditor (#1862)
  • Fix an attribute name and type error in the FileEditor (#1860)

Release 7.3.0

08 Mar 14:51
11db588
Compare
Choose a tag to compare

TraitsUI 7.3.0 is a minor release which includes numerous bug fixes,
documentation improvements, code maintenance changes, and enhancements.

Highlights of this release

  • The most important new features are experimental support for Qt6, both for
    PySide6 and PyQt6 (although the latter is less complete).
  • Qt4 is deprecated and is no longer being tested in CI. Support will be
    removed in the next major release.
  • The new Pyface Font and Color classes can now be used with the TraitsUI
    Color and Font traits.
  • The image editor can now use any Pyface IImage instance, allowing simple
    dynamic image editing.
  • Numerous bugfixes and small improvements to existing editors.

Thanks To

  • Chris Angell
  • Aaron Ayres
  • Per A. Brodtkorb
  • Mark Dickinson
  • Petr Kungurtsev
  • Eric Larson
  • Nicola De Mitri
  • Rahul Poruri
  • PyHannes
  • Diego Ramirez
  • Pedro Rivotti
  • Corran Webster

Features

  • Expose TreeEditor actions and IconSize in traitsui.editors.api (#1690)
  • Add UITester support for qt TableEditor (#1707)
  • Add UITester DirectoryEditor support (#1710)
  • Add an expand_all method to TreeEditor (#1726)
  • Used Black to ensure a uniform codestyle for TraitsUI (#1760)
  • Allow per-row tooltips in the ListStrEditor's adapter (#1766)
  • PySide6 support (#1803)
  • Add support for Pyface Color and standaize color names (#1812)
  • Pyface Fonts can be used with TraitsUI Font traits (#1819)
  • Add ListStrAdapter to traitsui.api (#1823)
  • Remove uses of the archaic property_depends_on decorator (#1832)
  • Require Pyface 7.4.1 (#1840)

Fixes

  • Call HasPrivateTraits.init() in GroupEditor.init (#1674)
  • Add RangeEditor support for format_func and deprecate format trait on
    RangeEditor factory / toolkit specific Editor implementations (#1684)
  • Fix Dynamic EnumEditor on qt (#1719)
  • Fix ProgressColumn bars overlapping with PyQt5 and PySide2 (#1721)
  • Fix selectable InstanceEditor combobox updates (#1725)
  • Fix Qt InstanceEditor appearance when None selected (#1728)
  • Prevent RangeTextEditor from allowing values outside range (#1731)
  • Fix droppable InstanceEditor (#1733)
  • Fix double error dialogs (#1734)
  • Convert traitsui.instance_choice.InstanceChoiceItem into an instance of
    traits.api.ABCHasStrictTraits to avoid users from instantiating the
    object directly (#1738)
  • Fix issue with incorrect items added via context menu in a TreeEditor (#1745)
  • Fix name errors and refactor flake8 config to reduce the chance of future errors. (#1754)
  • Fix NotebookEditor initial selected (#1791)
  • Convert Qt Enums to be compatible with PyQt6 (#1798)
  • Fix SimpleSpinEditor "enter set" on qt (#1804)
  • Fix issue with ImageEditor not updating for all IImage implementations. (#1810)
  • Fix issues with KeyBindings. (#1817)
  • Fix the KeyBindingEditor. (#1820)
  • Improve error colors for dark mode on Qt. (#1821)

Documentation changes

  • Move "array_editor" to "StandardEditors" contributed examples (#1691)

Test suite

  • Stop testing against pyqt4 on CI (#1686)
  • Remove tests and examples that depend on Chaco and Enable. (#1833)

Release 7.2.1

12 May 03:28
dcfa95a
Compare
Choose a tag to compare

TraitsUI 7.2.1 is a bugfix release which updates TraitsUI to explicitly require
Traits 6.2+ and Pyface 7.3+.

Build and continuous integration

  • Explicitly require traits 6.2 and pyface 7.3 (#1666, #1668)

Release 7.2.0

11 May 18:46
4142b17
Compare
Choose a tag to compare

TraitsUI 7.2.0 is a minor release which includes numerous bug fixes,
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)

Release 7.1.1

01 Dec 16:33
8f4c990
Compare
Choose a tag to compare

This is a bugfix release that fixes a number of issues since the 7.1.0 release.

Fixes

  • Fix scrollable trait of a Group not being implemented on Qt (#1406)
  • Fix icon button's clickable area too small for FileEditor and RangeEditor on Qt and OSX (#1383)
  • Fix missing minimize and maximize buttons for dialogs opened on certain Linux platforms (#1409)