return 'quit'
elif ch in {'s', 'S'}:
self.send_mode()
- elif self.mode == 'send':
+ elif self.mode == 'select':
if ch in {'q', 'Q'}:
self.mode = 'normal'
elif ch in {'-', 'b', 'B', curses.KEY_UP}:
- self.prev_send_target()
+ self.prev_select_target()
elif ch in {'+', curses.KEY_DOWN}:
- self.next_send_target()
- elif ch in {' ', 'i', 'I', 'a', 'A', 'l', 'L'}:
+ self.next_select_target()
+ elif (self.select_type == 'send' and
+ ch in {' ', 'i', 'I', 'a', 'A', 'l', 'L'}):
self.send_complete()
def send_mode(self):
self.lines = None
self.linepos = None
self.width = None
- self.send_target = None
+ self.select_target = None
self.old_display_state = None
self.index_by_line = []
return got_any
def regenerate_lines(self, width):
- display_state = (self.mode, self.send_target)
+ display_state = (self.mode, self.select_target)
if (self.width == width and display_state == self.old_display_state and
not self.fetch_new()):
return
pos = 0
for thing, itemindex in self.iter_text_indexed():
params = {}
- if (self.mode == 'send' and itemindex == self.send_target and
+ if (self.mode == 'select' and itemindex == self.select_target and
isinstance(thing, text.FromLine)):
params['target'] = True
for line in thing.render(width, **params):
self.cc.print_at(y, 0, line)
sl = text.FileStatusLine()
- if self.mode == 'send':
- sl.keys.append(('SPACE', 'Reply'))
+ if self.mode == 'select':
+ if self.select_type == 'send':
+ sl.keys.append(('SPACE', 'Reply'))
sl.keys.append(('-', None))
sl.keys.append(('+', None))
sl.keys.append(('Q', 'Quit'))
self.cc.print_at(self.cc.scr_h - 1, 0, sl_rendered)
def send_mode(self):
- self.mode = 'send'
- self.send_target = self.index_by_line[self.linepos-1]
- def prev_send_target(self):
- self.send_target = max(self.minpos, self.send_target-1)
- print("prev ->", self.send_target, file=sys.stderr)
- def next_send_target(self):
- self.send_target = min(self.maxpos-1, self.send_target+1)
- print("next ->", self.send_target, file=sys.stderr)
+ self.mode = 'select'
+ self.select_type = 'send'
+ self.select_target = self.index_by_line[self.linepos-1]
+ def prev_select_target(self):
+ self.select_target = max(self.minpos, self.select_target-1)
+ def next_select_target(self):
+ self.select_target = min(self.maxpos-1, self.select_target+1)
def send_complete(self):
self.mode = 'normal'
recipients = collections.OrderedDict()
- for r in self.statuses[self.send_target].get_reply_recipients():
+ for r in self.statuses[self.select_target].get_reply_recipients():
if r == self.cc.fq_username or r in recipients:
continue
recipients[r] = 1
initial_content = "".join(f"@{r} " for r in recipients)
- reply_id = self.statuses[self.send_target].get_reply_id()
+ reply_id = self.statuses[self.select_target].get_reply_id()
if reply_id is not None:
hp = text.HTMLParser()
try: