summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--gtk/gtktreeview.override10
-rw-r--r--tests/test_liststore.py12
3 files changed, 30 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c2490e6f..b0e171ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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()