aboutsummaryrefslogtreecommitdiffstats
path: root/src/featherweight.py
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2013-07-26 11:28:03 +0200
committerMattias Andrée <maandree@operamail.com>2013-07-26 11:28:03 +0200
commit4d4835b6b3043768371c8a54331d333f68261df5 (patch)
tree04b6d7cd282f267babf0a4b63da91bb09b682e49 /src/featherweight.py
parentfix tree walking (diff)
downloadpytagomacs-4d4835b6b3043768371c8a54331d333f68261df5.tar.gz
pytagomacs-4d4835b6b3043768371c8a54331d333f68261df5.tar.bz2
pytagomacs-4d4835b6b3043768371c8a54331d333f68261df5.tar.xz
add collapsing and expanding
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src/featherweight.py')
-rwxr-xr-xsrc/featherweight.py26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/featherweight.py b/src/featherweight.py
index dace6fd..99affca 100755
--- a/src/featherweight.py
+++ b/src/featherweight.py
@@ -101,6 +101,8 @@ def print_tree():
print('\033[?1049h\033[?25l', end = '')
select_stack = [(None, None)]
+global collapsed_count
+collapsed_count = 0
print_tree()
try:
@@ -193,12 +195,32 @@ try:
elif buf.endswith('\033[1;5D'):
select_stack[:] = select_stack[:1]
print_tree()
+ elif buf.endswith(' '):
+ cur = select_stack[-1][0]
+ if cur is None:
+ def expand(feed, value):
+ global collapsed_count
+ if 'inner' in feed:
+ cur_value = (('expanded' not in feed) or feed['expanded'])
+ if cur_value != value:
+ feed['expanded'] = value
+ collapsed_count += -1 if value else 1
+ for inner in feed['inner']:
+ expand(inner, value)
+ value = collapsed_count != 0
+ for feed in feeds:
+ expand(feed, value)
+ else:
+ if 'inner' in cur:
+ value = not (('expanded' not in cur) or cur['expanded'])
+ collapsed_count += -1 if value else 1
+ cur['expanded'] = value
+ print_tree()
+ print('Space')
elif buf.endswith('\t'):
print('Tab')
elif buf.endswith('\n'):
print('Enter')
- elif buf.endswith(' '):
- print('Space')
except Exception as err:
raise err