summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--alot/commands/common.py11
-rw-r--r--alot/commands/thread.py4
-rw-r--r--docs/source/usage/modes/search.rst2
-rw-r--r--docs/source/usage/modes/thread.rst7
4 files changed, 19 insertions, 5 deletions
diff --git a/alot/commands/common.py b/alot/commands/common.py
index 64e68d49..71280d38 100644
--- a/alot/commands/common.py
+++ b/alot/commands/common.py
@@ -9,13 +9,16 @@ from .globals import PromptCommand
class RetagPromptCommand(Command):
- """prompt to retag selected threads\' tags"""
+ """prompt to retag selected thread's or message's tags"""
def apply(self, ui):
- thread = ui.current_buffer.get_selected_thread()
- if not thread:
+ get_selected_item = getattr(ui.current_buffer, {
+ 'search': 'get_selected_thread',
+ 'thread': 'get_selected_message'}[ui.mode])
+ item = get_selected_item()
+ if not item:
return
tags = []
- for tag in thread.get_tags():
+ for tag in item.get_tags():
if ' ' in tag:
tags.append('"%s"' % tag)
# skip empty tags
diff --git a/alot/commands/thread.py b/alot/commands/thread.py
index 05f73d6a..b6eee44f 100644
--- a/alot/commands/thread.py
+++ b/alot/commands/thread.py
@@ -21,6 +21,7 @@ from .globals import FlushCommand
from .globals import ComposeCommand
from .globals import MoveCommand
from .globals import CommandCanceled
+from .common import RetagPromptCommand
from .envelope import SendCommand
from ..completion import ContactsCompleter, PathCompleter
from ..db.utils import decode_header
@@ -1080,6 +1081,9 @@ class ThreadSelectCommand(Command):
ui.apply_command(ChangeDisplaymodeCommand(visible='toggle'))
+RetagPromptCommand = registerCommand(MODE, 'retagprompt')(RetagPromptCommand)
+
+
@registerCommand(
MODE, 'tag', forced={'action': 'add'},
arguments=[
diff --git a/docs/source/usage/modes/search.rst b/docs/source/usage/modes/search.rst
index c95d1a01..bdfeb48b 100644
--- a/docs/source/usage/modes/search.rst
+++ b/docs/source/usage/modes/search.rst
@@ -51,7 +51,7 @@ The following commands are available in search mode
.. describe:: retagprompt
- prompt to retag selected threads' tags
+ prompt to retag selected thread's or message's tags
.. _cmd.search.select:
diff --git a/docs/source/usage/modes/thread.rst b/docs/source/usage/modes/thread.rst
index 447e543a..1520e3cc 100644
--- a/docs/source/usage/modes/thread.rst
+++ b/docs/source/usage/modes/thread.rst
@@ -125,6 +125,13 @@ The following commands are available in thread mode
:---all: tag all messages in thread.
:---no-flush: postpone a writeout to the index (Defaults to: 'True').
+.. _cmd.thread.retagprompt:
+
+.. describe:: retagprompt
+
+ prompt to retag selected thread's or message's tags
+
+
.. _cmd.thread.save:
.. describe:: save