Changelog05

(redirected from Changelog05.Changelog05)

0.5 in numbers

  • 69 bugs resolved
  • 546 commits (without merges)
  • 764 files changed
  • 49758 insertions(+)
  • 97989 deletions(-)

Global

  • Use weakref for every callback / storage (reclaim your memory !)
    • Clock callbacks
    • ID <-> Widgets dict
    • Event callbacks
  • Benchmark: Start bench suite
  • C: write C for speedup low graphx functions, event dispatching, matrix transformation
  • Documentation: automaticly include examples/framework/*.py in API
  • Documentation: change nightly build to every 30 minutes
  • Event: now, every new event must have a default handler
  • OSC/oscAPI: use one callback manager per listen
  • Tool: add dump tool for debugging pymt + paste to pocoo.org
  • Tools: Add dejitter calibration tool (python -m pymt.tools.calibration.dejitter)
  • Tools: Add doubletap calibration tool (python -m pymt.tools.calibration.doubletap)
  • Unit: Run unit test every 30 minutes
  • Unit: Start unittest suite
  • Website: change from pymt.txzone.net to pymt.eu

Base

  • Base: prevent double stop
  • Base: remove event statistics
  • BaseObject: add helper to get coordinate from top/left/bottom/right...
  • Clock: schedule_once timeout is defaulted to 0
  • Clock: simplify and speedup processing
  • ExceptionManager: Restore exception manager for pygame windows
  • Loader: add loaded property in ProxyImage
  • Loader: fix when tempfile is created
  • OBJ: fix material issue
  • Resource: functions to search a resource from a list of path
  • Safelist: Remove iterate() support, prefer duplicate list [:]
  • Texture: rework how texture rectangle support is tested
  • Utils: add interpolate function to interpolate from a value to another
  • Utils: add support to serialize/unserialize numpy matrix
  • Window: add on_key_down / on_key_up event
  • Window: fix partialy display selection (using SDL_VIDEO_FULLSCREEN_HEAD)
  • Window: fix window creation if multisampling=0 in configuration
  • Window: remove gradient background
  • Window: take less CPU if the display is not active

Core

  • Add function hook to be called after pymt configuration
  • Audio/Gstreamer: fix gstreamer volume property
  • Audio: Sound now inherith from EventDispatcher, and add on_play/on_stop event
  • Image: fix convertion 8 bits -> 32 bits
  • Image: add texture_mipmap / texture_rectangle to control mipmapping / rectangle usage when texture is created
  • SVG: New SVG core provider with squirtle as default
  • Text Markup: first implementation of Markup text (not working in MTLabel)
  • Text: add padding/padding_x/padding_y
  • Text: use color directly as a text color, instead of a texture color
  • Video/Gstreamer: correctly check caps before attaching video/audio
  • Video/Gstreamer: disable audio if video don't have audio
  • Video/Gstreamer: wait ASYNC_DONE before set to PLAYING
  • Video: Video now inherith from EventDispatcher, and add on_eos event
  • Spelling: introduce spelling abstraction, using enchant or osx backend

Input

  • Dejitter: new dejitter module, to suppress unwanted touch_move events comming from inaccuracies of the input device
  • Fixccv: module removed (ccv upstream is fixed)
  • HIDInput: new input provider for linux, it read event from /dev/input/event* (working from 2.6.34 kernel with multitouch devices)
  • Mouse: add left-click + alt to be able to put 2 touch, and release at the same time
  • Touch: change dpos/opos to use screen coordinate instead of normalized 0-1 coordinate
  • WM_Pen: improve pen reactivity
  • WM_Touch/WM_Pen: fix crash on windows
  • WM_Touch/WM_Pen: use deque to improve performance

UI

  • Animation: can use user function / lambda for alpha_function/f
  • Animation: fix if the animation contain a dict to animate
  • CSS: Add css_add_file()
  • CSS: Add css_reload()
  • CSS: Polish CSS
  • CSS: add state (<property>-<state>, eg: bg-color-down)
  • CSS: new bg-image command (support image and svg)
  • CSS: new slider-color-down
  • CSS: write our own css parser and remove cssutils

Widgets

  • MTAnchorLayout: center the widget on the screen
  • MTButton: don't dispatch on_release event if the cursor is not on the button
  • MTButton: rewrite button to use MTLabel and not MTWidget (share same attributes as MTLabel now.)
  • MTCircularSlider: fix + clean code
  • MTCoverflow: add possibilty to enable cover blending with background + transparent background
  • MTFileBrowser: clear selection when path is updated
  • MTFileBrowser: fix with unicode characters
  • MTFileBrowserView: add on_selection_change event
  • MTFileBrowserView: fix usage of path= at __init__
  • MTFlippable: add flipangle to change when the flip will happen
  • MTKinetic: enhance kinetic processing to use sum of movement instead of the last one
  • MTKineticList: add align parameter for widget alignement inside the row/col
  • MTLabel: rework entirely MTLabel to be able to change property at runtime
  • MTLayout: completly rework layouts.
  • MTList: new list widget, with kinetic movement. It will replace MTKineticList in the long term.
  • MTPopup: fix styling and drawing
  • MTScatter: add ability to save/restore state of the scatter widget
  • MTScatter: introduce a new scatter widget, based on numpy + accelerated transformation
  • MTScatter: support more than 2 touches
  • MTScreenLayout: show only one widget in full screen at time
  • MTSidePanel: fix positionning with right / top
  • MTSlider: fix 0 division in some case
  • MTSpellVKeyboard: new spelling keyboard widget using spelling abstraction
  • MTTextArea: new multiline text input widget
  • MTTextInput: add a group mode (focus only one in the group, and switch from one to another with TAB key)
  • MTTextInput: add keyboard_to_root to add the keyboard to root window instead of the parent window
  • MTTextInput: add password mode
  • MTToggleButton: add group property (only one can be selected in the group)
  • MTVKeyboard: add support for repeat keys
  • MTVKeyboard: fix qwerty keyboard with numeric
  • MTWidget: add __slots__
  • MTWidget: add a possibility to get relative coordinate from to_local/to_parent
  • MTWidget: always return False in collision if widget is not visible
  • MTWidget: now widget draw his own background
  • MTWidget: performance improvement by converting [] to set()
  • MTWidget: warn user if the ID is already used
  • XMLWidget: rework the behavior + root() + getById() + autoconnect()

Graphx

  • C: Add C support to speed some methods (using cython)
  • FBO: better handling of deletion (if you have pyopengl 3.0.0 or 3.0.1)
  • Shader: fix for GMA and ATI card
  • Statement: add a execute mode to display list
  • draw: set_color() support hex notation (set_color('#FF0000'))
  • draw: set_color() support one component (set_color(0) will do 0, 0, 0)

Graphics

Introduce our new graphics package, written in Cython.

Examples

  • Fix setup
  • Core: add core usage example (Audio, Video...)
  • Desktop: fix if it's run from another directory
  • Sinemixer: switch from ounk to pyo engine
  • Widgets gallery

Modules

  • Doubletap: don't use current down/move touch
  • Keybinding: add F7 to reload CSS
  • Keybinding: add F8 to show widget tree (experimental)
  • Keybinding: draw FPS in help
  • Keybinding: save screenshot to jpeg by default

Contributors

  • Mathieu Virbel <mathieu __at__ pymt.eu>
  • Gabriel Pettier / tshirtman <gabriel.pettier __at__ gmail.com>
  • Ilya Cassina <ilya.cassina __at__ gmail.com>
  • Jay Bradley <j.bradley __at__ napier.ac.uk>
  • Nathanaël Lécaudé <lecaude __at__ gmail.com>
  • Sharath Patali <sharath.patali __at__ gmail.com>
  • Tommaso Piazza <tommaso.piazza __at__ gmail.com>
  • Trevor Lockley <thatsyouremail __at__ gmail.com>
  • Rich Eakin <rich.eakin __at__ gmail.com>
  • Jeff Wilson <jjpwilso@connect.carleton.ca>
  • bernt

For migration

(just a remember, must do a second pass accross commit to write it)

  • XMLwidget: id is removed before adding to the tree
  • XMLwidget: add root() + getById() + autoconnect()
  • Texture: id/target/width/height are now read-only

Deprecated

(just a remember, must do a second pass accross commit to write it)

  • MTKineticList -> use MTList
  • MTForm* -> removed
  • Matrix -> removed