diff options
| author | Mattias Andrée <maandree@operamail.com> | 2013-07-26 11:28:03 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@operamail.com> | 2013-07-26 11:28:03 +0200 |
| commit | 4d4835b6b3043768371c8a54331d333f68261df5 (patch) | |
| tree | 04b6d7cd282f267babf0a4b63da91bb09b682e49 /src/featherweight.py | |
| parent | fix tree walking (diff) | |
| download | pytagomacs-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-x | src/featherweight.py | 26 |
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 |
