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.
|
empty properties, since we do not know the default GParamSpec values.
|
||||||
#472981 (Carlos Garnacho)
|
#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>
|
2007-09-03 Emmanuele Bassi <ebassi@gnome.org>
|
||||||
|
|
||||||
* gtk/gtkrecentmanager.c
|
* gtk/gtkrecentmanager.c
|
||||||
|
@ -92,6 +92,16 @@ def get_signal_nodes(node):
|
|||||||
signals.append(child)
|
signals.append(child)
|
||||||
return signals
|
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):
|
def get_accelerator_nodes(node):
|
||||||
assert node.tagName == 'object'
|
assert node.tagName == 'object'
|
||||||
accelerators = []
|
accelerators = []
|
||||||
@ -240,9 +250,7 @@ class GtkBuilderConverter(object):
|
|||||||
|
|
||||||
def _default_widget_converter(self, node):
|
def _default_widget_converter(self, node):
|
||||||
klass = node.getAttribute("class")
|
klass = node.getAttribute("class")
|
||||||
for prop in node.getElementsByTagName("property"):
|
for prop in get_property_nodes(node):
|
||||||
if prop.parentNode is not node:
|
|
||||||
continue
|
|
||||||
prop_name = prop.getAttribute("name")
|
prop_name = prop.getAttribute("name")
|
||||||
if prop_name == "sizegroup":
|
if prop_name == "sizegroup":
|
||||||
self._convert_sizegroup(node, prop)
|
self._convert_sizegroup(node, prop)
|
||||||
@ -560,7 +568,7 @@ class GtkBuilderConverter(object):
|
|||||||
|
|
||||||
def _packing_prop_to_child_attr(self, node, prop_name, prop_val,
|
def _packing_prop_to_child_attr(self, node, prop_name, prop_val,
|
||||||
attr_val=None):
|
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"]
|
packing_props = [p for p in child.childNodes if p.nodeName == "packing"]
|
||||||
if not packing_props:
|
if not packing_props:
|
||||||
continue
|
continue
|
||||||
|
Reference in New Issue
Block a user