diff options
-rw-r--r-- | gi/overrides/Gtk.py | 12 | ||||
-rw-r--r-- | tests/test_overrides_gtk.py | 15 |
2 files changed, 27 insertions, 0 deletions
diff --git a/gi/overrides/Gtk.py b/gi/overrides/Gtk.py index b4213642..d1ed83da 100644 --- a/gi/overrides/Gtk.py +++ b/gi/overrides/Gtk.py @@ -834,6 +834,13 @@ class TreeModel(Gtk.TreeModel): raise IndexError("could not find tree path '%s'" % key) return aiter + def sort_new_with_model(self): + super_object = super(TreeModel, self) + if hasattr(super_object, "sort_new_with_model"): + return super_object.sort_new_with_model() + else: + return TreeModelSort.new_with_model(self) + def _coerce_path(self, path): if isinstance(path, Gtk.TreePath): return path @@ -973,6 +980,11 @@ class TreeModelSort(Gtk.TreeModelSort): arg_names=('model',), category=PyGTKDeprecationWarning) + if not hasattr(Gtk.TreeModelSort, "new_with_model"): + @classmethod + def new_with_model(self, child_model): + return TreeModel.sort_new_with_model(child_model) + TreeModelSort = override(TreeModelSort) __all__.append('TreeModelSort') diff --git a/tests/test_overrides_gtk.py b/tests/test_overrides_gtk.py index 4cb2c748..4283d765 100644 --- a/tests/test_overrides_gtk.py +++ b/tests/test_overrides_gtk.py @@ -1169,6 +1169,21 @@ class TestTreeModelRow(unittest.TestCase): @ignore_gi_deprecation_warnings @unittest.skipUnless(Gtk, 'Gtk not available') class TestTreeModel(unittest.TestCase): + + def test_tree_model_sort_new_with_model_old(self): + # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1134 + model = Gtk.TreeStore(int) + sort_model = model.sort_new_with_model() + assert isinstance(sort_model, Gtk.TreeModelSort) + assert sort_model.get_model() == model + + def test_tree_model_sort_new_with_model_new(self): + # https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1134 + model = Gtk.TreeStore(int) + sort_model = Gtk.TreeModelSort.new_with_model(child_model=model) + assert isinstance(sort_model, Gtk.TreeModelSort) + assert sort_model.get_model() == model + def test_tree_model_sort(self): self.assertEqual(Gtk.TreeModelSort, gi.overrides.Gtk.TreeModelSort) model = Gtk.TreeStore(int, bool) |