Do not iterate recursively over all child nodes.
2007-09-04 Johan Dahlin <jdahlin@async.com.br> * gtk/gtk-builder-convert (GtkBuilder._packing_prop_to_child_attr): Do not iterate recursively over all child nodes. (GtkBuilderConverter._default_widget_converter): Use a more efficient way of iterating over all property nodes #472974 (Carlos Garnacho) svn path=/trunk/; revision=18721
This commit is contained in:

committed by
Johan Dahlin

parent
395c785512
commit
c99040a4b3
@ -8,6 +8,12 @@
|
||||
empty properties, since we do not know the default GParamSpec values.
|
||||
#472981 (Carlos Garnacho)
|
||||
|
||||
* gtk/gtk-builder-convert (GtkBuilder._packing_prop_to_child_attr):
|
||||
Do not iterate recursively over all child nodes.
|
||||
(GtkBuilderConverter._default_widget_converter): Use a more efficient
|
||||
way of iterating over all property nodes
|
||||
#472974 (Carlos Garnacho)
|
||||
|
||||
2007-09-03 Emmanuele Bassi <ebassi@gnome.org>
|
||||
|
||||
* gtk/gtkrecentmanager.c
|
||||
|
@ -92,6 +92,16 @@ def get_signal_nodes(node):
|
||||
signals.append(child)
|
||||
return signals
|
||||
|
||||
def get_property_nodes(node):
|
||||
assert node.tagName == 'object'
|
||||
properties = []
|
||||
for child in node.childNodes:
|
||||
if child.nodeType == Node.TEXT_NODE:
|
||||
continue
|
||||
if child.tagName == 'property':
|
||||
properties.append(child)
|
||||
return properties
|
||||
|
||||
def get_accelerator_nodes(node):
|
||||
assert node.tagName == 'object'
|
||||
accelerators = []
|
||||
@ -240,9 +250,7 @@ class GtkBuilderConverter(object):
|
||||
|
||||
def _default_widget_converter(self, node):
|
||||
klass = node.getAttribute("class")
|
||||
for prop in node.getElementsByTagName("property"):
|
||||
if prop.parentNode is not node:
|
||||
continue
|
||||
for prop in get_property_nodes(node):
|
||||
prop_name = prop.getAttribute("name")
|
||||
if prop_name == "sizegroup":
|
||||
self._convert_sizegroup(node, prop)
|
||||
@ -560,7 +568,7 @@ class GtkBuilderConverter(object):
|
||||
|
||||
def _packing_prop_to_child_attr(self, node, prop_name, prop_val,
|
||||
attr_val=None):
|
||||
for child in node.getElementsByTagName("child"):
|
||||
for child in get_child_nodes(node):
|
||||
packing_props = [p for p in child.childNodes if p.nodeName == "packing"]
|
||||
if not packing_props:
|
||||
continue
|
||||
|
Reference in New Issue
Block a user