diff options
author | Simon Feltman <sfeltman@src.gnome.org> | 2013-01-13 18:19:51 -0800 |
---|---|---|
committer | Simon Feltman <sfeltman@src.gnome.org> | 2013-01-13 19:39:21 -0800 |
commit | 0a5587b6a56d417a6703e342f153596f08cd5889 (patch) | |
tree | 99e22b46f01c8c243738ae59110a259e5bab885b /gi/overrides/Gtk.py | |
parent | 5ae129da436793478750f0dc9427a174a980e10b (diff) | |
download | pygobject-0a5587b6a56d417a6703e342f153596f08cd5889.tar.gz |
Allow setting TreeModel values to None
Change TreeModel.set_value to use an empty but initialized GValue when
None is used as the value argument. This allows clearing of cell data
which was not accessible due to auto-coercion.
https://bugzilla.gnome.org/show_bug.cgi?id=684094
Diffstat (limited to 'gi/overrides/Gtk.py')
-rw-r--r-- | gi/overrides/Gtk.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gi/overrides/Gtk.py b/gi/overrides/Gtk.py index 223d8f4a..281a6803 100644 --- a/gi/overrides/Gtk.py +++ b/gi/overrides/Gtk.py @@ -872,11 +872,16 @@ class TreeModel(Gtk.TreeModel): self.set_value(treeiter, column, value) def _convert_value(self, column, value): - if value is None: - return None - # we may need to convert to a basic type type_ = self.get_column_type(column) + + # Allow None to be used as an initialized but empty value. + # https://bugzilla.gnome.org/show_bug.cgi?id=684094 + if value is None: + value_container = GObject.Value() + value_container.init(type_) + return value_container + if type_ == GObject.TYPE_STRING: if isinstance(value, str): value = str(value) |