diff --git a/packaging/ANNOUNCE.txt b/packaging/ANNOUNCE.txt index dee51e71..31ac7096 100644 --- a/packaging/ANNOUNCE.txt +++ b/packaging/ANNOUNCE.txt @@ -8,98 +8,108 @@ ]] -Announcing wxPython 4.0.0b2 -=========================== +Announcing wxPython 4.0.0 +========================= -PyPI: https://pypi.python.org/pypi/wxPython/4.0.0b2 +PyPI: https://pypi.python.org/pypi/wxPython/4.0.0 Extras: https://extras.wxPython.org/wxPython4/extras/ -Pip: ``pip install wxPython==4.0.0b2`` +Pip: ``pip install wxPython==4.0.0`` Changes in this release include the following: -* Added a deprecated compatibility helper for wx.CustomDataFormat. +* Fixes in wx.aui to properly transfer ownership of the menubar, and also some + tweaks in the AUI_MDI sample in the demo. (#540) -* Transfer ownership of the wx.EvtHandler object when pushing/popping - them, and also for Set/RemoveEventHandler. (#443) +* Added a wx.BUILD_TYPE value to distinguish between development, snapshot, + and release builds. The value is also appended to wx.PlatformInfo. (Thanks + Mesalu!) -* Add missing wx.VScrolledWindow methods listed in the docs as - deprecated but still present. (#441) +* Fix crash when trying to fetch multiple items from a composite data object + in wx.DropTarget.OnData. (#550) Also fixed the CustomDragAndDrop sample to + not fail on Python 2.7. -* Fixed copy/paste error in wx.BusyInfo.__exit__ (#449) +* Add ability for wxArray wrappers to return a copy of the item in the + ``__getitem__`` method. This solves problems where an array that is the + return value of some method call is indexed immediately and a reference to + the array is not held, which could result in garbage values for the indexed + item. Currently this is turned on for just GridCellCoordsArray, but others + can be switched in the future if needed. (#297) -* Added new tool wxget, (a minimal wx implementation of wget) +* Add missing ``wx.GetLocale`` function. (#572) -* Added new tools wxdocs and wxdemos to launch the respective items, - fetching and unpacking as required. (#437) +* Add methods to wx.TextCtrl for output "file-like" compatibility. (#578) -* Fixes to ensure that the locale message catalogs are included in the - release files. (#464) +* Fix object ownership issue for menus added to toolbar items. (#580) -* Fix wx.ListCtrl.SetItemData to check that the data value is not out - of the range of a C long. (#467) +* Updated SIP to version 4.19.5. One of the new features of this version is + that integer overflows are no longer silently truncated and ignored. In + other words, if a wrapped API has a parameter that is a C int type, and you + pass a value that is larger than what will fit in that type of integer then + an OverflowError exception will be raised. -* Changed the default port on *nix builds to be GTK3. The new - ``--gtk2`` flag for build.py can be used to force a build for GTK2 - instead, and the ``--gtk3`` flag still exists, but defaults to True - unless ``--gtk2`` is specified. Please note that there is currently - no auto-detection of whether GTK3 is available or not, so if you - know you need to build for GTK2 then you need to use the build flag, - and there is currently no way to specify that flag for builds - performed by pip. (#431) +* Fixed wx.richtext.RichTextBuffer.GetExtWildcard to return a tuple of 2 + values, as was done in Classic. (#594) -* Fix parameter names in Toolbar.AddTool methods to be - consistent. (#475) +* Various fixes in UltimateListCtrl, HyperTreeList and CheckListCtrlMixin. + (#592, #349, #612) -* Remove inconsistent GetVirtualSize method in ScrolledWindow and let - it be inherited from wx.Window instead. (#474) +* Fixes in TextEditMixin to ensure that the new value is passed in the + event. (#605) -* Fix crashing bug caused by importing a module that reinitializes the - wxModule system after having imported wxpyTag. (#468) +* Fix comparing DataViewItem and TreeListItem objects with None. (#595) -* Fix missing methods in various DataObject classes. (They were - actually accidentally marked "private" when they should have been - public.) (#480) +* Fix event type name in wx/lib/sheet.py (#613) -* Add missing ListCtrl.DeleteAllColumns. (#486) +* The wx.MessageDialog methods which take ButtonLabel parameters are now able + to accept either strings or stock IDs. (#607, #276) -* Various fixes in the demo. +* Fix wx.EvtHandler.Unbind to work correctly when specifying the handler and + it is a bound method. (#624) -* Fixed improper initial scale factor in wx.lib.agw.speedmeter +* Fix OGL's ShapeCanvas to draw properly when the window is scrolled, and + to also adjust the mouse coordinates, etc. (#635) -* Fix for calls to wx.Notebook.HitTest calling the wrong instance - (base class version) of the method. (#499) +* Set a default background color for the generic buttons. (#651) -* Add wx.Simplebook class. +* Fixed HtmlWindow's OnFoo virtual methods so calls to them are propagated to + the Python class. (#642) -* Fix exception in wx.lib.agw.customtreectrl when calling - SortChildren. (#463, #500) +* Fixed wx.CallLater to explicitly hold a reference instead of depending on an + uncollectable cycle to keep the instance around. Like before the cycle is + broken and the saved reference is deleted after the timer expires and the + callable has been called. (#457) -* Fix missing imports needed for drawing the legend in - wx.lib.plot. (#503) -* Fix other instances of list.sort using old cmp-style ordering - functions. (#508) +* Although it's more or less just an implementation detail, add wrappers for + wx.aui.AuiTabCtrl so references to it will get the correct type. (#664) -* Update SizedControls to do a sanity check on the parent's sizer, as - GetSizer can return None for SizedParent under certain - circumstances, such as when AUI reparents the control during pane - movement. (#523, #537) +* List-like wrapper classes generated for accessing wxLists and wxArrays now + support reverse indexing. (#669) For example:: -* Added Vagrant configs for Fedora 23 and Fedora 26, and dropped - Fedora 24. Wheels built on F23 can also be used on F24 and F25, and - F26 adds Python 3.6 support. + child = panel.GetChildren()[-1] -* Fix bitwise OR bug in wx.lib.agw.aui.framemanager. (#493) -* Fix bugs in wx.lib.plot when saving file. (#526) +* Ported some of the classes in Classic's gizmos module from C++ to Python, + including LEDNumberCtrl, DynamicSashWindow, and TreeListCtrl. The classes + are now located in the wx.lib.gizmos package, with a compatibility module at + the old wx.gizmos location. Please note that this TreeListCtrl class is a + very different implementation than wx.dataview.TreeListCtrl, although there + is some overlap in purpose. In addition, the new TreeListCtrl class is not + actually a port from the old gizmos.TreeListCtrl but rather just a thin + layer around AGW's HyperTreeList. This means that if you are using a non- + default style flag you'll need to pass it to the agwStyle parameter instead + of the style parameter. -* Fix integer division bug in ultimatelistctrl. (#528) +* Fix crash when deleting all wx.dataview.TreeListCtrl items with wxGTK3. + (#679, #704) -* Fix bug in wx.SearchCtrl.SetCancelBitmap (#532) +* Fix displaying '&' in the label of wx.RadioBox on GTK. (#39) -* Fixed property grid SetPropertyValue method to not truncate floating - point values to integers, and a couple other possible incorrect - conversions. (#536) +* Fix problems of the wrong C++ method being called in wx.ProgressDialog on MS + Windows. (#701) + +* Fixed how the scrollbar events are captured in DynamicSashWindow in order to + fix regression in the sample. (#687) @@ -142,7 +152,7 @@ Due to some things being cleaned up, reorganized, simplified and dehackified wxPython Phoenix is not completely backwards compatible with wxPython Classic. This is intended. In general, however, the API differences tend to be minor and some applications can use Phoenix -with slight, or even no modifications. In some other cases the +with slight, or even with no modifications. In some other cases the correct way to do things was also available in Classic and it's only the wrong way that has been removed from Phoenix. For more information there is a Migration Guide document available at: