# Version 1 #
## Version 1.8.0 ##
Changes:
* Added generic widgets: array, dictionary, text and code editors.
* Removed `spyderlib`/`spyder` dependency.
* Added setter method on DataItem object for "help" text (fixed part of the tooltip).
## Version 1.7.9 ##
Changes:
* Added PySide2 support: guidata is now compatible with Python 2.7, Python 3.4+, PyQt4,
PyQt5 and PySide2!
## Version 1.7.8 ##
Changes:
* Added PyQt4/PyQt5/PySide automatic switch depending on installed libraries
* Moved documentation to
## Version 1.7.7 ##
Bug fixes:
* Fixed Spyder v4.0 compatibility issues.
## Version 1.7.6 ##
Bug fixes:
* Fixed Spyder v3.0 compatibility issues.
## Version 1.7.5 ##
Bug fixes:
* `FilesOpenItem.check_value` : if value is None, return False (avoids "None Type object is not iterable" error)
## Version 1.7.4 ##
Bug fixes:
* Fixed compatibility issue with Python 3.5.1rc1 (Issue #32: RecursionError in `userconfig.UserConfig.get`)
* `HDF5Reader.read_object_list`: fixed division by zero (when count was 1)
* `hdf5io`: fixed Python3 compatibility issue with unicode_hdf type converter
## Version 1.7.3 ##
Features:
* Added CHM documentation to wheel package
* hdf5io: added support for a progress bar callback in "read_object_list" (this allows implementing a progress dialog widget showing the progress when reading an object list in an HDF5 file)
Bug fixes:
* Python 3 compatibility: fixed `hdf5io.HDF5Writer.write_object_list` method
* data items:
* StringItem: when `notempty` parameter was set to True, item value was not checked at startup (expected orange background)
* disthelpers:
* Supporting recent versions of SciPy, h5py and IPython
* Fixed compatibility issue (workaround) with IPython on Python 2.7 (that is the "collection.sys cx_Freeze error")
## Version 1.7.2 ##
Bug fixes:
* Fixed compatibility issues with old versions of Spyder ()
* disthelpers:
* vs2008 option was ignored
* added 'C:\Program Files (x86)' to bin includes (cx_Freeze)
* Data items/callbacks: fixed callbacks for ChoiceItem (or derived items) which were triggered when other widgets were triggering their own callbacks...
Other changes:
* Added test for item callbacks
* dataset.datatypes.FormatProp/new behavior: added `ignore_error` argument, default to True (ignores string formatting error: ValueError)
* disthelpers:
* Distribution.Setup: added `target_dir` option
* Distribution.build: added `create_archive` option to create a ZIP archive after building the package
* cx_Freeze: added support for multiple executables
* added support for h5py 2.0
* added support for Maplotlib 1.1
* Allow DateTime edit widgets to popup calendar
## Version 1.4.0 ##
Possible API compatibility issues:
* disthelpers: removed functions remove_build_dist, add_module_data_files,
add_text_data_file, get_default_excludes, get_default_includes,
get_default_dll_excludes, create_vs2008_data_files (...) which were
replaced by a class named Distribution,
see the new disthelpers test for more details (tests/dishelpers.py)
* reorganized utils and configtools modules
Other changes:
* disthelpers: replaced almost all functions by a class named Distribution,
and added support for cx_Freeze (module remains compatible with py2exe),
see the new disthelpers test for more details (tests/dishelpers.py)
* reorganized utils and configtools modules
## Version 1.3.2 ##
Since this version, `guidata` is compatible with PyQt4 API #1 *and* API #2.
Please read carefully the coding guidelines which have been recently added to
the documentation.
Possible API compatibility issues:
* Removed deprecated wrappers around QFileDialog's static methods (use the wrappers provided by `guidata.qt.compat` instead):
* getExistingDirectory, getOpenFileName, getOpenFileNames, getSaveFileName
Bug fixes:
* qtwidgets.ShowFloatArrayWidget: fixed string float formatting issue (replaced %f by %g)
* Fixed compatiblity issues with PyQt v4.4 (Contributor: Carlos Pascual)
* Fixed missing 'child_title' attribute error with FileOpenItem, FilesOpenItem, FileSaveItem and DirectoryItem
* (Fixes Issue 8) disthelpers.add_modules was failing when vs2008=False
Other changes:
* added *this* changelog
* qtwidgets: removed ProgressPopUp dialog (it is now recommended to use QProgressDialog instead, which is pretty much identical)
* Replaced QScintilla by spyderlib (as a dependency for array editor, code editor (test launcher) and dict editor)
* qtwidgets.DockWidgetMixin: added method 'setup_dockwidget' to change dockwidget's features, location and allowed areas after class instantiation
* guidata.utils.utf8_to_unicode: translated error message in english
* Add support for 'int' in hdf5 save function
* guidata.dataset/Numeric items (FloatItem, IntItem): added option 'unit' (automatically add suffix ' (unit)' to label in edit mode and suffix ' unit' to value in read-only mode)
* Improved dataset `__str__` method: code refactoring with read-only dataset widgets (DataItem: added methods 'format_string' and 'get_string_value', DataSet: added method 'to_string')
* Added coding guidelines to the documentation
* guidata.dataset.qtwidget: added specific widget (ShowBooleanWidget) for read-only display of bool items (text is striked out when value is False)
* guidata.hdf5io.Dset: added missing keyword argument 'optional' (same effect as parent class Attr)
* guidata.dataset.dataitems.IntItem objects: added support for sliders (fixes Issue 9) with option slider=True (see documentation)
## Version 1.3.1 ##
Bug fixes:
* setup.py: added svg icons to data files
* gettext helpers were not working on Linux (Windows install pygettext was hardcoded)
Other changes:
* hdf5io: printing error messages in sys.stderr + added more infos when failing to load attribute
## Version 1.3.0 ##
Bug fixes:
* setup.py: added svg icons to data files
* gettext helpers were not working on Linux (Windows install pygettext was hardcoded)
* DataSet/bugfix: comment/title options now override the DataSet class `__doc__` attribute
* Added missing option 'basedir' for FilesOpenItem
* DirectoryItem: fixed missing child_title attribute bug
* For all DataSet GUI representation, the comment text is now word-wrapped
* Bugfix: recent versions of PyQt don't like the QApplication reference to be stored in modules (why is that?)
* Bugfix/tests: always keep a reference to the QApplication instance
Other changes:
* setup.py: added source archive download url
* Tests: now creating real temporary files and cleaning up at exit
* qtAllow a callback on LineEditWidget to notify about text changes (use set_prop("display", "callback", callback))
* qthelpers: provide wrapper for qt.getOpen/SaveFileName to work around win32 bug
* qtwidgets: optionally hide apply button in DataSetEditGroupBox
* added module guidata.qtwidgets (moved some generic widgets from guidata.qthelpers and from other external packages)
* qthelpers: added helper 'create_groupbox' (QGroupBox object creation)
* Array editor: updated code from Spyder's array editor (original code)
* Added package guidata.editors: contains editor widgets derived from Spyder editor widgets (array editor, dictionary editor, text editor)
* Array editor: added option to set row/col labels (resp. ylabels and xlabels)
* ButtonItem: changed callback arguments to*instance* (DataSet object), *value* (item value), *parent* (button's parent widget)
* editors.DictEditor.DictEditor: moved options from constructor to 'setup' method (like ArrayEditor's setup_and_check), added parent widget to constructor options
* Added DictItem type: simple button to edit a dictionary
* editors.DictEditor.DictEditor/bugfixes: added action "Insert" to context menu for an empty dictionary + fixed inline unicode editing (was showing the error message "Unable to assign data to item")
* guidata.qtwidgets: added 'DockableWidgetMixin' to fabricate any dockable QWidget class
* gettext helpers: added support for individual module translation (until now, only whole packages were supported)
* DataSetShowGroupBox/DataSetEditGroupBox: **kwargs may now be passed to the DataSet constructor
* disthelpers: added 'scipy.io' to supported modules (includes)
* Added new "value_callback" display property: this function is called when QLineEdit text has changed (item value is passed)
* Added option to pass a text formatting function in DataSetShowWidget