summaryrefslogtreecommitdiff
path: root/gi/overrides/Gtk.py
diff options
context:
space:
mode:
authorSimon Feltman <sfeltman@src.gnome.org>2013-01-13 18:19:51 -0800
committerSimon Feltman <sfeltman@src.gnome.org>2013-01-13 19:39:21 -0800
commit0a5587b6a56d417a6703e342f153596f08cd5889 (patch)
tree99e22b46f01c8c243738ae59110a259e5bab885b /gi/overrides/Gtk.py
parent5ae129da436793478750f0dc9427a174a980e10b (diff)
downloadpygobject-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.py11
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)