From 593ce05e7ea74871c23fa48a9a2486a157c5cfee Mon Sep 17 00:00:00 2001
From: Sebastian Koslowski <koslowski@kit.edu>
Date: Tue, 26 Apr 2016 21:53:30 +0200
Subject: grc: remove all Cheetah templates from GUI

---
 grc/gui/BlockTreeWindow.py | 57 +++++++++++++++++++---------------------------
 1 file changed, 23 insertions(+), 34 deletions(-)

(limited to 'grc/gui/BlockTreeWindow.py')

diff --git a/grc/gui/BlockTreeWindow.py b/grc/gui/BlockTreeWindow.py
index a68d0938fc..e8de6e9277 100644
--- a/grc/gui/BlockTreeWindow.py
+++ b/grc/gui/BlockTreeWindow.py
@@ -26,36 +26,26 @@ from gi.repository import GObject
 from . import Actions, Utils
 from .Constants import DEFAULT_BLOCKS_WINDOW_WIDTH, DND_TARGETS
 
-NAME_INDEX = 0
-KEY_INDEX = 1
-DOC_INDEX = 2
-
-DOC_MARKUP_TMPL = """\
-#set $docs = []
-#if $doc.get('')
-    #set $docs += $doc.pop('').splitlines() + ['']
-#end if
-#for b, d in $doc.iteritems()
-    #set $docs += ['--- {0} ---'.format(b)] + d.splitlines() + ['']
-#end for
-#set $len_out = 0
-#for $n, $line in $enumerate($docs[:-1])
-#if $n
-
-#end if
-$encode($line)#slurp
-#set $len_out += $len($line)
-#if $n > 10 or $len_out > 500
-
-...#slurp
-#break
-#end if
-#end for
-#if $len_out == 0
-undocumented#slurp
-#end if"""
-
-CAT_MARKUP_TMPL = """Category: $cat"""
+NAME_INDEX, KEY_INDEX, DOC_INDEX = range(3)
+
+
+def _format_doc(doc):
+    docs = []
+    if doc.get(''):
+        docs += doc.pop('').splitlines() + ['']
+    for block_name, docstring in doc.iteritems():
+        docs.append('--- {0} ---'.format(block_name))
+        docs += docstring.splitlines()
+        docs.append('')
+    out = ''
+    for n, line in enumerate(docs[:-1]):
+        if n:
+            out += '\n'
+        out += Utils.encode(line)
+        if n > 10 or len(out) > 500:
+            out += '\n...'
+            break
+    return out or 'undocumented'
 
 
 class BlockTreeWindow(Gtk.VBox):
@@ -159,7 +149,7 @@ class BlockTreeWindow(Gtk.VBox):
                 iter_ = treestore.insert_before(categories[sub_category[:-1]], None)
                 treestore.set_value(iter_, NAME_INDEX, cat_name)
                 treestore.set_value(iter_, KEY_INDEX, '')
-                treestore.set_value(iter_, DOC_INDEX, Utils.parse_template(CAT_MARKUP_TMPL, cat=cat_name))
+                treestore.set_value(iter_, DOC_INDEX, 'Category: ' + Utils.encode(cat_name))
                 categories[sub_category] = iter_
         # add block
         if block is None:
@@ -167,7 +157,7 @@ class BlockTreeWindow(Gtk.VBox):
         iter_ = treestore.insert_before(categories[category], None)
         treestore.set_value(iter_, NAME_INDEX, block.get_name())
         treestore.set_value(iter_, KEY_INDEX, block.get_key())
-        treestore.set_value(iter_, DOC_INDEX, Utils.parse_template(DOC_MARKUP_TMPL, doc=block.get_doc()))
+        treestore.set_value(iter_, DOC_INDEX, _format_doc(block.get_doc()))
 
     def update_docs(self):
         """Update the documentation column of every block"""
@@ -177,8 +167,7 @@ class BlockTreeWindow(Gtk.VBox):
                 return  # category node, no doc string
             key = model.get_value(iter_, KEY_INDEX)
             block = self.platform.blocks[key]
-            doc = Utils.parse_template(DOC_MARKUP_TMPL, doc=block.get_doc())
-            model.set_value(iter_, DOC_INDEX, doc)
+            model.set_value(iter_, DOC_INDEX, _format_doc(block.get_doc()))
 
         self.treestore.foreach(update_doc)
         self.treestore_search.foreach(update_doc)
-- 
cgit v1.2.3