diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | gtk/gtktreeview.override | 10 | ||||
-rw-r--r-- | tests/test_liststore.py | 12 |
3 files changed, 30 insertions, 1 deletions
@@ -1,3 +1,12 @@ +2006-04-05 Johan Dahlin <jdahlin@async.com.br> + + * gtk/gtktreeview.override + (_wrap_gtk_tree_sortable_set_default_sort_func): Allow callback + to be set to None, found by Patrick O'Brien + + * tests/test_liststore.py (ListStoreTest.testSetDefaultSortFunc): + Add test + 2006-04-04 Johan Dahlin <jdahlin@async.com.br> * configure.in: Post release version bump diff --git a/gtk/gtktreeview.override b/gtk/gtktreeview.override index a1496562..62bccbbd 100644 --- a/gtk/gtktreeview.override +++ b/gtk/gtktreeview.override @@ -1106,6 +1106,14 @@ _wrap_gtk_tree_sortable_set_default_sort_func(PyGObject *self, PyObject *args) &callback, &data)) return NULL; + if (callback == Py_None) { + gtk_tree_sortable_set_default_sort_func(GTK_TREE_SORTABLE(self->obj), + NULL, + NULL, + NULL); + goto beach; + } + if (!PyCallable_Check(callback)) { PyErr_SetString(PyExc_TypeError, "callback must be a callable object"); return NULL; @@ -1120,7 +1128,7 @@ _wrap_gtk_tree_sortable_set_default_sort_func(PyGObject *self, PyObject *args) pygtk_tree_sortable_sort_cb, cunote, pygtk_custom_destroy_notify); - + beach: Py_INCREF(Py_None); return Py_None; } diff --git a/tests/test_liststore.py b/tests/test_liststore.py index 65cc900c..da53a07e 100644 --- a/tests/test_liststore.py +++ b/tests/test_liststore.py @@ -20,5 +20,17 @@ class ListStoreTest(unittest.TestCase): self.assertEqual(store[0][0], 1) self.assertEqual(store[1][0], 2) + # TreeSortable, but... + + def testSetDefaultSortFunc(self): + store = gtk.ListStore(int) + self.failIf(store.has_default_sort_func()) + store.set_default_sort_func(lambda x: None) + store.set_sort_column_id(0, gtk.SORT_ASCENDING) + + self.failUnless(store.has_default_sort_func()) + store.set_default_sort_func(None) + self.failIf(store.has_default_sort_func()) + if __name__ == '__main__': unittest.main() |