diff options
Diffstat (limited to 'grc/gui/BlockTreeWindow.py')
-rw-r--r-- | grc/gui/BlockTreeWindow.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/grc/gui/BlockTreeWindow.py b/grc/gui/BlockTreeWindow.py index b76718e857..f6968198d2 100644 --- a/grc/gui/BlockTreeWindow.py +++ b/grc/gui/BlockTreeWindow.py @@ -31,6 +31,9 @@ DOC_INDEX = 2 DOC_MARKUP_TMPL = """\ #if $doc +#if len($doc) > 1000 +#set $doc = $doc[:1000] + '...' +#end if $encode($doc)#slurp #else undocumented#slurp @@ -149,20 +152,17 @@ class BlockTreeWindow(gtk.VBox): def update_docs(self): """Update the documentation column of every block""" - def update(node): - for i in range(treestore.iter_n_children(node) or 0): - update(treestore.iter_nth_child(node, i)) - - if not treestore.iter_has_child(node): - key = treestore.get_value(node, KEY_INDEX) - block = self.platform.get_block(key) - doc = Utils.parse_template(DOC_MARKUP_TMPL, doc=block.get_doc()) - treestore.set_value(node, DOC_INDEX, doc) - - for treestore in self.treestore, self.treestore_search: - root = treestore.get_iter_root() - if root: - update(root) + + def update_doc(model, _, iter_): + if model.iter_has_child(iter_): + return # category node, no doc string + key = model.get_value(iter_, KEY_INDEX) + block = self.platform.get_block(key) + doc = Utils.parse_template(DOC_MARKUP_TMPL, doc=block.get_doc()) + model.set_value(iter_, DOC_INDEX, doc) + + self.treestore.foreach(update_doc) + self.treestore_search.foreach(update_doc) ############################################################ ## Helper Methods |