dip v0.3 Released

8 June 2011

dip v0.3 has been released.

It is now possible to bind GUIs created using traditional means (i.e. using plain PyQt code or Qt Designer) to models.

The addition of the dip-automate script and the dip.automate module allows dip and ordinary PyQt applications to be automated for testing, debugging or demonstration purposes.

  • @implements now checks that an implementation contains all methods defined by an interface.
  • The dip.model.isadapted() function will check if an object has been adapted to an interface without creating an adapter as a side effect.
  • The dip.ui.DirectorySelector has been removed and its functionality merged with the dip.ui.FileSelector class.
  • A view factory will now always create a QWidget sub-class. It is no longer necessary to pass the 'widget' argument to ensure a QWidget (rather than a QLayout) is created.
  • Default delegate editors have been added for the Int, Float, Bool and Enum types.
  • The IMessageArea interface has been added and the requirement that a message area is a QLabel has been removed.
  • ComboBox is now the default editor factory for the Enum type instead of RadioButtons.
  • The dip.ui.Wrapper class has been removed.
  • The dip.ui.CollectionToolButtons class has been renamed to CollectionButtons.
  • The dip.ui.AddToolButton class has been renamed to AddButton.
  • The dip.ui.RemoveToolButton class has been renamed to RemoveButton.
  • The dip.ui.UpToolButton class has been renamed to UpButton.
  • The dip.ui.DownToolButton class has been renamed to DownButton.
  • Editors are now views in their own right and there is no longer any need to place them in an explicit view.
  • The dip.model.Tuple class was added.