2011-02-18 Ronaldo Maia <romaia@async.com.br> * kiwi/ui/icon.py: Removing IconEntry to use new gtk api. === 1.9.27 === 2010-09-01 Ronaldo Maia <romaia@async.com.br> Release 1.9.27 2010-07-27 Gabriel Gerga <gerga@async.com.br> reviewed by: romaia@async.com.br * kiwi/ui/search.py: Create method set_digits that control number of decimal places in the NumberSearchFilter. Display 2 digits for Decimal and currency, and 0 for int. 2010-07-22 Ronaldo Maia <romaia@async.com.br> * kiwi/ui/objectlist.py: Remove obsolete gtk.Tooltips === 1.9.26-2 === 2009-12-15 George Y. Kussumoto <george@async.com.br> Bugfix Release 1.9.26-2 2009-12-11 George Y. Kussumoto <george@async.com.br> * kiwi/ui/entry.py: Added a workaround for set_text method in KiwiEntry when using gtk > 2.18. === 1.9.26 === 2009-07-14 George Y. Kussumoto <george@async.com.br> Release 1.9.26 2009-07-01 Ronaldo Maia <romaia@async.com.br> reviewed by: george@async.com.br * kiwi/ui/objectlist.py: Enable custom sort_func for objectlists 2009-06-19 Ronaldo Maia <romaia@async.com.br> reviewed by: george@async.com.br * kiwi/ui/search.py: Update search if entry activates and enable decimal digits for number searching. 2009-06-17 George Y. Kussumoto <george@async.com.br> reviewed by: romaia@async.com.br * kiwi/ui/views.py: Added enable_window_controls in SlaveView. (#3866: Possibilitar a maximização das telas no processo de compras). 2009-06-05 Ronaldo Maia <romaia@async.com.br> * kiwi/ui/search.py: Fix: update callsite after bugfix 3981. 2009-06-01 Ronaldo Maia <romaia@async.com.br> * kiwi/test/test_datatypes.py: Fix sv_SE thousand separators. === 1.9.25 === 2009-04-15 George Y. Kussumoto <george@async.com.br> Release 1.9.25 2009-04-14: Severin Heiniger <severinheiniger@gmail.com> reviewed by: jdahlin@async.com.br * kiwi/dist.py: Do not overwrite custom cmdclass entries. 2009-03-10 George Y. Kussumoto <george@async.com.br> reviewed by: romaia@async.com.br * kiwi/ui/widgets/combo.py: Added get_selected_data method in ProxyComboEntry class, in order to fix some issues with completetion. 2009-02-27 George Y. Kussumoto <george@async.com.br> reviewed by: romaia@async.com.br * kiwi/ui/search.py: Added SearchFilter get_description method for each subclass and an accessor for all search filters in a SearchContainer. 2009-02-19 Ronaldo Maia <romaia@async.com.br> reviewed by: george@async.com.br * kiwi/ui/search.py: Refactor advanced search interface to use less space. 2009-02-13 Ronaldo Maia <romaia@async.com.br> reviewed by: george@async.com.br * kiwi/db/query.py: * kiwi/db/sqlalch.py: * kiwi/db/sqlobj.py: * kiwi/db/stormintegration.py: * kiwi/ui/objectlist.py: * kiwi/ui/search.py: Add an advanced search, disabled by default === 1.9.24 === 2009-01-27 George Y. Kussumoto <george@async.com.br> Release 1.9.24 2009-01-15 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/currency.py: * tests/test_datatypes.py: currency is formating the value wrong. Fixes bug 3855 2008-11-13 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/entry.py: * kiwi/ui/entrycompletion.py: When the value of the ComboEntry changes, the object is not updated sometimes. Fixes Bug 3673 2008-11-07 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * examples/awesomecombo.py: * kiwi/ui/cellrenderer.py: * kiwi/ui/comboentry.py: Enable multi-line ComboEntry options, similar to firefox's toolbar. Fixes 3843. 2008-11-03 Ronaldo Maia <romaia@async.com.br> * kiwi/ui/comboentry.py: Keep the toggle button the same size as the entry and position the popup correctly. Fixes 3841 2008-10-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/builderloader.py: * kiwi/ui/views.py: Add initial support for loading GtkBuilder files === 1.9.23 === 2008-09-10 George Y. Kussumoto <george@async.com.br> Release 1.9.23 2008-07-14 George Y. Kussumoto <george@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: ColoredColumn - data_func should receive the model object instead of the attribute value. 2008-07-11 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Enable more than one color on a ColoredColumn 2008-06-23 Ronaldo Maia <romaia@async.com.br> reviewed by: Christian Reis <kiko@async.com.br> * kiwi/ui/views.py: Allow user to specify the widget directly when attaching a slave. 2008-06-05 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py: Make Mr Buildbot a happy camper 2008-06-05 Johan Dahlin <jdahlin@async.com.br> * glade3-plugin/kiwiwidgets.py: * glade3-plugin/kiwiwidgets.xml: * glade3-plugin/setup.py: Update the glade3 plugin to Juan's latest revival of catalog support in glade3 2008-06-05 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py: Remove duplicate converters * kiwi/datatypes.py: * kiwi/ui/proxy.py: * kiwi/ui/proxywidget.py: * kiwi/ui/widgets/button.py: * tests/test_CheckButton.py: * tests/test_Entry.py: * tests/test_Scale.py: * tests/test_SpinButton.py: * tests/test_proxy.py: * tests/test_utils.py: Change data_type property from object to string and update tests and callsites. 2008-06-05 Johan Dahlin <jdahlin@async.com.br> reviewed by: <delete if not using a buddy> * debian/changelog: * glade3-plugin/kiwiwidgets.py: * glade3-plugin/kiwiwidgets.xml: * glade3-plugin/setup.py: * kiwi/datatypes.py: * kiwi/ui/proxy.py: * kiwi/ui/proxywidget.py: * kiwi/ui/widgets/button.py: * tests/test_CheckButton.py: * tests/test_Entry.py: * tests/test_Scale.py: * tests/test_SpinButton.py: * tests/test_proxy.py: * tests/test_utils.py: === 1.9.22 === 2008-05-29 George Y. Kussumoto <george@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * doc/release-checklist.txt: * kiwi/__version__.py: * kiwi.spec: Release 1.9.22 2008-05-29 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dateentry.py: Improve documentation a bit 2008-04-17 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * examples/listdialog.py: * kiwi/ui/objectlist.py: * kiwi/ui/widgets/contextmenu.py: Add support for context menus in objectlist 2008-04-14 Johan Dahlin <johan@gnome.org> * kiwi/ui/objectlist.py (Column.attach): Do not expand stock columns. 2008-04-11 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/colorbutton.py: Store colors as strings instead of gdk.Color instances in the model. 2008-04-10 Johan Dahlin <johan@gnome.org> * kiwi/ui/objectlist.py (Column.attach): Set expand to False for pixbuf columns. 2008-04-10 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * examples/search_sqlalch.py: * kiwi/db/sqlalch.py: Add SQLAlchemy support in the search interface. Fixes #3668 2008-04-10 Johan Dahlin <jdahlin@async.com.br> * gazpacho-plugin/kiwiwidgets.xml: * gazpacho-plugin/resources/kiwiwidgets/kiwicolorbutton.png: * kiwi/ui/gazpacholoader.py: Add initial support for GtkColorButton. Needs a bit of adjustment on the gazpacho side aswell. 2008-04-09 Johan Dahlin <johan@gnome.org> * kiwi/ui/listdialog.py (ListSlave.__init__): Add refresh() and clear() methods. * kiwi/ui/objectlist.py (ObjectList._setup_columns): Fix error message so it actually shows something useful. Set context header menu text to the capitalized attribute name if the the normal title is empty. 2008-04-08 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/listdialog.py: Rename ListDialog to ListSlave and add subclass which joins a gtk.Dialog and a ListSlave 2008-03-18 Johan Dahlin <johan@gnome.org> * kiwi/ui/gazpacholoader.py: Speculative fix for: File kiwi/ui/gazpacholoader.py, line 218, in _editor_edit proxy.set_value(model[active_iter][1]) TypeError: could not parse subscript as a tree path === 1.9.21 === 2008-03-17 George Y. Kussumoto <george@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * doc/release-checklist.txt: * kiwi/__version__.py: * kiwi.spec: Release 1.9.21 2008-03-07 Fabio Morbec <fabio@async.com.br> * Makefile: Correcting the svn address 2008-03-07 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/comboentry.py: * kiwi/ui/entrycompletion.py: Handle case when entry completion is poping up and the entry loses focus. Fixes bug #3639 2008-03-06 Johan Dahlin <johan@gnome.org> * po/es_CL: Added Spanish/Chilean translation (Gabriel Felipe Cornejo Salas) 2008-03-03 Johan Dahlin <johan@gnome.org> * po/es_ES: Added Spanish translation (Jose Martin) 2008-02-20 Johan Dahlin <johan@gnome.org> * kiwi/ui/listdialog.py: PEP-8ify 2008-02-13 Johan Dahlin <johan@gnome.org> * po/pl.po: Update polish translation (Jarek Zgoda) === 1.9.20 === 2008-01-31 Fabio Morbec <fabio@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * doc/release-checklist.txt: * kiwi/__version__.py: * kiwi.spec: Release 1.9.20 2008-01-17 Johan Dahlin <johan@gnome.org> * kiwi/ui/views.py (SignalBroker.on_widget_name__signal_name): After was broken, all signals were connected using after instead of on by default. on -> connect, after -> connect_after now, really. Based on patch by Arek Korbik 2007-12-04 Johan Dahlin <johan@gnome.org> * AUTHORS (Maintainers): Add Brad. * kiwi/ui/delegates.py (ProxySlaveDelegate): Add. Patch by Brad Crittenden 2007-11-22 Johan Dahlin <johan@gnome.org> * examples/list/stockicon.py (Fruit.__init__): Add an example of this. * kiwi/ui/objectlist.py (Column): Add a new property column which references to another column to be able to pack two cell renderers into the same column 2007-11-20 Johan Dahlin <johan@gnome.org> * kiwi/ui/objectlist.py: Only call column.set_expander_column once, and on the right instance. Found by George. 2007-11-13 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/db/stormintegration.py: Add support for Storm in our DB API, * examples/search_storm.py: add an example Fixes for #3408 2007-11-13 Johan Dahlin <johan@gnome.org> * po/it.po: Add italian translation, fixes #3582 (Sandro Bonazzola) === 1.9.19 === 2007-11-06 Fabio Morbec <fabio@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * doc/release-checklist.txt: * kiwi/__version__.py * kiwi.spec Release 1.9.19 2007-11-04 Johan Dahlin <johan@gnome.org> * kiwi/ui/entry.py: catch NameError instead of AttributeError, fixes gnome bug #479510 (Richard Hult) 2007-10-31 Mauricio Vieira <mauricio.vieira@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * AUTHORS (Maintainers): Add Mauricio * kiwi/ui/gazpacholoader.py: * kiwi/ui/widgets/scale.py: * tests/test_Scale.py: * tests/test_proxy.py: * tests/test_utils.py: Add support for Proxy scale widget, fixes #3578 2007-10-04 Fabio Morbec <fabio@async.com.br> reviewed by: Christian Reis <kiko@async.com.br> * kiwi/ui/objectlist.py (SummaryLabel.update_total): An error occur in SummaryLabel when update_total try to sum Decimal with None. Fixes #3557 2007-09-14 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/combo.py (_EasyComboBoxHelper.get_selected): Return None instead of raising AssertionError when nothing has been inserted yet. === 1.9.18 === 2007-09-11 Fabio Morbec <fabio@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * kiwi/__version__.py * kiwi.spec Release 1.9.18 === 1.9.17 === 2007-07-31 Fabio Morbec <fabio@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * kiwi/__version__.py: Release 1.9.17 2007-08-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py: * gazpacho-plugin/kiwiwidgets.xml: Add gazpacho support for scale widgets too. * kiwi/ui/widgets/scale.py: Add HScale/VScale, based on patch by Mauricio B. C. Vieira. 2007-08-26 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (Column, ObjectList): Remove the cache property. (ObjectList): Refactor column and renderer handling to the Column 2007-08-22 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/listdialog.py (ListContainer._on_list__row_activated): If we're editable open fire up edit signal when double clicking 2007-08-02 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Add basic DND support 2007-07-25 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/entry.py (KiwiEntry.prefill): Handle duplicate entries by adding (n) to the end of the name 2007-07-25 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (Column.as_string): Call format_func before checking the format and the datatype, it should override everything. 2007-07-24 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dialogs.py (selectfolder): New function based around gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER. Based on patch by Paul Eipper (#3490) * kiwi/ui/objectlist.py (Column): Add ellipsize and font-desc properties. Handle list without selection. Add a font-desc parameter to ListLabel/SummaryLabel 2007-07-19 Fabio Morbec <fabio@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/combo.py (ProxyComboBoxEntry.prefill): Changed clear_entry param to True === 1.9.16 === 2007-07-16 Johan Dahlin <jdahlin@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * kiwi/__version__.py: Release 1.9.16 2007-07-16 Johan Dahlin <jdahlin@async.com.br> * po/pl.po: Add polish translation (Jarek Zgoda) * kiwi/ui/entry.py: Sometimes the entry completion breaks, #2901, patch by Ali Afshar. 2007-07-13 Fabio Morbec <fabio@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/comboentry.py (ComboEntry._on_entry__scroll_event): If don't have data in the model just return 2007-07-02 Johan Dahlin <jdahlin@async.com.br> * glade3-plugin/setup.py (glade3_exists): Check for gladeui-1.0 instead of libgladeui-1.0, fixes #3461 * kiwi/ui/objectlist.py (ObjectTree): Add a row-expanded signal. Based on patch by Ali Afshar, fixes #3460 2007-06-14 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * examples/validation/personalinformation.glade: * examples/validation/personalinformation.py: Add a currency widget * kiwi/ui/widgets/label.py: Set alignment according to the datatype. 2007-06-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/test_tasklet.py: Disable the emission hook test if pygobject doens't support it. * kiwi/tasklet.py: Misc. pylint fixes and code cleanup. * kiwi/tasklet.py (Tasklet.add_join_callback): Allow passing extra user arguments to the callback. (Tasklet.start): New start() method to bootstrap the tasklet. (Tasklet.__init__): Add parameter to allow constructing tasklets without starting them. * tests/test_tasklet.py (TestWaitForSignal.testEmissionHook): Tesk emission hooks. * kiwi/tasklet.py (WaitForSignal): Add support for signal emission hooks by allowing the programmer to pass a GObject class instead of instance. 2007-06-06 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/label.py: Allow string replacements in ProxyLabels 2007-05-31 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/proxy.py: * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/combo.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/textview.py: * tests/test_proxy.py: Make the proxy call widget.update(ValueUnset) for all proxy widgets when resetting the model (eg, proxy.set_model(None)). 2007-05-31 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py: * tests/test_Entry.py: Fix for #3408, Entry reads valueunset always, when empty 2007-05-31 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dateentry.py (DateEntry.get_date): Catch ValidationError and ignore it. 2007-05-29 Johan Dahlin <jdahlin@async.com.br> * kiwi/db/sqlobj.py: Add support for full text indexes under postgres. * kiwi/ui/gaxmlloader.py: * kiwi/ui/views.py: Add support for loading GAXML files 2007-05-28 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/currency.py: * kiwi/ui/proxywidget.py: Allow proxy widgets to pass paramenters to the datatype converter. * kiwi/ui/widgets/entry.py: Never show the currency symbol on currency entries. Fixes #3398 2007-05-25 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * gazpacho-plugin/kiwiwidgets.xml: * kiwi/ui/gazpacholoader.py: Add gazpacho support for ObjectTree, fixes #3389 === 1.9.15 === 2007-05-22 Johan Dahlin <jdahlin@async.com.br> * kiwi/environ.py (Library.__init__): Save the prefix 2007-05-21 Johan Dahlin <jdahlin@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * doc/release-checklist.txt: * kiwi/__version__.py: Release 1.9.15 2007-05-21 Johan Dahlin <jdahlin@async.com.br> * MANIFEST.in: * doc/Makefile: * tools/epyrun: Use pydoctor instead of epydoc. * kiwi/python.py (AttributeForwarder): Add a new class, which can be used to forward attributes to another object. 2007-05-17 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (_BaseDateTimeConverter.from_string): Disallow dates before 1900, since the strftime implementation on Linux does not allow it. Fixes #3363 2007-05-15 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/search.py (SearchSlaveDelegate.set_summary_label): Add support for setting a summary label 2007-05-14 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/search.py (SearchFilter): Inherit from a widget and add a filter-position child property. Add normal properties to the filter and the container. Add a common base class and remove a couple of methods from the interface * tests/test_ObjectList.py (ConstructorTest.testGObjectNew): Add a test * kiwi/ui/objectlist.py (ObjectList.__init__): Make sure gobject.new works Fixes #3343 2007-05-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (Column): Turn attributes into a GObject property. * kiwi/ui/search.py (ComboSearchFilter.__init__): Make values optional (SearchContainer.add_filter): Only add the executer columns if we have an executer set, don't require one. 2007-05-11 Johan Dahlin <jdahlin@async.com.br> * kiwi/log.py (set_log_file): Return the file handlers stream, useful when the application want to use other means to write to the same file. 2007-05-09 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/search.py: (SearchSlaveDelegate.disable_search_entry): Add a method to make it possible to disable the search entry. (DateSearchFilter.set_use_date_entries): New, to disable the user selectable date entries (DateSearchFilter.get_end_date, DateSearchFilter.get_start_date): New accessors (DateSearchFilter.select): Add a position argument (DateSearchFilter.clear_options): New (DateSearchFilter.add_option_fixed) (DateSearchFilter.add_option_fixed_interval): New, added methods to make it possible to add fixed dates/interval 2007-05-04 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: * tests/test_ObjectList.py: Objectlist does not set a radio column value to true if all values are false. Fixes #3339 2007-05-03 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (ObjectList.insert): * tests/test_ObjectList.py (MethodTest.testInsert): Implement, add tests. 2007-05-03 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/entry.py: (Masks): It was possible to move the cursor outside the editable fields sometimes. Fixes #3333 * tests/test_masks.py: some tests for this case. 2007-04-30 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Add an expander property to the Column. Fixes #3336 2007-04-26 Johan Dahlin <jdahlin@async.com.br> * examples/entrymask.py: Add a new example * kiwi/__init__.py: Add an explicit version check and give up if the version is too old. 2007-04-25 Johan Dahlin <jdahlin@async.com.br> * examples/search.py: * kiwi/db/query.py: * kiwi/db/sqlobj.py: * kiwi/ui/search.py: Add auto_search mode, which is enabled by default. Add optional columns, callback parameters to add_filter, to make it easier to integrate with the query executer. Add a generic query callback to the SQLObject executer. Use new api in example. * kiwi/ui/search.py: (DateSearchFilter._update_dates): When switching to a custom day, always set both to today. When switching to a custom interval, always use today and tomorrow. 2007-04-25 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/search.py (DateSearchFilter.select): Add and reorganize internals a bit to be able to select by option_type. 2007-04-25 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (ObjectList.grab_focus): Add, fixes #3326 2007-04-20 Johan Dahlin <jdahlin@async.com.br> * examples/search.py: Add an example. * kiwi/ui/search.py (DateSearchFilter): Make sure that you cannot select a start date after the end date and an end date before the start date. Add some comments explaning what's going on since the code is not that trivial any longer. 2007-04-19 Johan Dahlin <jdahlin@async.com.br> * README: Mention that SQLObject is an optional dependency * kiwi/db/__init__.py: * kiwi/db/query.py: * kiwi/db/sqlobj.py: * kiwi/enums.py: * kiwi/interfaces.py: * kiwi/ui/search.py: Add a SearchContainer plus database independent infrastructure to construct queries. Include a SQLObject plugin 2007-04-19 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/combo.py (ProxyComboBoxEntry.insert_item) (ProxyComboBox.insert_item, _EasyComboBoxHelper.insert_item): Implement insert_item. 2007-04-18 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dateentry.py (DateEntry.set_date): Allow None which means reset the date (DateEntry.get_date): Never return ValueUnset. * kiwi/ui/objectlist.py (ObjectList.sort_by_attribute): Add. Fixes #3311, based on patch by Ali Afshar. 2007-04-16 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Do not set a pixbuf if the data value is None. Fixes #3310 * kiwi/ui/objectlist.py: Set the sort columnm id so the columns end up sorted. Fixes #3032 2007-04-10 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/proxywidget.py (ProxyWidgetMixin._as_string): Provide a default (string) converter if none is set. 2007-04-08 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py (ProxyEntry.__post_init__): Remove dirty idle add hack and use __post_init__ instead. * kiwi/utils.py (PropertyObject.__post_init__): Add a hook which is called after the object construction is finished. 2007-04-03 Johan Dahlin <jdahlin@async.com.br> * kiwi/environ.py (Environment.add_resource): Do not append the same resource path twice 2007-04-02 Johan Dahlin <jdahlin@async.com.br> * tests/test_Entry.py: Add a test * kiwi/ui/widgets/entry.py (ProxyEntry.__init__): Add a workaround for http://bugzilla.gnome.org/show_bug.cgi?id=425501, fixes #3259 2007-03-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/environ.py (Library.__init__): Only add root/lib/pythonX.Y/site-packages to sys.path if it exists. === 1.9.14 === 2007-03-23 Johan Dahlin <jdahlin@async.com.br> * Makefile: * NEWS: * debian/changelog: * doc/howto.tex: * kiwi/__version__.py: Release 1.9.14 2007-03-23 Johan Dahlin <jdahlin@async.com.br> * gazpacho-plugin/kiwiwidgets.xml: Re-enable the ObjectList 2006-03-23 Johan Dahlin <jdahlin@async.com.br> * glade3-plugin/kiwiwidgets.py: * glade3-plugin/kiwiwidgets.xml: * glade3-plugin/setup.py: Add Glade-3 plugin based on patch by Ali, fixes #3239 * kiwi/dist.py: Do not require a name parameter to be passed in. 2007-03-22 Johan Dahlin <jdahlin@async.com.br> * kiwi/controllers.py (BaseController.on_key_press): gdk.keyval_name returns None if there is no name for the key, avoid raising an exception in that case, just silently ignore it. 2007-03-20 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Set the __gtype_name__ on Column and ObjectTree 2007-03-19 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (Column): Mention the supported data types in the doc string. 2007-03-05 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/listdialog.py (ListContainer): Add a return value to edit-item, inverse bool for remove-item. * examples/listdialog.py: New example * kiwi/ui/listdialog.py (ListDialog, ListContainer): New dialog to implement * kiwi/enums.py (ListType): new enum * kiwi/utils.py (quote): new function 2007-03-01 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/comboentry.py (ComboEntry.set_active_iter): If object is None do not set the text of the entry 2007-02-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (ObjectList.__setitem__): Update the cache when replacing an object (ObjectList.__contains__): Use iters cache for consitency with index() and speed. 2007-02-22 Johan Dahlin <jdahlin@async.com.br> * setup.py (ext_modules): Make sure that the pkgconfig file for pygtk-2.0 is installed before checking which version we have. 2007-02-21 Johan Dahlin <jdahlin@async.com.br> Change the extensions of all ui tests to .doctest. * tests/ui/diary2.doctest: Add two assertion checks. * tests/test_ui.py (test_filename): Use subprocess instead of popen2 * kiwi/ui/test/runner.py (Runner._iterate): Add support for checking the return value of a function. 2007-02-15 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py (DataTypeAdaptor.update): Set some sensible default data-types for the widgets * kiwi/ui/gazpacholoader.py (ModelProperty._on_widget__notify): Track the name as the default model-attribute * kiwi/ui/proxy.py (Proxy._setup_widget): Do not require model-attribute to be explicitly set. Use the widget name if it's not set. 2007-02-14 Johan Dahlin <jdahlin@async.com.br> * kiwi/component.py: Make providedBy check in subclasses, makes it possible to use personalinformation.py without depending on zope.interface. 2007-02-09 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dateentry.py (_DateEntryPopup.popup): Filter out ValueUnset. 2007-02-08 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (ObjectList._treeview_search_equal_func): Make it case-insensitive by default. 2007-02-07 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/icon.py (IconEntry._recompute): Use alternative methods to trigger a recompute(), fixes ComboEntry issue since ::change was emitted when it shouldn't be needed. 2007-02-06 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py (ProxyEntry.read): * tests/test_Entry.py (EntryTest.testRead): Return ValueUnset when the entry is empty instead of an empty string. 2007-02-04 Johan Dahlin <jdahlin@async.com.br> * kiwi.spec (Requires): * Makefile: * MANIFEST.in: Add rpm spec file. === 1.9.13 === 2007-02-01 Johan Dahlin <jdahlin@async.com.br> * NEWS: * debian/changelog: * doc/howto.tex: * kiwi/__version__.py: Release 1.9.13 2007-02-01 Johan Dahlin <jdahlin@async.com.br> * setup.py (pkgs): Use pkg-config instead of importing gtk which requires a display. * MANIFEST.in: Always include _kiwi.c 2007-01-31 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/icon.py: Fix workaround for recompute and call it after showing an icon on a widget. === 1.9.12 === 2007-01-29 Johan Dahlin <jdahlin@async.com.br> * Makefile: * NEWS: * debian/changelog: * doc/howto.tex: * doc/release-checklist.txt: * kiwi/__version__.py: * po/fr.po: * po/kiwi.pot: * po/pt_BR.po: * po/sv.po: 1.9.12 2007-01-19 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/comboentry.py (_ComboEntryPopup.set_selected_iter): Try setting the full model if everything else fails. Based on patch by Goedson Teixeira Paixao Fixes #3099. 2006-11-11 Marco Antonio Porcho Souza <maporcho@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (_BaseDateTimeConverter._convert_format): Use YYYY/mm/dd instead %Y/%m/%d in error messages. Fixes #3041. 2007-01-16 Johan Dahlin <jdahlin@async.com.br> * po/fr.po: Added French translation contributed by Benoit Myard. 2006-12-06 Johan Dahlin <jdahlin@async.com.br> * kiwi/log.py (ReversedGlobalFilter.filter): Use >= instead of > * tests/test_log.py (LogTest.testStdErr): Add tests warnings printed on the console and to a log file. Fixes #2984 2006-12-05 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (ObjectList.set_visible_rows): Impl. 2006-11-29 Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py (listpackages): Provide better error messages. 2006-11-11 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/hyperlink.py: Make sure the hyperlink stays within it's own allocation. Fixes #2923 2006-11-02 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (ObjectTree._append_internal): Allow specify parents which are objects inserted in the tree. (ObjectTree.collapse, ObjectTree.expand): New methods, suggested by the incredible Ali (ObjectTree): kill ObjectRow, operate on instances inserted into the tree instead, to simplify the API 2006-10-29 Johan Dahlin <johan@gnome.org> * kiwi/datatypes.py: * kiwi/ui/objectlist.py: * examples/list/enumcombo.py: * tests/test_datatypes.py: Add support an enum data type and tests. Add support for displaying an enum as a combo cell renderer in the object list and example 2006-10-17 Gustavo J. A. M. Carneiro <gjc@gnome.org> * kiwi/tasklet.py: * tests/test_tasklet.py: When arming a WaitForTasklet check if the state is zombie and join immediately. Add tests 2006-10-10 Johan Dahlin <jdahlin@async.com.br> * kiwi/i18n/i18n.py (compile_po_files): Unlink the old POTFILES.in in case of an error. Check the result code of the pot generation, it may fail if the encoding is inconsistent. === 1.9.11 === 2006-10-09 Johan Dahlin <jdahlin@async.com.br> * NEWS: * doc/howto.tex: * kiwi/__version__.py: Update * kiwi/ui/views.py (SlaveView._check_reserved): Raise ValueError instead of AttributeError, fixes #1998 (Sidnei da Silva) 2006-10-09 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Add right-click and emit double-click only when a row is selected, fixes #2817 2006-10-05 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * examples/validation/personalinformation.glade: Add an example. * kiwi/enums.py: * kiwi/ui/comboboxentry.py: Use KiwiEntry instead of ProxyEntry * kiwi/ui/entry.py: * kiwi/ui/widgets/entry.py: * tests/test_BaseView.py: Fix destruction of windows. * tests/test_Entry.py: * tests/test_masks.py: Refactor mask handling in KiwiEntry. Now it supports the use of fields. Fixes #2838 2006-10-04 Johan Dahlin <jdahlin@async.com.br> * kiwi/component.py: * tests/test_component.py: Add remove_utility and an extra argument to get_utility which is similar to dict.get. Add tests too. 2006-09-29 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/entry.py (KiwiEntry.__init__): Make ProxyEntries work with PyGTK 2.10 again. 2006-09-27 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (Column): Document properties (ObjectList): Document signals and properties 2006-09-25 Johan Dahlin <jdahlin@async.com.br> * kiwi/environ.py (Library.enable_translation) (Library.set_application_domain): Call locale.textdomain/ locale.bindtextdomain aswell so libglade and other applications using libcs translation functions are going to work === 1.9.10 === 2006-09-15 Johan Dahlin <jdahlin@async.com.br> * Makefile: add to simplify release process * setup.py: install documentation 2006-09-12 Johan Dahlin <jdahlin@async.com.br> * kiwi/python.py (enum): Add a new data type * tests/test_python.py (EnumTest): and a test 2006-09-09 Gustavo J. A. M. Carneiro <gjc@gnome.org> * tests/test_tasklet.py: Add WaitForCall test. * kiwi/tasklet.py (WaitForCall): Add a new WaitForCall wait condition, for waiting for a generic callback. * tests/test_tasklet.py: Add a few more tests. * kiwi/tasklet.py (Tasklet): Better handling of the StopIteration exception from tasklets. Add a new STATE_ZOMBIE state to indicate when a tasklet is finished. Add a new return_value instance variable to hold the (surprise!) return value. Document the public instance variables and STATE_* constants. (Tasklet._next_round): When a tasklet sends a message, set the 'sender' field of the message to the sending tasklet. 2006-09-11 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/views.py (_open_glade): Sniff the content of the file and use libglade/gazpacho when appropriate. Fall back to gazpacho since dtd has not always been present 2006-09-08 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/delegates.py: * kiwi/ui/gazpacholoader.py: * kiwi/ui/libgladeloader.py: * kiwi/ui/views.py: Kill gladename in views, delegates and glade adaptors 2006-09-05 Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py (KiwiInstallLib.generate_template): Use a raw string here to allow the use of UNC paths on win32, pointed out by Aaron Spike. 2006-08-30 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/entry.py: Improve focus selection support for mask in entries. Fixes #2787 2006-08-30 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/currency.py: * kiwi/datatypes.py: * kiwi/enums.py: * kiwi/ui/objectlist.py: * kiwi/ui/widgets/entry.py: Alignment support for datatypes. Fixes #2786 2006-08-29 Johan Dahlin <jdahlin@async.com.br> * kiwi/enums.py: * kiwi/interfaces.py: * kiwi/ui/comboentry.py: * kiwi/ui/combomixin.py: * kiwi/ui/test/recorder.py: * kiwi/ui/widgets/combo.py: * kiwi/ui/widgets/combobox.py: * tests/test_comboentry.py: Get rid of ComboMixin, use composition instead. Add an IEasyCombo interface reflecting the current state of the adhook interface. Move the combo enums into kiwi.enums. 2006-08-25 Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py (KiwiInstallData.run_install): Take into account --root to the distutils install command if it's sent in. === 1.9.9 === 2006-08-23 Johan Dahlin <jdahlin@async.com.br> * NEWS: Update * kiwi/__version__.py: Bump 2006-08-23 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/entry.py(set_mask): Check if mask is None before converting it to unicode. * kiwi/datatypes.py: * kiwi/ui/widgets/entry.py: Datatype converters should provide a get_mask method. Fixes #2758 2006-08-22 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py: Reload the list of datatypes on every update of the datatype editor, so new datatypes may appear. 2006-08-21 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/currency.py: * kiwi/datatypes.py: * kiwi/ui/gazpacholoader.py: * kiwi/ui/proxywidget.py: * kiwi/ui/widgets/button.py: * kiwi/ui/widgets/combo.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/filechooser.py: * kiwi/ui/widgets/fontbutton.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/textview.py: * tests/test_datatypes.py: Refactor datatypes and gazpacholoader: Each widgets hold the allowed datatypes for itself. Add name attribute for the converters. 2006-08-18 Johan Dahlin <jdahlin@async.com.br> * kiwi/currency.py: Refactor current to a separate file * kiwi/datatypes.py (ConverterRegistry): add a remove method and make the add method a bit more robust * tests/test_datatypes.py: Add tests * po/kiwi.pot: Merge in new translations * po/sv.po: Update swedish translation * po/pt_BR.po: Update brazilian portuguese translation 2006-08-10 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/__init__.py: * kiwi/__init__.py: Move pygtk import to kiwi/__init__.py so it's called before gobject is tried to be imported. 2006-08-02 Aaron Spike <aaron@ekips.org> reviewed by: Johan Dahlin <jdahlin@async.com.br> * AUTHORS: * kiwi/datatypes.py: * kiwi/ui/widgets/entry.py: * tests/test_datatypes.py: Add proper entry mask support on win32, fixes #2721. 2006-08-02 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gadgets.py: * kiwi/ui/widgets/entry.py: DateEntry breaks when set invalid, fixes #2720. 2006-07-25 Johan Dahlin <jdahlin@async.com.br> reviewed by: Henrique Romano <henrique@async.com.br> * gazpacho-plugin/kiwiwidgets.xml: * kiwi/ui/gazpacholoader.py: * kiwi/ui/widgets/button.py: * tests/test_proxy.py: Add ProxyButton support, Fixes #2698 2006-07-21 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py: Add a converter for gdk.Pixmap. Fixes #2697 * tests/test_datatypes.py: and some tests. 2006-07-17 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/proxywidget.py (validate): validate widget when force is True, even if not visible nor sensitive. Fixes #2682 2005-03-29 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> (ValidatableProxyWidgetMixin.set_invalid): Set the background to red and set the tooltips if the fade is disabled, fixes #2685 2006-07-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/proxywidget.py: * kiwi/ui/comboboxentry.py: * kiwi/ui/comboentry.py: * kiwi/ui/entry.py: * kiwi/ui/gadgets.py: * kiwi/ui/icon.py: * kiwi/ui/proxywidget.py: * kiwi/ui/widgets/spinbutton.py: Fetch the right background color instead of hard coding it to white. Add a get_background() method to ValidatableProxyWidgetMixin. Fixes #2681 (Gustavo Barbieri) 2006-07-03 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py: Decimal does not allow leading/trailing spaces. 2006-06-19 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/combo.py: ProxyComboEntry extend ComboMixin. Fixes #2656 2006-06-19 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py: Changes the way localeconv is retrived, so it gets checked and fixed if necessary, before using it. * tests/test_datatypes.py: Add some pickling tests. Fixes #2654 2006-06-12 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Add use-markup property on column * examples/list/tree.py: Add a new example * kiwi/accessor.py: Fix a bug when specifying a default value * kiwi/ui/objectlist.py: Add ObjectTree 2006-06-12 Ronaldo Maia <romaia@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * examples/framework/color/completion.py: * kiwi/ui/comboentry.py: * kiwi/ui/entry.py: * kiwi/ui/entrycompletion.py: * kiwi/ui/widgets/entry.py: Add KiwiEntryCompletion, that suports custom popup window and treeview, and make ComboEntry use this completion. 2006-06-05 Johan Dahlin <jdahlin@async.com.br> * tests/test_datatypes.py: Import Decimal from datatypes so the tests will pass on 2.3 * kiwi/datatypes.py: Make decimal support conditional 2006-06-01 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/proxy.py: * kiwi/ui/proxywidget.py: * kiwi/ui/views.py: Treat invisible and insensitive widgets specially, eg, do not validate them and do not update the value in the model. 2006-05-31 Johan Dahlin <jdahlin@async.com.br> * tests/test_datatypes.py (CurrencyTest.testFormatBR): Add a test and clean up locale handling in other tests. * kiwi/datatypes.py (filter_locale): Add a monetary parameter, which takes into account the monetary data. * kiwi/datatypes.py (currency.__new__): Use filter_locale with monetary=True here, fixes #2632 2006-05-24 David Cook <dave@davidcook.org> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Optimize refresh(), fixes #2612 2006-05-24 David Cook <dave@davidcook.org> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Add a sorted keyword, fixes #2611 2006-05-24 David Cook <dave@davidcook.org> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: Remove unnecessary on_column__clicked handler, fixes #2610 2006-05-04 Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py: Add support for templates 2006-05-04 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/objectlist.py: display locale specific information for float, decimal and currency datatypes. Fixes #2562 2006-05-03 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/dateentry.py: * kiwi/ui/proxywidget.py: * kiwi/ui/widgets/entry.py: Add validation for DateEntry widget 2006-04-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/test/main.py (excepthook): Add an exception hook * tests/runuitests.py: * tests/test_ui.py: Integrate ui tests into trial, remove old runuitests script. 2006-04-27 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/test/player.py: * tests/runuitest.py: * tests/ui/diary.py: * tests/ui/diary2.py: Add a couple of ui tests 2006-04-27 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/test/main.py: * kiwi/ui/test/player.py: * kiwi/ui/test/recorder.py: Improve logging, fix a bug in finish() 2006-04-27 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/filechooser.py (ProxyFileChooserButton.__init__): Immitate PyGTK implementation argument wise * kiwi/ui/test/common.py: * kiwi/ui/test/listener.py: * kiwi/ui/test/main.py: Add optional support for emission hook. * README (Kiwi): Mention that PyGObject 2.10.0 is recommended for the UI test 2006-04-27 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py (ProxyEntry.do_changed): Merge the the do_changed methods. * kiwi/environ.py (Environment.find_resource): Make sure it's a file 2006-04-26 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/dateentry.py: Fix DateEntry calendar popup, so it hides correctly. Fixes #2545 2006-04-26 Johan Dahlin <johan@gnome.org> * kiwi/dist.py (_VariableExtender.__init__): When prefix is not set, use sys.prefix instead. 2006-04-25 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * tests/test_ObjectList.py: Add tests for list of RadioButtons 2006-04-25 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/entry.py (KiwiEntry.prefill): Fix exceptions, fixes #2535 (Patrik O'Brien) === 1.9.8 === 2006-04-25 Johan Dahlin <jdahlin@async.com.br> * NEWS: Update 2006-04-25 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/objectlist.py (Column.as_string): Use a slightly different logic to convert to a string, fixes boolean radio columns 2006-04-25 Johan Dahlin <jdahlin@async.com.br> * kiwi/environ.py: Add support for .gz and .bz2 compressed glade files, supported by recent gazpacho versions. Also check in the current directory when everything else fails. Based on patch by Sidnei da Silva, fixes #2409 2006-04-24 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/objectlist.py: fixing when data is None in as_string * tests/test_ObjectList.py: a test case when data is None 2006-04-24 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/test/main.py: * kiwi/ui/test/player.py: Run the script in a separate thread and the application in the main thread. Makes it easier to integrate the testsuite in applications that can't be run in threads. 2006-04-19 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * examples/framework/sizegroup/shell.glade: * examples/framework/sizegroup/slave_view.glade: * examples/framework/sizegroup/slave_view2.glade: * examples/framework/sizegroup/slaves.py: Sizegroup merging example * kiwi/ui/views.py: When attaching a slave, merge the sizegroups with the same name 2006-04-19 Johan Dahlin <johan@gnome.org> * kiwi/ui/objectlist.py (_ContextMenu._on_menuitem__activate): Call row_changed for all rows after changing the visibility a column. This will make the treeview remeasure nicely. 2006-04-18 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/radiobutton.py (ProxyRadioButton.__init__): Set the group after calling the parents constructor, otherwise we'll get :toggled emitted before the object is initialized properly. 2006-04-12 Patrick K O'Brien <pobrien@orbtech.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (ObjectList.__init__): Add row-activated signal and make the old double-click signal only be emitted when a double-click on the list. Fixes #2526 2006-04-11 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/objectlist.py: always use a converter to set the contents of a column in a ObjectList. Fixes #2523 2006-04-10 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/combomixin.py (ComboMixin.prefill) (ComboMixin.append_item): Check for basestring instead of str so Unicode can be used, thanks to Alceste Scalas 2006-04-07 Patrick K O'Brien <pobrien@orbtech.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py: only respond to the toggled event when a boolean column is set to editable. Fixes #2525 2006-04-06 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/entry.py: * kiwi/ui/icon.py: * kiwi/ui/proxywidget.py: * kiwi/ui/widgets/combo.py: * kiwi/ui/widgets/spinbutton.py: Refactor tooltips to fix bug #1954 2006-04-06 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * examples/validation/personalinformation.py: * kiwi/ui/entry.py: * kiwi/ui/widgets/entry.py: * tests/test_Entry.py: Changed mask characters and some clean-ups. Fixes #2519 2006-04-04 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/entry.py: Clean up the handling of the exact_completion property. * kiwi/python.py: Get rid of GObject stuff in base classes, move it to kiwi utils * kiwi/utils.py: inline class initiable meta here 2006-03-30 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dateentry.py (DateEntry.__init__): Only set the mask if it's not empty * kiwi/ui/widgets/entry.py (ProxyEntry.set_mask_for_data_type): Instead of skipping, try to do an educated guess of the mask. 2006-03-30 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/proxywidget.py: update the validation error tooltip every time the value changes (for tooltips that containg the invalid value) * po/kiwi.pot: * po/pt_BR.po: new translations * po/sv.po: 2005-03-29 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/colorbutton.py: * kiwi/ui/widgets/fontbutton.py: Add proxy widgets for gtk.ColorButton and gtk.FontButton. Fixes #2511 2006-03-29 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/gazpacholoader.py: * po/kiwi.pot: * po/pt_BR.po: * po/sv.po: pt_BR translation 2006-03-29 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/ui/widgets/spinbutton.py: No need to press enter to notify that the value of the spinbutton changed. * tests/test_proxy.py: Fixing some tests and adding new ones. 2006-03-28 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * examples/framework/diary/diary2.py: When the list is empty, pass None to proxy.set_model * examples/framework/news/news4.py: Fixing methods, so they work properly with both callbacks and keyactions. 2006-03-26 Johan Dahlin <jdahlin@async.com.br> * kiwi/desktopparser.py: Add a GKeyFile inspired .desktop parser 2006-03-24 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/comboentry.py: * kiwi/ui/entry.py: * kiwi/ui/widgets/combo.py: * kiwi/ui/widgets/entry.py: In ProxyComboEntry, only listen to content-changed on the ProxyEntry. In ProxyEntry, work around GtkEntry::changed which sometimes is emitted twice when set_text is called. In KiwiEntry.get_selected_by_iter, return None if the text from the model doesn't match the text 2006-03-23 Johan Dahlin <jdahlin@async.com.br> * gazpacho-plugin/kiwiwidgets.xml: * kiwi/ui/gazpacholoader.py: * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/filechooser.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/spinbutton.py: * kiwi/ui/widgets/textview.py: * tests/test_CheckButton.py: * tests/test_Label.py: * tests/test_SpinButton.py: * tests/test_utils.py: Rename all widgets to Proxy..., update gazpacho and tests. 2006-03-23 Ronaldo Maia,,, <romaia@async.com.br> reviewed by: jdahlin: * kiwi/ui/proxy.py: allow None to be passed to proxy.set_model * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/radiobutton.py: Allow None to be passed to update 2006-03-23 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py: Move setlocale() call to __init__.py * kiwi/environ.py (Library.enable_translation): Refactor a little bit try to locate the .mo file and give a warning if it cannot be found. 2006-03-22 Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py (KiwiInstallLib._write_dictionary): Replace / with os.sep on win32, fixes installation. * kiwi/ui/entry.py: * kiwi/ui/widgets/entry.py: * tests/test_Entry.py: Move stuff from ProxyEntry to KiwiEntry, use a kiwi entry in the ComboEntry. 2006-03-22 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/proxy.py: Rename from kiwi.proxies * kiwi/acccessor.py: Rename from accessors * kiwi/model.py: Rename from model * kiwi/proxies.py: Reorganize, Deprecate new_model, Rename model to _model and add a property. * kiwi/interfaces.py: * kiwi/proxywidget.py: Document/reorganize signals 2006-03-21 Johan Dahlin <jdahlin@async.com.br> * kiwi/proxywidget.py: * kiwi/ui/proxywidget.py: * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/combo.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/filechooser.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/spinbutton.py: * kiwi/ui/widgets/textview.py: Rename mixins and move out of kiwi/ui/widgets/ 2006-03-21 Johan Dahlin <jdahlin@async.com.br> * kiwi/interfaces.py: * kiwi/proxies.py: * kiwi/ui/views.py: * kiwi/ui/widgets/proxy.py: Rename interfaces and start to document 2006-03-21 Johan Dahlin <jdahlin@async.com.br> * gazpacho-plugin/kiwiwidgets.xml: * tools/glade_conversor.py (filters): Update to reflect renames. * kiwi/ui/widgets/radiobutton.py (RadioButton.__init__): Rename RadioButton to ProxyRadioButton. Add gtk.RadioButton compatible arguments to ProxyRadioButton * kiwi/ui/widgets/entry.py: Rename Entry to ProxyEntry * kiwi/ui/gazpacholoader.py (GazpachoWidgetTree.__init__): Print deprecation warnings inside a glade file nicely * kiwi/python.py (deprecationwarn, disabledeprecationcall): New functions, to manage deprecation warnings 2005-12-14 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/filechooser.py: Add widget support for filechooserbutton and filechooserdialog. 2006-03-21 Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py (setup): Add a distutils setup() replacement to simplify installation of kiwi packages. * kiwi/__init__.py: * kiwi/environ.py: * kiwi/log.py: Simplify localization for uninstalled applications. Use proper logging in environment 2006-03-20 Ronaldo Maia <romaia@async.com.br> reviewed by: jdahlin * kiwi/datatypes.py: * tests/test_datatypes.py: Output a string in a locale dependent way, even if a format is not provided Fixes #2486 2006-03-20 Johan Dahlin <jdahlin@async.com.br> * kiwi/component.py: * kiwi/interfaces.py: * kiwi/proxies.py: * kiwi/ui/views.py: * kiwi/ui/widgets/proxy.py: * tests/test_component.py: Add implements() and providedBy() in a (almost) zope.interface compatible way. Plenty of tests. Fixes #2501 2006-03-20 Johan Dahlin <jdahlin@async.com.br> * kiwi/decorators.py (deprecated.wrapper): Add an optional log argument * kiwi/log.py (_log_levels): Add a global log object 2006-03-17 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/comboentry.py (ComboEntry._on_entry_completion__match_selected): When entry completion is used, update the iter in the treeview aswell. 2006-03-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/comboentry.py (_ComboEntryPopup.popup): Set the height on the treeview instead of the popup window. === 1.9.7 === 2006-03-11 Johan Dahlin <jdahlin@async.com.br> * NEWS: Update 2006-03-07 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dateentry.py: * kiwi/ui/entry.py: * kiwi/ui/widgets/entry.py: Make sure the width of the dateentry is not longer than it needs to be, don't expand at all. 2006-03-06 Johan Dahlin <jdahlin@async.com.br> * gazpacho-plugin/kiwiwidgets.py: * gazpacho-plugin/kiwiwidgets.xml: * kiwi/ui/gazpacholoader.py: * kiwi/ui/hyperlink.py: Add gazpacho support for hyperlink. 2006-03-06 Johan Dahlin <jdahlin@async.com.br> * kiwi/component.py: (get_utility): Add limited support for zope.interfaces. 2006-03-05 Johan Dahlin <jdahlin@async.com.br> * gazpacho-plugin/kiwiwidgets.xml: * kiwi/ui/dateentry.py: * kiwi/ui/gazpacholoader.py: * kiwi/ui/widgets/entry.py: * tests/test_dateentry.py: Add a DateEntry which has a toggle button that popups a calendar. 2006-03-05 Johan Dahlin <jdahlin@async.com.br> * setup.py (version): Use the new features * kiwi/dist.py: Add support for $sysconfdir and add an install_data subclass which replaces variables. Fetch name from distribution object instead of subclass. Refactoring and cleanups 2006-03-02 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (_IntConverter.as_string): Do not use a locale specific way of formatting integers. * tests/test_datatypes.py (IntTest.testAsStringUS) (IntTest.testAsStringUS): Add a test 2006-03-01 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/objectlist.py (ObjectList.remove): Add an optional select argument to be consistent with append. * kiwi/ui/widgets/radiobutton.py (RadioButton._on_group_changed): Emit content changed when any radio button in the group changes 2006-02-24 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/combo.py: * kiwi/ui/widgets/entry.py: * tests/test_comboentry.py: Add support for comboentry.select_item_by_data. Add tests and remove ComboMixin interface from ProxyComboEntry. Rename _create_completion to _get_completion. Reorganize methods in comboentry to match the 2006-02-24 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (_BaseDateTimeConverter.get_format): Remove seconds and AM/PM for now, since we don't have enough infrastructure to support optional AM/PM. (filter_locale): Refactor to a function and replace decimal point with a . * tests/test_datatypes.py (CurrencyTest.testFormatBR): Add tests for decimal points which are not . 2006-02-23 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/icon.py (IconEntry.deconstruct): Add support for drawing the icon on the left side and when xalign is higher than 0.5, draw the icon on the left side. * kiwi/datatypes.py (_BaseDateTimeConverter.from_string): * kiwi/ui/widgets/entry.py (DATE_MASK_TABLE): Add support for datetime.time * kiwi/ui/comboentry.py (ComboEntry.prefill): Use entry.prefill * kiwi/ui/widgets/entry.py (Entry.prefill): New method (Entry.set_completion_strings): Deprecate and use prefill internally 2006-02-23 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py: Split out mask and icon to a separate entry which doesn't depend on the framework. Make get_empty_mask() public. 2006-02-22 Johan Dahlin <jdahlin@async.com.br> * examples/framework/diary/diary.glade: * examples/framework/diary/diary.py: * kiwi/proxies.py: * kiwi/ui/delegates.py: * kiwi/ui/gazpacholoader.py: * kiwi/ui/libgladeloader.py: * kiwi/ui/views.py: Add ProxyDelegate and example. Rename proxy.new_model to proxy.set_model. Add sizegroup merging support (disabled). Add show_and_loop method on the view. Remove a few mutable default arguments. 2006-02-21 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py (Entry.set_text): Set the cursor after the inserted text (Entry.prop_set_data_type): Right align entries which contain numbers by default * kiwi/ui/objectlist.py: Add Column.editable_attribute which is a row (object) specific way of saying if an attribute is editable or not. 2006-02-18 Patrick K O'Brien <pobrien@orbtech.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py (TemplateInstallLib.install): win32 install fix Fixes bug 2446 === 1.9.6 === 2006-02-17 Johan Dahlin <jdahlin@async.com.br> * NEWS: 1.9.6 * kiwi/ui/widgets/entry.py: (Entry._set_mask_for_data_type, Entry.prop_set_data_type): For datetime objects, set a default mask (Entry._insert_mask): Split into two (Entry.read): If the input is just the empty mask return an empty string. * tests/test_Entry.py: Add paste/cut support. Refactor cleanup. Add a couple of basic tests. 2006-02-16 Johan Dahlin <jdahlin@async.com.br> * examples/validation/personalinformation.py: * kiwi/ui/widgets/entry.py: Add basic mask support to entry, still needs a few improvements. Also add a simple example. 2006-02-15 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/comboentry.py: * kiwi/utils.py: * tests/test_gazpacholoader.py: * tests/test_utils.py: 2.6 compatibility added 2006-02-15 Johan Dahlin <jdahlin@async.com.br> * kiwi/utils.py (PropertyMeta._update_bases): Make sure subclassing of a combobox works * tests/test_utils.py (Subclassing.testCombo): Add a test for this * gazpacho-plugin/kiwiwidgets.xml: * kiwi/ui/comboboxentry.py: * kiwi/ui/comboentry.py: * kiwi/ui/combomixin.py: * kiwi/ui/gazpacholoader.py: * kiwi/ui/widgets/combo.py: * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/list.py: * tools/glade_conversor.py: Refactor combos, beginning of gazpacho/proxy support for comboentry. 2006-02-14 Johan Dahlin <jdahlin@async.com.br> * examples/framework/news/news2.py: * examples/framework/news/news3.py: * examples/framework/news/news4.py: * examples/list/editable.py: * examples/list/kitchensink.py: * examples/list/radio.py: * examples/list/searchbar.py: * examples/list/simple.py: * examples/list/sortable.py: * examples/list/stockicon.py: * gazpacho-plugin/kiwiwidgets.xml: * kiwi/ui/gazpacholoader.py: * kiwi/ui/objectlist.py: * kiwi/ui/test/listener.py: * kiwi/ui/widgets/list.py: * tests/test_List.py: * tests/test_ObjectList.py: * tools/glade_conversor.py: Rename List to ObjectList and move it to kiwi.ui. Update examples, tests, callsites and conversion helpers. Keep a backwards compatibility layer. 2006-02-14 Johan Dahlin <jdahlin@async.com.br> * tests/test_utils.py: Add tests for various scenarios * kiwi/python.py: Use __init__ instead of __new__ in ClassInittableMetaType. * kiwi/utils.py: Simplify, make sure the GObject Meta class registers the GType instead of ourselves. That's the only way to make it honor __gtype_name__ in PyGTK 2.8.x. Remove some backwards compatibility code. And add a hack to make it pickup signals and properties. 2006-02-13 Johan Dahlin <jdahlin@async.com.br> * examples/comboentry.py: * kiwi/ui/comboentry.py: Add a comboentry and example 2006-02-13 Johan Dahlin <jdahlin@async.com.br> * examples/validation/personalinformation.glade: * examples/validation/personalinformation.py: * kiwi/datatypes.py: * kiwi/ui/gazpacholoader.py: * tests/test_datatypes.py: Add a unicode datatype, tests and modify a model attribute in personalinformation to use it. 2006-02-09 Johan Dahlin <jdahlin@async.com.br> * kiwi/component.py: * kiwi/interfaces.py: * tests/test_component.py: Add a very basic component system, based on code by Ali Asfhar 2006-02-09 Johan Dahlin <jdahlin@async.com.br> * tests/test_argcheck.py: 100% coverage here * kiwi/argcheck.py: Remove tests, they're in tests/ now * tools/showcoverage: Steal from gazpacho (who stole from flumotion) * kiwi/ui/widgets/list.py (List.index): Use is None instead of if, return treeiter instead or item.iter. (List.__iter__): Implement __iter__ in returned object so iter(klist) works. * tests/test_List.py: Add tests. Unit coverage up to 50% globally now. 2006-02-08 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py: * tests/test_List.py: Add klist::has-rows and tests. 2006-02-04 Johan Dahlin <jdahlin@async.com.br> * setup.py: Move kiwiwidgets to a subdirectory to mirror the layout of the installed resources. 2006-02-03 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (List._setup_columns): If there are no expanded columns add a fake one after the last one. 2006-02-03 Patrick K O'Brien <pobrien@orbtech.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py: Use set_sort_column_id better with column ids. Simplify _on_column__clicked. When switching columns, always set to ascending sorting. Fixes #2420 2006-02-01 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dialogs.py: Really make it follow the HIG. Copied some code from eel-alert-dialog.c Import stuff from gazpacho, save, open, BaseDialog 2006-02-01 Patrick K O'Brien <pobrien@orbtech.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/argcheck.py: * tests/test_argcheck.py: Add parenthesis in percent checker, so it actually works and does not allow values above 100. Add unit tests. === 1.9.5 === 2006-01-30 Johan Dahlin <jdahlin@async.com.br> * NEWS: Update * kiwi/environ.py (Library.__init__): Do not use an empty from list, it'll fail otherwise === 1.9.4 === 2006-01-27 Johan Dahlin <jdahlin@async.com.br> * NEWS: Update * kiwi/proxies.py (Proxy.update_many): New method, like update but takes a sequence instead 2006-01-25 Johan Dahlin <jdahlin@async.com.br> * kiwi/proxies.py (Proxy.remove_widget, Proxy.add_widget): Add, to be able to add and remove widgets dynamically. Based on patch by Henrique Romano * kiwi/ui/test/common.py (Base.get_object): New function, to avoid accessing private members from subclasses. * kiwi/ui/test/player.py (Player.delete_window): delete the reference to the window, so it can be destroyed properly and new windows can be put here, eg when we reopen the dialog. 2006-01-24 Henrique Romano <henrique@async.com.br> * kiwi/ui/widgets/label.py (Label.set_underline): Implements set_underline method and a minor cleanup on all the other text properties setters. 2006-01-23 Johan Dahlin <jdahlin@async.com.br> * examples/list/stockicon.py: New example to demonstrate this feature. * kiwi/ui/widgets/list.py: Add Column:use_stock and Column:icon-size. 2006-01-16 Johan Dahlin <jdahlin@async.com.br> * kiwi/python.py (Settable): Another idea from twisted imported, and improved. * kiwi/ui/test/listener.py: Pass signals to event types. Add a SkipEvent exception to be able to filter inside the event. Fix DoubleClick event on the list to be caught earlier. * kiwi/ui/test/player.py (ThreadSafeFunction._invoke): Refactor to always return False after the call. * kiwi/ui/test/listener.py: Add a new event for toolbutton clicks. 2006-01-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/combobox.py (ComboBox.clear): Emit content-changed here so the model is updated. * kiwi/ui/test/listener.py: * kiwi/ui/widgets/list.py: Add get_selected_row_number() and double_click() methods to the klist. Add support for List::double-click signal in the ui test. Fixes #2385 2006-01-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/test/common.py: Add support for GtkToolButtons * kiwi/ui/test/player.py: Update UI tests, to be able to run several times in the same process as done in stoqs ui test framework. 2006-01-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/environ.py: Add support for py2exe, based on patch by Carlos Augusto Marcicano * kiwi/argcheck.py (argcheck._type_check): Add support for sending in the default value, even if the type is diffent * tests/test_argcheck.py (ArgTest.func_none): Add test for this 2006-01-10 Johan Dahlin <jdahlin@async.com.br> * examples/list/searchbar.py: New example * kiwi/ui/widgets/list.py (List.add_list): Be a bit smarter when cleaning the list, instead of removing all items, check if they're inserted first. Refactor remove and remove type sniffing. (Column.__init__): Set data_type to string as default. 2006-01-09 Johan Dahlin <jdahlin@async.com.br> * tests/test_datatypes.py: Check if the locale is present before running the tests. Fixes #2377 2006-01-03 Johan Dahlin <jdahlin@async.com.br> * kiwi/tasklet.py: Add a decorator, patch by Gustavo. Fixes 2368 2006-01-03 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (_BaseDateTimeConverter.get_lang_constant): Move lang_constant from being a class variable to an accessor since its undefined on win32. Fixes #2358 2005-12-16 Johan Dahlin <jdahlin@async.com.br> * kiwi/environ.py (Library, Library.__init__): improve doc string === kiwi 1.9.3 === 2005-12-15 Johan Dahlin <jdahlin@async.com.br> * NEWS: Added * kiwi/__version__.py: Bump 2005-12-15 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py: Subclass propertyobject. 2005-12-14 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (SummaryLabel.update_total): Use get_attribute and always convert to float. * kiwi/ui/views.py (SlaveView): Add simple notebook validation support. It'll mark the text of the labels red if there are any widgets inside which are mandatory or invalid. Fixes bug 2286. 2005-12-14 Ali Afshar <aafshar@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * examples/hyperlink/hyperlink_demo.py: * kiwi/ui/hyperlink.py: 2005-12-14 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/delegates.py (SlaveDelegate.__init__) (Delegate.__init__): API Change, move keyactions to the end of the list, to be as compatible as possible with the parent klasses. * kiwi/ui/delegates.py: * kiwi/ui/views.py: Cleanups: - Make a few variables private, remove duplicated code. - Reorganize variables - Refactor functionallity to methods 2005-12-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py: Add support for check buttons in kiwi lists. Also emit cell-edited when changing a radio button. * kiwi/datatypes.py (currency): (CurrencyConverter): Add support for currency. (format_price): Use currency.format * kiwi/ui/widgets/list.py (List._cell_data_func): Add support for currency here. 2005-12-09 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/dialogs.py: Add dialogs, stolen and extended from gazpacho. 2005-12-06 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/test/common.py: * kiwi/ui/test/listener.py: * kiwi/ui/test/player.py: Add API documentation, almost complete now. Also add a timeout for accessing widgets, this will help us to handle situations where it takes some time for some widgets to be created. Also ignore eventual errors when the window is closed. Fix support for selection of multiple rows in KiwiList and add support for ComboBox. * tools/epyrun: Do not ignore directories called test. 2005-12-06 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (BoolConverter.from_string): Do not return a function, instead call the function and return the value of it. Sigh. (BoolConverter.from_string): Always return a boolean, default to False 2005-12-05 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (converter): New baseclass (BaseDateTimeConverter): New baseclass for datetime.* (DateTimeConverter): (TimeConverter): New converters * kiwi/ui/widgets/list.py (List): Use datatype converter to convert to and from strings. Add some optimizations, save the converter instance and send it as an argument to the callbacks. * kiwi/ui/widgets/list.py (List.select_paths): New method, selects a list of paths. * kiwi/proxies.py (Proxy._setup_widgets): Cleanups: Use consistent exception messages Add and use ProxyError instead of TypeError Add a new check to ensure that there are no unsupported widgets added. Change a warning into an exception (Proxy._initialize_widgets): Remove error handler, unused and a hack, unique clashes will be handled in other ways. 2005-12-03 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/test/listener.py: * kiwi/ui/test/player.py: Improve the generated output format to be readable, remove some old stuff. 2005-12-02 Johan Dahlin <jdahlin@async.com.br> * bin/kiwi-ui-test: * kiwi/ui/test/__init__.py: * kiwi/ui/test/common.py: * kiwi/ui/test/listener.py: * kiwi/ui/test/main.py: * kiwi/ui/test/player.py: Check-in initial gui testing framework. A recorder, which generates code which uses a simple player object. 2005-12-01 Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py (get_site_packages_dir): New function, to handle installation of modules in the site-packages directory in a platform independent way. * setup.py (version): Use it here. Fixes bug #2326 (Carlos Augusto Marcicano) 2005-11-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py (DataTypeProperty.save): Handle None, since it's now an allowed type 2005-11-26 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (List.remove): Remove the iter from the cache before remove the row. 2005-11-24 Henrique Romano <henrique@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/argcheck.py: Allowing a "extra_check" function be called to validate data after type_check is executed over all the parameters. 2005-11-24 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py: * kiwi/interfaces.py: * kiwi/log.py: * kiwi/proxies.py: * kiwi/ui/gadgets.py: * kiwi/ui/views.py: * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/spinbutton.py: * kiwi/ui/widgets/textview.py: Validation progress: - Empty date fields are now working - ValueUnset are not checked everywhere in the widgets - Fadeout works reliably - validate calls read() instead, since it can now raise exceptions - _as_string/_from_string were inverted. Logging improvements: - Add logging to proxy/view/fade 2005-11-23 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py: * kiwi/interfaces.py: * kiwi/python.py: * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/spinbutton.py: * kiwi/ui/widgets/textview.py: * kiwi/utils.py: Use PropertyObject for all widgets. Simplifies property handling. Merge in properties, even for non gobjects for all bases when using PropertyObject, so we can put properties and signals in the WidgetMixins. Add allowed_data_types, useful for SpinButton and RadioButton. 2005-11-22 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/textview.py: Simplify, rename and privatize string converters. 2005-11-22 Johan Dahlin <jdahlin@async.com.br> * kiwi/interfaces.py: * kiwi/proxies.py: * kiwi/ui/widgets/proxy.py: Kill default-value property 2005-11-22 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py: Handle format == None, for all converters. * setup.py (version): * MANIFEST.in: Install & include AUTHORS NEWS README in the tarball Do not include .pyc files in the tarball === kiwi 1.9.2 === 2005-11-21 Johan Dahlin <jdahlin@async.com.br> * NEWS: Added * kiwi/__version__.py: Bump 2005-11-21 Johan Dahlin <jdahlin@async.com.br> * examples/tasklet/simple.py: * examples/tasklet/test-tasklet.py: * examples/tasklet/test-tasklet2.py: * kiwi/tasklet.py: Add gtasklet from Gustavo Carneiro. 2005-11-21 Johan Dahlin <jdahlin@async.com.br> * kiwi/controllers.py: * kiwi/datatypes.py: * kiwi/decorators.py: * kiwi/dist.py: * kiwi/environ.py: * kiwi/i18n/__init__.py: * kiwi/i18n/i18n.py: * kiwi/interfaces.py: * kiwi/models.py: * kiwi/python.py: * kiwi/ui/__init__.py: * kiwi/ui/gadgets.py: * kiwi/ui/gazpacholoader.py: * kiwi/utils.py: Add docstrings * tools/epyrun: Helper for running epydoc 2005-11-16 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py: Add cache property to column useful when using accessors which can be expensive to compute. 2005-11-15 Johan Dahlin <johan@gnome.org> * kiwi/ui/widgets/list.py (List._load): Catch StopIteration, in case we have an empty list. 2005-11-14 Gustavo Sverzut Barbieri <barbieri@gmail.com> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py: Do not use get_name for getting the name of objects, since it's only present for GtkWidgets, instead use get_data('gazpacho::object-id'), which is set on all objects. Fixes #2231. 2005-11-14 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (SummaryLabel.update_total): Remove erroneousness show. (ListLabel.set_value): Rename from set_text 2005-11-11 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (ListLabel): Add a new label, (actually an hbox), which can be put under or on top of a KiwiList to have a label vertically aligned with a column. (SummaryLabel): Subclass of ListLabel which summarizes the values of a column. * kiwi/ui/widgets/checkbutton.py (CheckButton.prop_set_data_type): Accept string here. * kiwi/ui/widgets/proxy.py (WidgetMixinSupportValidation): Refactor emitting of validation-changed since we also need to emit it when calling set_[valid|invalid|blank] and not only in validate_data. Fixes validation of mandatory entry with completion enabled. 2005-11-10 Johan Dahlin <jdahlin@async.com.br> * kiwi/proxies.py: * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/spinbutton.py: Move validate_data out of read, and do it manually afterwards, there's only two call sites anyway. 2005-11-09 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gadgets.py: * kiwi/ui/views.py: * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/list.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/spinbutton.py: * kiwi/ui/widgets/textview.py: * kiwi/utils.py: Add new method utils.type_register, use it everywhere. 2005-11-09 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/proxy.py (WidgetMixinSupportValidation.validate_data): Only set blank for mandatory widgets and when data is empty. Always convert '' to None for non-string types. * kiwi/ui/widgets/entry.py (Entry.read): Remove a couple of big hacks 2005-11-08 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py (Entry.read): Add a hack to try to fix validation for empty entries. * kiwi/controllers.py (BaseController.__init__): Add support for automatic keyboard accelerators of type key_name or key_modifier_name. * kiwi/ui/widgets/proxy.py (WidgetMixinSupportValidation.set_invalid): Only connect to done here, that's the only place where we need to use it. When done, set text and icon. Also disconnect the signal so it won't be called multiple times. * kiwi/ui/widgets/entry.py (Entry._update_current_object): Add custom validation, when using objects. * kiwi/ui/gadgets.py (FadeOut.start): Add additional state, so we know if we're done when start() is called multiple times. Always emit done, since we're depending on it in other places. * kiwi/ui/widgets/proxy.py (WidgetMixinSupportValidation.don): Wait until the completion is done to set the text. * kiwi/ui/gazpacholoader.py (EntryDataType.get_data_types): Add Object, useful when using entry completion. 2005-11-07 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gadgets.py (FadeOut.stop): Simplify, use delayed.stop, avoids extra state and makes it reliable. Add API documentation. * kiwi/decorators.py (delayed.stop): New function * kiwi/ui/widgets/proxy.py (WidgetMixinSupportValidation.set_blank) (WidgetMixinSupportValidation.set_invalid) (WidgetMixinSupportValidation.set_valid): Make public and add API documentation. 2005-11-03 Johan Dahlin <jdahlin@async.com.br> * kiwi/dist.py (compile_po_files): Handle the case when msgfmt is not found, print a warning and returning nothing, instead of failing later on. 2005-11-01 Johan Dahlin <jdahlin@async.com.br> * kiwi/environ.py (app): Add global app reference (Library.__init__): Add better error messages and insert $prefix/lib/pythonX.Y/site-packages into sys.path 2005-10-31 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/icon.py (IconEntry.update_background): Handle insensitive widgets aswell, always use the current state instead of hard coding GTK_STATE_NORMAL. 2005-10-14 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gadgets.py: * kiwi/ui/widgets/proxy.py: Add two signals (color-changed and done) to FadeOut and move it out to gadgets. 2005-10-14 Johan Dahlin <jdahlin@async.com.br> * kiwi/interfaces.py: * kiwi/proxies.py: * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/spinbutton.py: Do validation in read, simplifies the interaction between the proxy and the widgets. Add some basic documentation to the proxy/validation "interfaces". 2005-10-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/proxies.py: * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/spinbutton.py: * kiwi/ui/widgets/textview.py: Kill WidgetMixin.update, move the check it did to the proxy itself. 2005-10-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py (Entry.do_unrealize): * kiwi/ui/widgets/spinbutton.py (SpinButton.do_unrealize): Chain to parents realize so the parent gets a chance to free the relevent resources. 2005-10-11 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/list.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/spinbutton.py: * kiwi/ui/widgets/textview.py: Redo validation. Fixes #2123 2005-10-10 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (ColoredColumn): New column. (Column): Add two new hooks, renderer_func & on_attach_renderer 2005-10-09 Johan Dahlin <johan@gnome.org> * kiwi/__init__.py: * kiwi/dist.py: * kiwi/environ.py: * kiwi/ui/wizard.py: * setup.py: Add infrastructure for handling installed/uninstalled mode. Introduces Library and Application instances in kiwi.environ. Add distutils helpers. Use environ.Library in for kiwi itself (yay dogfooding). Remove old hack in wizard. 2005-10-08 Johan Dahlin <johan@gnome.org> * kiwi/argcheck.py (argcheck.__call__): Check so the number of arguments are equal before checking default values, so the user can get a useful exception * tests/test_argcheck.py (ArgTest.method2): Add a few more tests. 2005-10-07 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py (DataTypeProperty.save): Do not show editor for Radio/Check, they're always boolean. 2005-10-06 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (List.refresh): New method. 2005-09-30 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/comboboxentry.py (BaseComboBoxEntry): A reimplementation of GtkComboBoxEntry in python. The main difference between this one and the gtk+ one is that we put our own entry (a kiwi entry) instead of the standard one, which allows us to do put an icon in the right part, used by the validation. * kiwi/ui/widgets/tooltips.py (Tooltip.__init__): Add a tooltips implementation, which is a bit more flexible than the one in Gtk+. Currently unused. * tests/test_argcheck.py (ArgTest.testUserDefined): Add some basic tests. * kiwi/argcheck.py: Move in decorator from fiscalprinter. Add some additional tests and support for checking default values. 2005-09-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py: (List): do not save iterator in instance, save the iterators in a local table. * kiwi/ui/widgets/list.py: (List.count, List.index, List.extend): Add (List.insert, List.pop, List.reverse, List.sort): Add stubs (List.append, List.remove, List.update): Rename (List.add_instance, List.remove_instance, List.update_instance) (List.select_instance): Add backwards compat wrappers (List._load): Clean up, add iterator support. (List.select): Check selection mode * kiwi/utils.py (deprecated): New decorator * kiwi/ui/widgets/list.py: Remove a couple of methods, now when we have the iter in the instance. 2005-09-27 Johan Dahlin <johan@gnome.org> * kiwi/ui/widgets/list.py (List.get_previous, List.get_next): New methods. (List.add_instance, List._load): Set instance.iter upon insertion. (Column.__init__): Raise ValueError if iter is used, it's reserved (List.select): Rename from select_instance, use iter from instance, scroll to cell. 2005-09-27 Johan Dahlin <jdahlin@async.com.br> * kiwi/accessors.py (CacheControl.invalidate): Use DefaultValue instead of AttributeError. Fixes bug #695: Do not eat AttributeError's triggered in kgetattr accessors. 2005-09-21 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/combobox.py (ComboBox.__init__): Only emit changed once. 2005-09-20 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/entry.py: Add support for objects mapped to strings for entry completion. Also add a property, exact-completion which decides if it should be case insensitive and match substrings. Fixes bug #2150 * tests/test_List.py: Make it pass again * kiwi/ui/widgets/list.py (List.get_columns): Return the columns here instead of the column definition string. (List.do_get_property): Access the column string directly here. 2005-09-16 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py: Clean up /a bit/, fixes #2144 by inheriting from ComboBoxAdatper aswell. 2005-09-15 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py (DataTypeProperty.save): Add support for data-type in KiwiLabel, fixes #2141 2005-09-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/utils.py: AMD64 fix ported from gazpachos copy. 2005-09-06 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (FloatConverter._filter_locale): Rewrite, easier to read and understand now. Can't remember all bugs it fixes. (IntConverter.from_string): Remove the thousand separators. 2005-09-05 Johan Dahlin <jdahlin@async.com.br> * kiwi/datatypes.py (format_price): Implement a function to format a number according to the current currency. * tests/test_datatypes.py (DataTypesTest.testFormatPrice): some basic tests. * kiwi/ui/widgets/list.py: Add radio property to Column and set the radio property of the CellRendererToggle if it's set to True. Add a new callback for handling CellRendererToogle::toggled which updates the value of the model. 2005-09-05 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (List._setup_columns): Add check for sortable, add a searchable check. (Column): Add a searchable property. (List._setup_column): Set up a search equal func (List._search_equal_func): Define here, checks if the string starts with the value, seems to be the expected behavior. 2005-09-01 Henrique Romano <henrique@async.com.br> * kiwi/ui/widgets/list.py (List._setup_columns): Just verifying if more than one column has the sorted attribute, if so raise ValueError. 2005-06-14 Henrique Romano <henrique@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/gazpacholoader.py: Update to work with gazpacho trunk. Add better data-type filters for various widgets. 2005-08-02 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (Column, List): Add support for cell editing. 2005-08-01 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (Column): subclass GObject implicitly. * kiwi/utils.py (PropertyObject): update to use ClassInittableObject refactor a little bit and add extra checks so we don't accidentally try to register a GObject type for it. Move out so it's not a subclass of GObject, but require it to be a subclass of GObject, this will make it possible to use the class for GObject subclasses * kiwi/python.py: New file, add ClassInittableObject. 2005-07-29 Johan Dahlin <jdahlin@async.com.br> * bin/kiwi-i18n: * kiwi/i18n/__init__.py: * kiwi/i18n/i18n.py: * kiwi/i18n/msgfmt.py: * kiwi/i18n/pygettext.py: Add kiwi-i18n and copy in msgfmt/pygettext from the python distribution, modify msgfmt slightly to be usable from outside of the script. 2005-07-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/proxies.py: * kiwi/ui/views.py: * kiwi/ui/widgets/proxy.py: It turned out that the last patch was not flexible enough. Slaves and proxies had to be attached in the correct order, and sometimes the validation state of the widgets were not emitted. This patch changes the following two things: 1) Always emit validation state for all widgets when attaching a proxy to a view 2) Always emit validation state for slaves attached to views 2005-07-27 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (Column.__init__): Mark title_pixmap as todo, since it's not implemented yet. Sort the other properties after the doc string. Add tooltips doc string. (List._cell_data_func): Clean up a little bit and add support for format func (Column): Add format_func attribute, documentation and basic error handling (Column.from_string): Make it a classmethod, not a staticmethod 2005-07-26 Johan Dahlin <jdahlin@async.com.br> * examples/lang.glade: * examples/slaves.py: * kiwi/interfaces.py: * kiwi/ui/views.py: * kiwi/ui/widgets/proxy.py: Add per view validation, including example. Fixes #2096 r=kiko 2005-07-15 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (Column): Almost a complete rewrite, using a GObject and properties. * kiwi/utils.py: Add a new PropertyObject, fix gproperty to work with float,int and enums 2005-07-14 Johan Dahlin <jdahlin@async.com.br> * tests/test_utils.py (SliceTest): Add tests for slicerange * kiwi/ui/widgets/list.py: Clean up treemodel usage, use python api and define COL_MODEL as 0 and use it everywhere (List.__getitem__): Fix slicing once and for all. 2005-07-13 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (List.add_list): Remove selection, GtkTreeView is different from a GtkCList, if this turns out to be a problem we'll rewrite/readd this code. (List.get_column_by_name): New method (List.__init__): require a list or column, tuples are not allowed (List.add_instance): Remove selection restore here aswell (List.__getitem__): Oh my, fix slicing. 2005-07-12 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/widgets/list.py (List.__contains__): Clean up, use == instead of is (List.__setitem__, List.__getitem__): Support strings, refactor (List.__iter__): Impl. (List.get_selected, List.get_selected_rows): Separate, mimic gtk+ closely. (List.__init__): Select first item in list if we selection is allowed and we're inserting a list. 2005-07-11 Johan Dahlin <jdahlin@async.com.br> * examples/completion.py: * gazpacho-plugin/kiwi2.xml: * kiwi/ui/widgets/entry.py: Add entry completion support and a small example. == 1.9.0 released == 2005-06-28 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/__init__.py: Kill pygtk.require() it won't be missed since all systems which we can run on has pygtk 2.x installed as default. Should also speed up imports. * kiwi/__init__.py: * kiwi/environ.py: * kiwi/interfaces.py: * kiwi/ui/gazpacholoader.py: * kiwi/ui/libgladeloader.py: * kiwi/ui/loader.py: * kiwi/ui/views.py: Kill loader. Move glade/imagepath handling to kiwi.environ. Move abstract adaptor to kiwi.interfaces 2005-06-28 Johan Dahlin <jdahlin@async.com.br> * README: * kiwi/__init__.py: * kiwi/ui/gazpacholoader.py: * kiwi/ui/libgladeloader.py: * kiwi/ui/loader.py: * kiwi/ui/views.py: How much I hate this, but: Write a libglade loader to use as fallback when gazpacho cannot be found. Add a hook to require gazpacho. 2005-06-27 Johan Dahlin <jdahlin@async.com.br> * kiwi/ui/views.py: Allow us to function without a broker. * kiwi/ui/gadgets.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/proxy.py: * kiwi/utils.py: Move gtk related functions from kiwi.utils to kiwi.ui.gadgets 2005-06-27 Johan Dahlin <jdahlin@async.com.br> * examples/PersonalInformation/personalinformation.py: * kiwi/initgtk.py: * kiwi/ui/__init__.py: * kiwi/ui/views.py: * kiwi/ui/wizard.py: Kill initgtk, move quit_if_last to views and pygtk.require() to kiwi.ui, adds a warning. 2005-06-27 Johan Dahlin <jdahlin@async.com.br> * examples/PersonalInformation/personalinformation.glade: * examples/PersonalInformation/personalinformation.py: * gazpacho-plugin/kiwi2.py: * kiwi/interfaces.py: * kiwi/proxies.py: * kiwi/ui/delegates.py: * kiwi/ui/views.py: * kiwi/ui/widgets/__init__.py: * kiwi/ui/widgets/checkbutton.py: * kiwi/ui/widgets/combobox.py: * kiwi/ui/widgets/datatypes.py: * kiwi/ui/widgets/entry.py: * kiwi/ui/widgets/label.py: * kiwi/ui/widgets/proxy.py: * kiwi/ui/widgets/radiobutton.py: * kiwi/ui/widgets/spinbutton.py: * kiwi/ui/widgets/textview.py: Make the personinformation example work again. 2005-06-20 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/WidgetProxy.py: * examples/PersonalInformation/personalinformation.glade: * examples/PersonalInformation/personalinformation.py: More validation work, allow non-string types to be validated. ComboBox cleanups, adding a mode variable (string or data) which helps. ComboBoxEntry only works for normal mode, editable, searchable and auto-completion currently broken 2005-06-18 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/WidgetProxy.py (MixinSupportValidation._check_for_complaints): quit the idle, stops us from eating up the CPU. * Kiwi2/Delegates.py: * Kiwi2/Models.py: * Kiwi2/Proxies.py: * Kiwi2/Widgets/CheckButton.py: * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/RadioButton.py: * Kiwi2/Widgets/Wizard.py: More imports cleanup, remove unused cruft. 2005-06-18 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Delegates.py: * Kiwi2/Proxies.py: * Kiwi2/Views.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/Label.py: * Kiwi2/Widgets/SpinButton.py: * Kiwi2/Widgets/TextView.py: * Kiwi2/Widgets/WidgetProxy.py: * Kiwi2/__init__.py: * examples/News/news2.py: * examples/News/news4.py: * examples/PersonalInformation/personalinformation.py: * examples/Wizard/survey.py: * tests/Proxies/None.py: * tests/Proxies/Separator.py: * tests/test_Action.py: * tests/test_CheckButton.py: * tests/test_Entry.py: * tests/test_Label.py: * tests/test_List.py: * tests/test_SpinButton.py: Remove unused imports. Clean up the rest we touched Remove Proxies.OldVirtualProxy 2005-06-18 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Proxies.py: * Kiwi2/Views.py: * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/SpinButton.py: * Kiwi2/Widgets/TextView.py: * Kiwi2/Widgets/WidgetProxy.py: * examples/PersonalInformation/personalinformation.py: Rework validation. Only validate when the model content changes. Simplify internal implementation of validation. Fix ComboBoxEntry validation once for all. Updated example and added comments and docstrings 2005-06-14 Johan Dahlin <jdahlin@async.com.br> * gazpacho-plugin/kiwi2.py: Clean up and fix a bug, when moving rows update up/down buttons. 2005-06-14 Henrique Romano <henrique@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Views.py: Correcting the way as widgets verification is made. 2005-06-14 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py: * gazpacho-plugin/kiwi2.xml: Add List::selection-mode 2005-06-13 Henrique Romano <henrique@async.com.br> reviewed by: Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/TextView.py: Just removing a useless callback. 2005-06-07 Henrique Romano <henrique@async.com.br> * Kiwi2/Proxies.py: Also block/unblock all signals connected when updating widgets. * Kiwi2/Views.py: Allow signal_name to be None, if so block/unblock all the connected 2005-06-01 Henrique Romano <henrique@async.com.br> reviwed by: Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/WidgetProxy.py: * Kiwi2/datatypes.py: * examples/PersonalInformation/personalinformation.py: * tests/test_datatypes.py: Add set_format, update testsuite. 2005-05-30 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/WidgetProxy.py: * Kiwi2/Widgets/datatypes.py: Clean up datatypes. Introduce ConverterRegistry which is global object you can use to convert to and from strings. Use the new API everywhere, cleanup WidgetProxy a little bit. 2005-05-25 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Views.py (SlaveView.attach_slave): Change show_all into show. 2005-05-24 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Delegates.py: * Kiwi2/Models.py: * Kiwi2/Proxies.py: * Kiwi2/Views.py: * Kiwi2/Widgets/CheckButton.py: * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/WidgetProxy.py: * Kiwi2/Widgets/Wizard.py: * Kiwi2/utils.py: pychecker fixes, remove ListDelegate. (replaced by the List widget) 2005-05-24 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py: Clean up column handling a bit futher. Make pychecker happy. Remove decimal separator, we depend on 2.3 where we can set LC_NUMERIC properly 2005-05-23 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Views.py (SignalBroker.handler_block, SignalBroker.handler_unblock): New methods, to block a signal tied to a widget. Patch by Henrique * Kiwi2/Widgets/List.py: Ensure we can't hide all columns. (ContextMenu): New object, factor out context menu from List. Make rebuild it when columns change lazily. It now displays the columns in correct order when columns are moved (or added/removed). 2005-05-20 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/ComboBox.py: First validate, then return return get_selected_data(), which will return the data if you have some, otherwise the label will be returned. Fixes bug reported by Henrique. * Kiwi2/Widgets/List.py: Clean up justification handling. Rename col_definition to column, and always refer to treeview columns as treeview_column, to avoid confusion. (List): Setup sorting in a slightly saner way 2005-05-19 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Controllers.py: * Kiwi2/Proxies.py: * Kiwi2/Views.py: * Kiwi2/Widgets/List.py: * Kiwi2/utils.py: Update docstrings, to make epydoc happy * doc/Makefile: Clean up and add some more files * Kiwi2/WidgetProxies: Remove 2005-05-19 Johan Dahlin <jdahlin@async.com.br> * AUTHORS: * Kiwi2/Controllers.py: * Kiwi2/Delegates.py: * Kiwi2/Models.py: * Kiwi2/Proxies.py: * Kiwi2/Views.py: * Kiwi2/Widgets/CheckButton.py: * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/Label.py: * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/RadioButton.py: * Kiwi2/Widgets/SpinButton.py: * Kiwi2/Widgets/TextView.py: * Kiwi2/Widgets/WidgetProxy.py: * Kiwi2/Widgets/Wizard.py: * Kiwi2/Widgets/__init__.py: * Kiwi2/Widgets/datatypes.py: * Kiwi2/__init__.py: * Kiwi2/accessors.py: * Kiwi2/initgtk.py: * Kiwi2/utils.py: * Kiwi2/version.py: Update authors, remove #! in all files and add licenses to a few files. 2005-05-19 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/CheckButton.py: * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/Label.py: * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/RadioButton.py: * Kiwi2/Widgets/SpinButton.py: * Kiwi2/Widgets/TextView.py: * Kiwi2/Widgets/__init__.py: * Kiwi2/__init__.py: Add documentation strings 2005-05-19 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/WidgetProxy.py (MixinSupportValidation._validate_data): if the data is None don't try to validate * examples/PersonalInformation/personalinformation.py: validators don't need to handler the None case now. * Kiwi2/Widgets/SpinButton.py (SpinButton.update): fix stupid mistake * Kiwi2/Widgets/WidgetProxy.py (MixinSupportValidation.set_mandatory): don't redraw the widget here since that is done in the validate_data method. * examples/PersonalInformation/personalinformation.py : fix this example by allowing data to be None in the weight validation * Kiwi2/Widgets/SpinButton.py: simplify this class but using just the changed signal and forget about value-changed and output signals. Fix it for gtk+ 2.4 using the same technique as in the Entry * Kiwi2/Widgets/Entry.py: (Entry.__init__): setup the chain function in the constructor instead of the expose handler * Kiwi2/Widgets/ComboBox.py: - Make expose events work with GTK 2.4 and 2.6 - Put as much validation code as possible in MixinSupportValidation - Add some comments and docstring to parts that are not trivial - Fix drawing mandatory icons. Now when somebody changes a widget (either a proxy or the user) we check if the widget is empty to draw the mandatory icon (if the widget mandatory prop is True) - Reuse the validate signal in the ComboBoxEntry to perform aditional validations * Kiwi2/Widgets/WidgetProxy.py (MixinSupportValidation.is_correct) (MixinSupportValidation._validate_data) (MixinSupportValidation.__init__): properly initialize and manage the _blank_data attribute * Kiwi2/Views.py (SlaveView.check_widgets_validity) (SlaveView.register_validate_function): use the is_correct method to check if the data of a widget is ok. Document the register_validate_function to understand the meaning of its only parameter (SlaveView.attach_slave): show the slave after the attacment process * Kiwi2/Widgets/WidgetProxy.py (MixinSupportValidation.__init__): changed self.valid_data to self._blank_data to avoid confusing names * Kiwi2/Widgets/ComboBox.py (ComboBoxEntry.read): fix validation errors that were going to the console instead of showing in the interface. Update the model when the user edit the entry Don't listen to model row changes since we don't want to inform our proxy about them and we don't need to do anything special in the comboboxentry itself * Kiwi2/Proxies.py (Proxy._initialize_widgets): block the widgets when we initialize them so we don't get updates back to the model 2005-05-18 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py: Add expand property to Column. 2005-05-18 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/ComboBox.py (ComboProxyMixin.select_item_by_data) (ComboProxyMixin.select_item_by_label): improve error messages to easily detect programming errors. * Kiwi2/Proxies.py (Proxy._setup_widgets): provides the widget name in the warning message. Now is much easier to fix this programming error. 2005-05-17 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/List.py (Column.set_from_string, Column.__str__): swap the order the tooltip and format are read/wrote since that's the order Gazpacho is expecting 2005-05-17 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py (List._setup_columns): Check if it's configured before adding the columns, prevents the columns from being added twice when specifying data_types for all columns. 2005-05-16 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/List.py (List.add_list): if we add an empty list we should not select and focus any row 2005-05-16 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py: Reformat to fit in 79 columns. 2005-05-14 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py: Protect selection, it's None if called after List is destroyed. * Kiwi2/initgtk.py: Guard pygtk.require, so we can import gtk before 2005-05-12 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/List.py (List._create_column) (List._on_header__button_release_event): change the event from button_press to button_release to fix a bug related to right click menu on the List headers 2005-05-12 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/datatypes.py: Add support for Column.Data, does not allow it for booleans. Remove some unused code and comments from gazpacho. Use locale.format to format strings, also use this for float types. r=lgs 2005-05-10 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/List.py (List._setup_column): Fix justification. 2005-05-10 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/List.py (str2type): remove the default data type attribute following kiko's suggestion since it's cleaner and easier to detect future errors. 2005-05-09 Sidnei da Silva <sidnei@awkly.org> reviewed by Johan Dahlin <jdahlin@async.com.br> * setup.py (packages): add Kiwi2.Widgets. 2005-05-07 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/List.py: added support for dates in KiwiList. (List._on_column__clicked): removed some code that should never been there 2005-05-04 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/Kiwi2/RadioButton.py: fixed error data-value * Kiwi2/Widgets/Kiwi2/List.py: minor code improvements from comments of last checkin * Kiwi2/Widgets/Kiwi2/Label.py: now kiwilabels have the ability to update the model * Kiwi2/Widgets/Kiwi2/WidgetProxy.py: minor fix in do_get_property 2005-05-03 Gustavo Rahal <gustavo@async.com.br> * tests/test_Entry.py: test now checks for ValueUnset instead of None * Kiwi2/Widgets/ComboBox.py: proper error checking * Kiwi2/Widgets/List.py: column with number are right justified by default. Fixed justification error 2005-04-26 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/List.py: fixed bug 1962 2005-04-26 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/SpinButton.py: minor cosmetic change in code to be similar to other widgets. * Kiwi2/Widgets/TextView.py: is data is None set text as empty 2005-04-25 Johan Dahlin <jdahlin@async.com.br> reviewed by: Gustavo * Kiwi2/Proxies.py: * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/WidgetProxy.py: use ValueUnset instead of None for MixinSupportValidation._validate_data. Update widgets slightly for this Fixes #1961 2005-04-25 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/ComboBox.py: bugs fixes. 1955, 1953, 1952, 1923 * Kiwi2/Widgets/TextView.py * Kiwi2/Widgets/Entry.py * Kiwi2/Widgets/SpinButton.py: checking of pygtk version done inside init * Kiwi2/Widgets/WidgetProxy.py: now check widgets validity is only called when the widget is attached to a view/delegate 2005-04-25 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Views.py: Compare references, since some widgets overrides equality checks (eg, __nonzero__ for ComboBoxEntry) 2005-04-19 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/View.py: * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/TextView.py * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/Entry.py * Kiwi2/Widgets/SpinButton.py: * Kiwi2/Widgets/WidgetProxy.py: code clean up * gazpacho-plugin/kiwi2.py: added support for object data-type * Kiwi2/Widgets/datatype.py: added support for object data-type 2005-04-19 Daniel Saran R. da Cunha <daniel@async.com.br> * Kiwi2/Widgets/ComboBox.py (ComboBoxEntry): Now ComboBoxEntry works properly with objects 2005-04-19 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Proxies.py: all widgets will have an attribute that specify the views/delegate/etc... that owns it. * Kiwi2/Views.py: added a global validation that check for correctness on all widgets, * Kiwi2/Widgets/ComboBox.py: refactoring, added ability to add items to the comboboxentry list (dafault it not to add). * Kiwi2/Widgets/List.py: added ability to slice kiwilist model * Kiwi2/Widgets/TextView.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/SpinButton.py: code refactoring due to changes on combobox. Some minor changes due to pygtk 2.6 * Kiwi2/Widgets/WidgetProxy.py: code refactoring * Kiwi2/examples/PersonalInformation/personalinformation.py: shows how to use global validation 2005-04-13 Daniel Saran R. da Cunha <daniel@async.com.br> * Kiwi2/Widgets/ComboBox.py: make the Widget work properly with ValueUnset 2005-04-13 Gustavo Rahal <gustavo@asyn.com.br> * tests/test_Entry.py: test work with different locales * Kiwi2/Widgets/ComboBox.py: apparently mandatory icon is displayed correctly at all times! Uhu! * Kiwi2/Widgets/TextView.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/SpinButton.py: * Kiwi2/Widgets/WidgetProxy.py: moved code around 2005-04-13 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/TextView.py: added Kiwi TextView Widget * Kiwi2/Widgets/ComboBox.py: fixed mandatory icon display * Kiwi2/Widgets/CheckButton.py: renamed MixinSupportMandatory to MixinSupportValidation * Kiwi2/Widgets/RadioButton.py: same as CheckButton * Kiwi2/Widgets/__init__.py: added Kiwi TextView Widget * Kiwi2/Widgets/Entry.py: moved validation code to WidgetProxy.MixinSupportValidation * Kiwi2/Widgets/SpinButton.py: code reorganization to support custom validation * Kiwi2/Widgets/WidgetProxy.py: added custom validation code to the MixinSupportValidation class. * gazpacho-plugin/pixmaps/kiwitextview.png: added icon * gazpacho-plugin/kiwi2.xml: added kiwitextview * examples/PersonalInformation/personalinformation.py: added custom validation examples * examples/PersonalInformation/personalinformation.glade: added more widgets for custom validation examples 2005-04-11 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/CheckButton: fixed minor name mistake * Kiwi2/examples/survey.py: renamed survey object * Kiwi2/Views.py: added support for non-glade files to be slaves * Kiwi2/Widgets/Wizard.py: wizard interface is not a glade file anymore 2005-04-08 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/SpinButtonpy: added mandatory input capabilities * Kiwi2/Widgets/WidgetProxy.py: renamed class WidgetProxyMinin to Mixin and created a new class named MixinSupportMandatory for Kiwi Widgets that needs to be set as mandatory * Kiwi2/Widgets/RadioButton.py: * Kiwi2/Widgets/Label.py: * Kiwi2/Widgets/CheckButton.py: class renaming 2005-04-07 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/ComboBox.py: * Kiwi2/Widgets/CheckButton.py: * Kiwi2/Widgets/RadioButton.py: * Kiwi2/Widgets/Label.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/WidgetProxy.py: * Kiwi2/Widgets/SpinButtonpy: make the widgets play nicely with ValueUnset * Kiwi2/Widgets/datatypes.py (set_date_format): fix a typo * Kiwi2/Proxies.py (Proxy._initialize_widgets): allow to call update on the widgets with ValueUnset * tests/actions.glade: updated the format of the glade file * tests/test_datatypes.py (DataTypesTest.teststr2date): update the exceptions that are raised when the dates are wrong 2005-04-06 Gustavo Rahal <gustavo@async.com.br> * some code refactor of last commit 2005-04-05 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/Entry.py: fixed and improved input checking * Kiwi2/Widgets/datatypes.py: improve float number and date checkings to support locale variations * examples/PersonalInformation/personalinformation.py: added height entry * test/test_Entry.py: added KiwiEntry test case 2005-04-01 Evandro Vale Miquelito <evandro@async.com.br> * Kiwi2/Widgets/List.py: Adding a new select_instance method. 2005-04-01 Daniel Saran R. da Cunha <daniel@async.com.br> * Kiwi2/Widgets/ComboBox.py (ComboProxyMixin.select_item_by_data): Cleaning the code 2005-04-01 Daniel Saran R. da Cunha <daniel@async.com.br> * Kiwi2/Widgets/ComboBox.py (ComboProxyMixin.select_item_by_data): Don't try to select a row if there is no data in the combo. 2005-03-30 Gustavo Rahal <gustavo@async.com.br> * doc/Makefile: generates epydoc api 2005-03-30 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/Label.py: added support for bold, italic and size attributes for labels * tests/test_Label.py: added a test case for Labels 2005-03-30 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/SpinButton.py: fixed set_data_type function * Kiwi2/Widgets/WidgetProxy.py: fixed __init__.py to set initial values for _data_type and _model_attribute 2005-03-30 Daniel Saran R. da Cunha <daniel@async.com.br> * Kiwi2/Widgets/ComboBox.py: ComboBox now use the data, when it exists, instead of label of its items to update the model and view. 2005-03-29 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/SpinButton.py: added Spin Button support to Kiwi * Kiwi2/Widgets/__init__.py: spinbutton * Kiwi2/tests/test_SpinButton.py: test spinbutton * Kiwi2/gazpacho-plugin/kiwi2.xml: spin button * Kiwi2/gazpacho-plugin/kiwi2.py: new SpinBtnDataTypeAdaptor to deal with int and float only 2001-12-02 Daniel Saran R. da Cunha <daniel@async.com.br> * Kiwi2/Widgets/WidgetProxy.py: don't try to set the widget content if the data is None * Kiwi2/Widgets/RadioButton.py: don't update the view if there is no data in the model 2005-03-29 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/RadioButton.py (RadioButton.read): fixed small stylist problems 2001-12-02 Daniel Saran R. da Cunha <daniel@async.com.br> * Kiwi2/Widgets/RadioButton.py: fix for a wrong return type 2005-03-29 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/__init__.py (imagepath): * Kiwi2/Views.py (GazpachoWidgetTree.__init__): use a path resolver to correctly load images (image_path_resolver): 2005-03-24 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/__init__.py: fixed KIWI_GLADE_PATH * Kiwi2/Widgets/Wizard.py: new wizard widget * Kiwi2/Widgets/Wizard.glade: glade file that defines the structure of the wizard. * Kiwi2/examples/Wizard: directory with a new three step wizard example * Kiwi2/Widgets/CheckButton.py: since default data-types of widgets are string is was necessary a modication on the constructor to set to boolean * Kiwi2/Widgets/__init__.py: added Wizard widget 2005-03-24 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/WidgetProxy.py (WidgetProxyMixin.update): add a warning when setting None in a widget * Kiwi2/examples/PersonalInformation: validation example * Kiwi2/Widgets/Entry.py: inform the user if he made a mistake while typing a entry by setting the background of the entry and adding a tooltip with a message explaining the error * Kiwi2/Widgets/datatypes.py (str2int, str2float): custom converter functions that raise exceptions with nice messages if they find errors in the data the user enters * Kiwi2/Widgets/WidgetProxy.py: (WidgetProxyMixin.set_default_value): allow to set a custom default value (WidgetProxyMixin.__init__): added a flag to know if the user set a default value different that the default value associated with the data type * Kiwi2/utils.py (merge_colors): function to merge the background of a widget between two different colors * Kiwi2/Proxies.py (Proxy._on_widget__content_changed): only update the model if the data is correct 2005-03-24 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/CheckButton.py: bool data-type is an object not a string anymore 2001-11-27 Daniel Saran R. da Cunha <daniel@async.com.br> * Kiwi2/Widgets/Label.py (Label.set_color): method to change label's color 2005-03-23 Lorenzo Gil Sanchez <lgs@sicem.biz> * gazpacho-plugin/kiwi2.py (DataTypeAdaptor.create_editor): add support for date types 2001-11-27 Daniel Saran R. da Cunha <daniel@async.com.br> * examples/SexSelection: New example to test Radio Button * Kiwi2/Widgets/WidgetProxy.py (WidgetProxyMixin.__init__): The default data type is a string because we always need a default. Otherwise gazpacho doesn't save this property. * gazpacho-plugin/kiwi2.xml: * Kiwi2/Widgets/__init__.py: * Kiwi2/Widgets/RadioButton.py : support for Radio Buttons 2005-03-23 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Widgets/datatypes.py: added a date type and functions to set a data from a string a viceversa * tests/test_datatypes.py: added some tests for the datetypes * tests/test_Action.py: * tests/test_BaseView.py: * tests/test_CheckButton.py: * tests/test_ComboBox.py: * tests/test_Delegate.py: * tests/test_Entry.py: * tests/test_List.py: don't use delays and remove all the non essential refreshes. Also make it more unittest friendly 2001-11-26 Daniel Saran R. da Cunha <daniel@async.com.br> * gazpacho-plugin/kiwi2.xml: * gazpacho-plugin/kiwi2.py (DataTypeAdaptor.create_editor): now the data-type does not need custom setter (neither getters). This fix a bug about Gazpacho not saving the data type properties. * gazpacho-plugin/kiwi2.xml: disabled hadjustment and vadjustment properties on the List since they are ScrollWindow properties that do not make sense with the list. 2005-03-22 Lorenzo Gil Sanchez <lgs@sicem.biz> * gazpacho-plugin/kiwi2.py (DataTypeAdaptor.create_editor): handle data-types as objects, not as strings * Kiwi2/Widgets/WidgetProxy.py: make data-type be an object property instead of a string one. * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/datatypes.py: * Kiwi2/Widgets/__init__.py: put all the type functionality in datatypes.py * Kiwi2/Proxies.py (Proxy._setup_widgets): make sure all the KiwiWidgets have a data-type * Kiwi2/Widgets/ComboBox.py (ComboBoxEntry.__init__): fixed a typo 2005-03-22 Johan Dahlin <johan@async.com.br> * Kiwi2/Controllers.py: * Kiwi2/Delegates.py: * Kiwi2/Proxies.py: * Kiwi2/Views.py: * Kiwi2/WidgetProxies/Base.py: * Kiwi2/WidgetProxies/CheckButton.py: * Kiwi2/WidgetProxies/Entry.py: * Kiwi2/WidgetProxies/OptionMenu.py: * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/WidgetProxy.py: * Kiwi2/accessors.py: * Kiwi2/initgtk.py: Convert exceptions to use raise(x) instead of raise, x 2005-03-22 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/ComboBox.py (ComboProxyMixin.__len__): Add (ComboBox.clear): Call ComboProxyMixin.clear (ComboBoxEntry.clear): Ditto (ComboProxyMixin.get_selected_label): Add (ComboProxyMixin.select_item_by_position) (ComboProxyMixin.select_item_by_label) (ComboProxyMixin.select_item_by_data): Simplify 2005-03-22 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/tests/test_CheckButton.py: added a test for CheckButtons * Kiwi2/Widgets/CheckButton.py: test for bool value in set_data_type 2005-03-22 Gustavo Rahal <gustavo@async.com.br> * Kiwi2/Widgets/CheckButton.py: added Checkbutton kiwi widget * Kiwi2/Widgets/__init__.py: support for Checkbutton * kiwi2.xml: added checkbutton to gazpacho-plugin 2005-03-22 Johan Dahlin <jdahlin@async.com.br> * Kiwi2/Widgets/ComboBox.py (ComboProxyMixin.select_item_by_label): Use iter_next, not next_iter! (ComboProxyMixin.get_selected_data): Impl. for Henrique. 2005-03-22 Lorenzo Gil Sanchez <lgs@sicem.biz> * examples/NewsForm/newsform.py: added a size field to test validations in integer entries * Kiwi2/Widgets/WidgetProxy.py (WidgetProxyMixin.__init__): allow to initialize a widget with None values for their properties so we can correctly get the default value when setting the data type * gazpacho-plugin/kiwi2.xml: disable text-column which is not useful in ComboBoxEntry * Kiwi2/Widgets/ComboBox.py (ComboProxyMixin.prefill): allow prefill with the empty list * examples/FavouriteColor/color2.py: example of ComboBoxEntry * examples/FavouriteColor/color.py: example of ComboBox * kiwi2.xml: added combos to gazpacho-plugin * Kiwi2/Widgets/__init__.py: * Kiwi2/Widgets/ComboBox.py: first support for ComboBoxes (old OptionMenu) and ComboBoxEntries (old Combos) 2005-03-21 Evandro Vale Miquelito <evandro@async.com.br> * Kiwi2/Widgets/List.py (List.update_instance): A small fix for update_instance method. Now we verify if the instance even exists in the list. 2005-03-21 Lorenzo Gil Sanchez <lgs@sicem.biz> * tests/test_List.py (DataTests.testContains): added a test for __contains__ (DataTests.testUpdatingOneInstance): fixed test * Kiwi2/Widgets/List.py (List.update_instance): added update_instance (List.__contains__): added __contains__ method * tests/test_List.py (DataTests.testUpdatingOneInstance): added a test for update_instance 2005-03-18 Lorenzo Gil Sanchez <lgs@sicem.biz> * tests/test_List.py (DataTests.testClearList): added test for the clear method * Kiwi2/Widgets/List.py (List.clear): added * Kiwi2/Views.py (SignalBroker._autoconnect_by_method_name): allow to connect to the actions objects and also improve error message when a method's signature is bad * Kiwi2/Widgets/List.py (List.remove_instance): added * tests/test_List.py: added several tests for removing and adding data to the list * tests/test_Action.py: test that menubars and toolbars work with Kiwi autoconnect mechanism * tests/test_Delegate.py: added tests to make sure that a signal handler is only called once 2005-03-16 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Views.py (SlaveView._init_glade_adaptor): allow the container name to have the same name as the gladefile. Fix a bug with Daniel code 2005-03-15 Lorenzo Gil Sanchez <lgs@sicem.biz> * gazpacho-plugin/kiwi2.xml: add a libglade-module attribute since that is used now for writing the 'requires' tag * gazpacho-plugin/kiwi2.py: change the order of the arguments in the update_editor methods since that was changed in Gazpacho 2005-03-11 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Views.py (GladeSignalBroker._connect_glade_signals): remove the double connection * tests/test_Delegate.py (DelegateTest.testButtons): add another test to check if the callbacks are being called more than one time * Kiwi2/Widgets/List.py: add two extra flags: _columns_created and _columns_configured to avoid creating the columns several times * tests/test_List.py (ListTest.testAddingOneInstance): improve test to check that the columns remain sane 2005-03-10 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Views.py (GladeSignalBroker._connect_glade_signals): don't call autoconnect_by_method_name twice * Kiwi2/utils.py (get_foreground): fix the call to gdk_color_to_string * Kiwi2/Views.py (SlaveView.__init__): if we don't have a toplevel try to get it from the toplevel_name attribute * Kiwi2/Widgets/List.py (List): fixed several minor bugs discovered by writing a simple test * Kiwi2/Views.py (SlaveView): use Johan gsignal and gproperty functions to make the code more readable * Kiwi2/Widgets/List.py: remove some print debugging stuff * Kiwi2/Views.py (find_in_gladepath): fixed a typo * examples/* adapt examples to work with the new changes * Kiwi2/Controllers.py: don't use string module and ListType and TupleType. * Kiwi2/utils.py: put here some useful functions that are needed from several different places. * Kiwi2/Widgets/List.py: * Kiwi2/Widgets/Entry.py: * Kiwi2/Widgets/Label.py: * Kiwi2/Widgets/__init__.py: * Kiwi2/Widgets/WidgetProxy.py: new module to keep the KiwiWidgets. These widgets inherit from a gtk widget and from WidgetProxyMixin, which provides the functionality to work together with the Proxy Kiwi Framework class. * Kiwi2/__init__.py: move some utility functions to utils.py and better API of gladepath * Kiwi2/Delegates.py: remove GladeDelegate and GladeSlaveDelegate and put more arguments to Delegate and SlaveDelegate so we keep the same functionality. * Kiwi2/Views.py: remove GladeView and GladeSlaveView. Rename AbstractView to SlaveView so now we just have SlaveView and BaseView and they now how to handle glade files if the user gives them the apropiate constructor argument. Also, add add_proxy method to the views and make them work with proxies by composition. * Kiwi2/Proxies.py: change the VirtualProxy class to be the only Proxy class and work by composition of the View classes * gazpacho-plugin/kiwi2.py: * gazpacho-plugin/kiwi2.xml: added support for Kiwi Label and Kiwi Entry * gazpacho-plugin/README: added a note about how to create kiwi widget icons 2005-03-07 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/List.py (List.__init__): fix a typo * examples/Faren/faren3.py: this one uses a GladeDelegate * examples/Faren/faren2.py: second version of Faren example * examples/Faren/faren.py: ported the basic Temperature example * examples/Simple/simple.py: ported another example to Kiwi2 2005-03-05 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Views.py (GazpachoWidgetTree.__init__): move the gladename and gladefile class attributes to GladeSlaveView and GladeView. Fix #1843 (GladeSlaveView, GladeView): * examples/HeyPlanet/heyglade3.py (MyView.gladefile): provide an example of setting the gladefile as a class attribute * Kiwi2/Delegates.py: add a keyactions argument to all the Delegates so we can use it for the Controller * examples/News/news4.py (Shell.__init__): provide an example of keyactions * Kiwi2/initgtk.py (quit_if_last): also quit if there is no toplevels (e.g., this function was called after hiding the last toplevel) * examples/News/news3.py (Shell.on_ok__clicked): stay on the safe side by checking if there is something selected * Kiwi2/Views.py (BaseView._setup_keypress_handler): put this method only in BaseView to avoid warnings * Kiwi2/List.py: use kgetattr instead of getattr when accesing the attributes of an instance * Kiwi2/initgtk.py (quit_if_last): don't treat hide windows as toplevels when seeing if we need to quit because usually there are several windows in a glade file. 2005-03-04 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Views.py (SignalBroker): super() only works with new style classes 2005-03-03 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/List.py (List.add_list): block and unblock the selection signal on the selection object instead of the treeview object (List._load): add a progress_handler (non used so far) argument so the call from add_list() works (List._create_best_renderer_for_type): don't make the cells editable until we have a 'editable' property to switch this feature on and off. This is needed so we can still double click on the rows * Kiwi2/Views.py (GladeSlaveView.__init__): fix some errors so we can use this view * examples/News/news4.py: new version using a GladeSlaveDelegate with the KiwList in the file news_list.glade. Note how the column definitions are in the glade file this time and how we setup the signals of the KiwiList as any other widget. 2005-03-02 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/List.py: several changes to make the Columns serializable and so we can use List from Gazpacho * Kiwi2/__init__.py (ValueUnset): put this class at the beginning to avoid import problems (str2bool, str2enum, str2type): utility functions 2005-02-28 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/List.py: renamed KiwiList to List * Kiwi2/Delegates.py (ListDelegate.__init__): * examples/News/news3.py: * examples/News/news2.py: * Kiwi2/Delegates.py (KiwiListDelegate.__init__): don't need a scroll window anymore since that functionality is already in the KiwiList. * examples/News/news3.py: don't use KiwiListDelegate anymore but just a simple SlaveDelegate. Also fix the small bug about the color * Kiwi2/List.py (KiwiList.__init__): for now, use right click button on the header to show the popup menu. Thunderbird style button on top of the vertical scrollbar will be done later. 2005-02-26 Lorenzo Gil Sanchez <lgs@sicem.biz> * examples/News/news3.py: adapt the example to use the new signal feature of the KiwiList * Kiwi2/List.py: improve the List with a menu to show/hide columns and do column sorting and reordering. * Kiwi2/Delegates.py: move more things into KiwiList from KiwiListDelegate. Use signals in KiwiList for the selection and double click events. * Kiwi2/Views.py: optimize color conversion to string by using shifts instead of divisions * tests/run_all_tests.py: fix the first line of the script 2005-02-21 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/AbstractViews.py: we don't use this file anymore. Its contents were moved to Views.py * Kiwi2/__init__.py: put the ValueUnset class here so we avoid some cyclic dependencies * Kiwi2/Views.py (GladeSignalBroker._connect_glade_signals): make AbstractView inherit form GObject so we can enjoy GSignals in the views. (BaseView.connect): can't proxy these methods anymore because we have our own signals now * Kiwi2/Delegates.py: added the KiwiListDelegated. Not sure if we should deprecate this delegate now that we are pushing all the functionality to the Kiwi2.List class. * Kiwi2/initgtk.py: we need gobject for signals * examples/News/news3.py: * examples/News/news2.py: converted examples to use Kiwi2 2005-02-18 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Views.py: implement attach_slave for GazpachoTree and so for GladeView and GladeSlaveView * Kiwi2/initgtk.py (quit_if_last): only see TOPLEVEL windows, no POPUPs * examples/News/news.py: adapted to Kiwi2. Also use TreeView instead of CList 2005-02-17 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/Views.py: forget about GazpachoViews. Make GladeView and GladeSlaveView use Gazpacho internally with delegation and don't use AbstractGladeView anymore. I still need to implement attach_slave with this delegation aproach. * Kiwi2/Delegates.py: minor PEP-8 changes and change Kiwi to Kiwi2 * tests/run_all_tests.py: convenience script to run all of the tests * tests/test_BaseViewInherit.py: adapted to run under unittest * examples/HeyPlanet/heygazpacho3.py: copy of heygazpacho3.py using Gazpachoview * examples/HeyPlanet/heygazpacho2.py: copy of heyglade2.py using GazpachoView * examples/HeyPlanet/heygazpacho.py: copy of heyglade.py using GazpachoView * Kiwi2/initgtk.py (quit_if_last): mainquit is deprecated, did you know that? * examples/HeyPlanet/heyglade3.py: * examples/HeyPlanet/heyglade2.py: * examples/HeyPlanet/heyglade.py: * examples/HeyPlanet/hey.py: adapted to Kiwi2 * examples/HeyPlanet/hey.glade: generated by Gazpacho, not Glade-2 2005-02-16 Lorenzo Gil Sanchez <lgs@sicem.biz> * tests/test_BaseView.py: make all the tests run under the unittest facilities. Integrate test_BaseView2.py here also. * Kiwi2/Views.py (AbstractView._gdk_color_to_string) (AbstractView.get_background, AbstractView.get_foreground): provide method to get the colors of a widget in the #XXXXX format - Comment out the classes we don't care about right now: GladeSlaveView and GladeView * Kiwi2/initgtk.py: don't load main_quit, it's deprecated (quit_if_last): add this function to be used as a delete-event handler so the user can open and close windows without worrying about when to call gtk.mainquit 2005-02-11 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/__init__.py (standard_widgets): fixed a bug about not importing sys and using sys.stderr * Kiwi2/AbstractViews.py (SignalBroker.__init__): refactor SignalBroker __init__ method so subclasses can customize it (SignalBroker._do_connections): new method that do all the connections this signal broker is supposed to make. In the base SignalBroker it only calls _autoconnect_by_method_name but in GladeSignalBroker it also calls _connect_glade_signals 2005-02-10 Lorenzo Gil Sanchez <lgs@sicem.biz> * Kiwi2/initgtk.py: added explanation on why do we have a separate initgtk.py module 2005-02-05 Lorenzo Gil Sanchez <lgs@sicem.biz> * setup.py: remove non used imports