CHANGELOG

Version 0.9, released 20-Sep-2005
    
    Add some logic to MOFO::CellRendererDate so that popup calendar gets placed completely on-screen
    Added MOFO::CellRendererTime and use when a Time column is encountered
    Dialog question asking user whether to apply if window is closed with unapplied changes to recordset
    Add missing code to process sql_order_by
    Renamed readonly flag to read_only ( for consistency ) and hide status column when read_only
    
Version 0.8, released 15-Aug-2005
    
    Refresh dynamic combos when a toggle that they depend on is edited
    Automatically choose a renderer type based on the database field type of each field ( can be overriden )
    Automatically choose a default value for each column based on the database field definition ( can be overriden )
    Removed more Perl warnings re: uninitialised use of ...
    Choose string / numeric comparison based on database field type for combo renderers
    Rename 'none' renderer to 'hidden' ( and still support old 'none' renderers )
    Use text renderer for hidden columns ... so we can point dynamic combos at them and catch changes
    
Version 0.7, released 02-Aug-2005
    
    Added support for dynamic combos - ie combos whose options depend on the current row
    Disabled MOFO::CellRendererSpinButton ... not exactly working properly yet
    Add support for CellRendererCombos with a string ID ( previously only supported int IDs )
    Added undo() method - convenience function that basically does $self->query( undef, TRUE );
    Added MOFO::CellRendererDate - copied and pasted from Torsten Schoenfeld's example in the Gtk2 distribution
    Separated demo app from main package
    
Version 0.6, released 10-Jun-2005
    
    Switched standard CellRendererText with a custom renderer that has better focus policy after editing
    Added custom CellRendererSpinButton ( with improved focus policy ) for numeric values
    Fixed segfault on exit of example app
    
Version 0.5, released 08-Jun-2005
    
    Fixed make test so module actually installs via cpan
    
Version 0.4, released 27-May-2005
    
    Changed calculation of primary key column to use $self->fieldlist
    Added renderer type 'none' for hidden fields
    Insert method accepts a list of column / value pairs to set initial values
    Added column_from_name function to convert a column name into it's number in the model
    Added column_value to look up a value in the selected row
    Added question dialog to ask whether to apply current datasheet before querying ( override with 'dont_apply' )
    Cache the fieldlist array in $self->{fieldlist} so we don't have to query the DB every time we need a field list
    Remove requirement of field definitions - will use fieldnames from the database if none are given ( CellRendererText for everything )
    Added POD documentation
    
Version 0.3, released 24-May-2005
    
    Worked around 'Use of uninitialized value' warnings
    Added support for CellRendererCombo - thanks muppet :)
    Fixed bug where only the 1st updated row was applied
    Added support for CellRendererToggle
    Added dynamic column sizing, with mix of percentage and absolute values
    Added 'multi_select' property which sets 'multiple' selection mode ( only really affects deleting )
    
Version 0.2, released 19-May-2005
    
    Ported to Gtk2::ListStore / Gtk2::TreeView
        ( only supports text cell renderers currently )
    Renamed sql_fields to sql_select and changes requirement back to and SQL select statement
    Don't use the '!' special character for inserts - instead use record status indicator ( column 0 )
    All SQL operations occur in the 'apply' method as a batch
    Added constants for status indicators
    Added pixbuf column to display record status
    Added field validation plugin functionality
    Added intelligent detection of record status - don't consider non-changing 'row-changed' events a 'change'
    Added ReadOnly flag: prevents edits, inserts and deletes if set
    Put some actual data into the sql dump in the example application
    Cleaned up error dialogs and added more of them
    Removed all ComboBox stuff from example app for now
    
Version 0.1, released 16-May-2005

    First Version :)
    Querying database and dumping records into a Gtk2::Ex::Simple::List
    Detecting changes
    Updating affected records in the data as a batch
    Inserting records
    Deleting records
