summaryrefslogtreecommitdiff
path: root/grc/gui/BlockTreeWindow.py
diff options
context:
space:
mode:
Diffstat (limited to 'grc/gui/BlockTreeWindow.py')
-rw-r--r--grc/gui/BlockTreeWindow.py28
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