[ANNOUNCE] python-gtkmvc 1.99.1

Roberto Cavada roboogle at gmail.com
Thu Dec 30 14:47:43 CET 2010


We are proud to announce that version 1.99.1 of pygtkmvc has been
released. 

Project homepage:
<http://apps.sourceforge.net/trac/pygtkmvc/wiki>

Download:
<http://sourceforge.net/projects/pygtkmvc/>


==============
About pygtkmvc
==============

pygtkmvc is a fully Python-based implementation of the
Model-View-Controller (MVC) and Observer patterns for the PyGTK2
toolkit.

MVC is a pattern that can be successfully used to design and
develop well structured GUI applications. The MVC pattern
basically helps in separating semantics and data of the
application, from their representation.

The Observer pattern helps to weaken dependencies among parts that
should be separated, but need to be connected each other.

pygtkmvc provides a powerful and still simple infrastructure to
help designing and implement GUI applications based on the MVC and
Observer patterns.

The framework has been designed to be:

* Essential and small, it does only what it was designed for.
* Not an external dependency for your application: it fits in
   200KB and can be released along with it.
* Easy to understand and to use; fully documented.
* Portable: straightly runs under many platforms.

License: LGPL



**********************************************************************
* Dec 30 2010                                                        *
**********************************************************************

Released version 1.99.1


This is a release that keeps compatibility with previous version
1.99.0. However, some features provided in 1.99.0 are deprecated in
1.99.1.

This version goes in the direction of stabilizing the API and making
the code more robust. Many bugs were fixed, and a new, clean API is
now provided for defining notification methods in observers, and
logical observable properties in models.

The documentation has been updated and extended to reflect all changes,
and a
complete Library Reference is now available. Furthermore, the
documentation
now uses Sphinx instead of Latex to generate both pdf and html
documentation
formats. 

Last but not the least, the team grew up! 

* New

  - Models now feature Logical Observable Properties, along with already
    supported Concrete Observable Properties.

  - In Observers notification methods have all the same prototype,
    which make much cleaner the application code.

  - New mechanism to declare both dynamically and statically
    notification methods in Observers.

  - Auto-adapt of FileChooserButton, ComboBox and Adjustment

  - API to extend default adapter list

  - More widget types now correctly cast when adapted to
    unicode/int/float properties.

  - Enable RoUserClassAdapter to update the widget.
    It used to only do it when connecting, not on property changes.
    This makes the built-in support for gtk.Calendar work in both
    directions.

  - Controller's method adapt() allows auto-adaption even if the view
    does not have corresponding widgets for *all* properties in the
    model.

  - Adapters can optionally call prop_write *instead of* casting the
value from
    the widget to the type of the old property value. This was the
intended
    behaviour all along. Default is still to call it after the cast.

  - Decorators for property setters/getters in models. The methods can
now have
    arbitrary names and you are no longer limited to one property per
method.

* Changed

  - Name-based notification methods like
    `property_<name>_value_change` are still supported, but their
    usage is now discouraged. A new mechanism for declaring
    notifications is now available, and you should consider porting
    applications accordingly.

  - Decorator Observer.observes is now deprecated. A new mechanism for
    declaring notifications is now available, and you should consider
    porting applications accordingly.

  - Support GtkBuilder in addition to libglade, which is no longer
    required.
    This changed the signature of the View constructor. The two
    formats are not equivalent, as GTK cannot build only parts of a
    file.

  - Allow creation of adapters that act on spurious notifications.

  - Use less eval(codestring)
    This changed how adapters create observer functions. If you have
    adapter subclasses you will have to adjust them.

  - Misuse of the framework that used to exit your application can now
be
    caught as exceptions.

  - Fewer warnings printed by the framework. Remember to increase the
logging
    level during development.

* Fixed

  - Assigning a tuple with length 3 to a property no longer raises

  - Pass the correct model when emitting notifications for an
    inherited signal.
    This changes how all property wrappers track their owners, but
    your code should not be affected.

  - Wrapped sequences lacked crucial special methods like len and
    iter.

  - Inspecting wrappers no longer omits the class name.

  - Various changes to make SQLObjectModel actually usable.

  - Wrapping more than one sequence class could cause the wrong
    methods to be called on all but the last instance created. This
    did not affect programs that only use the built-in list type.

  - Mutable instances that used to be assigned to properties would
    notify of their changes even after being replaced in the model.

  - No more errors from static container adapters you didn't create.

  - Multiple concurrent iterators on views no longer steal each other
    widgets.


Many thanks to Christian Spoer for narrowing down a bug and to Tobias
Weber for joining the team.

--
Roberto Cavada

<P><A HREF="http://pygtkmvc.sourceforge.net">pygtkmvc 1.99.1</A> -
Pygtk MVC is a thin, multiplatform framework that helps to design
and develop GUI applications based on the PyGTK toolkit. (30-Dec-10)




More information about the Python-announce-list mailing list