diff options
author | Marinus Schraal <mschraal@gnome.org> | 2020-06-08 16:27:55 +0200 |
---|---|---|
committer | Christoph Reiter <reiter.christoph@gmail.com> | 2020-10-07 21:25:24 +0000 |
commit | 5657e6239e4069fd22e9dddbf00d700944213236 (patch) | |
tree | 4225e7ae72da4e3dd61faa4d55b1af2e0a4a3d9b | |
parent | c945c99fbadb4496ff0fc01d42efd786abf5fba8 (diff) | |
download | pygobject-5657e6239e4069fd22e9dddbf00d700944213236.tar.gz |
gtk overrides: Remove Container use for GTK4wip/mschraal/gtk4-container-removal
-rw-r--r-- | gi/overrides/Gtk.py | 33 | ||||
-rw-r--r-- | tests/test_overrides_gtk.py | 24 |
2 files changed, 35 insertions, 22 deletions
diff --git a/gi/overrides/Gtk.py b/gi/overrides/Gtk.py index 64a5088e..5092bca2 100644 --- a/gi/overrides/Gtk.py +++ b/gi/overrides/Gtk.py @@ -165,24 +165,23 @@ Widget = override(Widget) __all__.append('Widget') -class Container(Gtk.Container, Widget): +if Gtk._version in ("2.0", "3.0"): + class Container(Gtk.Container, Widget): - def __len__(self): - return len(self.get_children()) + def __len__(self): + return len(self.get_children()) - def __contains__(self, child): - return child in self.get_children() + def __contains__(self, child): + return child in self.get_children() - def __iter__(self): - return iter(self.get_children()) + def __iter__(self): + return iter(self.get_children()) - def __bool__(self): - return True + def __bool__(self): + return True - # alias for Python 2.x object protocol - __nonzero__ = __bool__ - - if Gtk._version in ("2.0", "3.0"): + # alias for Python 2.x object protocol + __nonzero__ = __bool__ def child_get_property(self, child, property_name, value=None): if value is None: @@ -207,9 +206,11 @@ class Container(Gtk.Container, Widget): get_focus_chain = strip_boolean_result(Gtk.Container.get_focus_chain) - -Container = override(Container) -__all__.append('Container') + Container = override(Container) + __all__.append('Container') +else: + class Container(object): + pass class Editable(Gtk.Editable): diff --git a/tests/test_overrides_gtk.py b/tests/test_overrides_gtk.py index ff3acba9..30ad1d8b 100644 --- a/tests/test_overrides_gtk.py +++ b/tests/test_overrides_gtk.py @@ -58,7 +58,10 @@ def realized(widget): if toplevel is None: window = Gtk.Window() - window.add(widget) + if Gtk._version == "4.0": + window.set_child(widget) + else: + window.add(widget) widget.realize() if Gtk._version == "4.0": @@ -73,7 +76,11 @@ def realized(widget): yield widget if toplevel is None: - window.remove(widget) + if Gtk._version == "4.0": + window.set_child(None) + else: + window.remove(widget) + window.destroy() if Gtk._version == "4.0": @@ -161,6 +168,7 @@ def test_wrapper_toggle_refs(): @unittest.skipUnless(Gtk, 'Gtk not available') @ignore_gi_deprecation_warnings class TestGtk(unittest.TestCase): + @unittest.skipIf(Gtk_version == "4.0", "not in gtk4") def test_container(self): box = Gtk.Box() self.assertTrue(isinstance(box, Gtk.Box)) @@ -557,7 +565,8 @@ class TestGtk(unittest.TestCase): # test Gtk.Button button = Gtk.Button() self.assertTrue(isinstance(button, Gtk.Button)) - self.assertTrue(isinstance(button, Gtk.Container)) + if Gtk._version != "4.0": + self.assertTrue(isinstance(button, Gtk.Container)) self.assertTrue(isinstance(button, Gtk.Widget)) if Gtk_version != "4.0": @@ -579,7 +588,8 @@ class TestGtk(unittest.TestCase): # test Gtk.LinkButton button = Gtk.LinkButton(uri='http://www.Gtk.org', label='Gtk') self.assertTrue(isinstance(button, Gtk.Button)) - self.assertTrue(isinstance(button, Gtk.Container)) + if Gtk._version != "4.0": + self.assertTrue(isinstance(button, Gtk.Container)) self.assertTrue(isinstance(button, Gtk.Widget)) self.assertEqual('http://www.Gtk.org', button.get_uri()) self.assertEqual('Gtk', button.get_label()) @@ -662,7 +672,8 @@ class TestGtk(unittest.TestCase): def test_table(self): table = Gtk.Table() self.assertTrue(isinstance(table, Gtk.Table)) - self.assertTrue(isinstance(table, Gtk.Container)) + if Gtk._version != "4.0": + self.assertTrue(isinstance(table, Gtk.Container)) self.assertTrue(isinstance(table, Gtk.Widget)) self.assertEqual(table.get_size(), (1, 1)) self.assertEqual(table.get_homogeneous(), False) @@ -683,7 +694,8 @@ class TestGtk(unittest.TestCase): def test_scrolledwindow(self): sw = Gtk.ScrolledWindow() self.assertTrue(isinstance(sw, Gtk.ScrolledWindow)) - self.assertTrue(isinstance(sw, Gtk.Container)) + if Gtk._version != "4.0": + self.assertTrue(isinstance(sw, Gtk.Container)) self.assertTrue(isinstance(sw, Gtk.Widget)) sb = sw.get_hscrollbar() self.assertEqual(sw.get_hadjustment(), sb.get_adjustment()) |