From 17e0a08fcafdb7b8e17a31257e296348d041f1ce Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Sat, 8 Dec 2018 14:17:30 +0800 Subject: alot: Add new hooks --- _config/alot/hooks.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to '_config/alot') diff --git a/_config/alot/hooks.py b/_config/alot/hooks.py index 9447689..806959e 100644 --- a/_config/alot/hooks.py +++ b/_config/alot/hooks.py @@ -7,13 +7,32 @@ import re +import alot + # Check for missing attachment before sending # async def pre_envelope_send(ui, dbm, __): - p = r'.*([Aa]ttach|附件|附图)' + p = r'.*([Aa]ttach|附件|附图|已附|所附)' e = ui.current_buffer.envelope if re.match(p, e.body, re.DOTALL) and not e.attachments: msg = 'No attachments. Send anyway?' if not (await ui.choice(msg, select='yes')) == 'yes': raise Exception() + + +# Save marked position in search buffer +# +def pre_buffer_open(ui, dbm, buf): + current = ui.current_buffer + if isinstance(current, alot.buffers.SearchBuffer): + current.focused_thread = current.get_selected_thread() + +def post_buffer_focus(ui, dbm, buf, success): + if success and hasattr(buf, "focused_thread"): + if buf.focused_thread: + tid = buf.focused_thread.get_thread_id() + for pos, tlw in enumerate(buf.threadlist.get_lines()): + if tlw.get_thread().get_thread_id() == tid: + buf.body.set_focus(pos) + break -- cgit v1.2.2