Skip to content

Commit 44ad8c4

Browse files
committed
buttons/views: Add keypress events to trigger full message popup view.
This commit adds event to trigger full message view on pressing binded key 'f' in message info view. Visual change: * Hotkey help for full msg view appended in message info popup. Tests amended. Tests added (for added keypress events).
1 parent d0eb65f commit 44ad8c4

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

tests/ui_tools/test_popups.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,21 @@ def test_keypress_edit_history(self, message_fixture, key, widget_size,
481481
else:
482482
self.controller.show_edit_history.assert_not_called()
483483

484+
@pytest.mark.parametrize('key', keys_for_command('FULL_MSG_VIEW'))
485+
def test_keypress_full_msg(self, message_fixture, key, widget_size):
486+
msg_info_view = MsgInfoView(self.controller, message_fixture,
487+
title='Message Information',
488+
message_links=OrderedDict(),
489+
time_mentions=list())
490+
size = widget_size(msg_info_view)
491+
msg_info_view.keypress(size, key)
492+
493+
self.controller.show_full_msg.assert_called_once_with(
494+
message=message_fixture,
495+
message_links=OrderedDict(),
496+
time_mentions=list(),
497+
)
498+
484499
@pytest.mark.parametrize('key', {*keys_for_command('GO_BACK'),
485500
*keys_for_command('MSG_INFO')})
486501
def test_keypress_exit_popup(self, key, widget_size):
@@ -489,7 +504,7 @@ def test_keypress_exit_popup(self, key, widget_size):
489504
assert self.controller.exit_popup.called
490505

491506
def test_height_noreactions(self):
492-
expected_height = 3
507+
expected_height = 4 # +1 due to full msg view key
493508
assert self.msg_info_view.height == expected_height
494509

495510
# FIXME This is the same parametrize as MessageBox:test_reactions_view
@@ -537,8 +552,9 @@ def test_height_reactions(self, message_fixture, to_vary_in_each_message):
537552
self.msg_info_view = MsgInfoView(self.controller, varied_message,
538553
'Message Information', OrderedDict(),
539554
list())
540-
# 9 = 3 labels + 1 blank line + 1 'Reactions' (category) + 4 reactions.
541-
expected_height = 9
555+
# 10 = 4 labels + 1 blank line + 1 'Reactions' (category)
556+
# + 4 reactions.
557+
expected_height = 10
542558
assert self.msg_info_view.height == expected_height
543559

544560
def test_keypress_navigation(self, mocker, widget_size,

zulipterminal/ui_tools/views.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1178,10 +1178,13 @@ def __init__(self, controller: Any, msg: Message, title: str,
11781178
self.message_links = message_links
11791179
self.time_mentions = time_mentions
11801180

1181+
full_msg_keys = ', '.join(map(repr, keys_for_command('FULL_MSG_VIEW')))
11811182
msg_info = [
11821183
('', [('Date & Time', time.ctime(msg['timestamp'])[:-5]),
11831184
('Sender', msg['sender_full_name']),
1184-
('Sender\'s Email ID', msg['sender_email'])]),
1185+
('Sender\'s Email ID', msg['sender_email']),
1186+
('Full message', 'Press {} to view'
1187+
.format(full_msg_keys))]),
11851188
]
11861189
# Only show the 'Edit History' label for edited messages.
11871190
self.show_edit_history_label = (
@@ -1252,6 +1255,13 @@ def keypress(self, size: urwid_Size, key: str) -> str:
12521255
message_links=self.message_links,
12531256
time_mentions=self.time_mentions,
12541257
)
1258+
elif (is_command_key('FULL_MSG_VIEW', key)):
1259+
self.controller.show_full_msg(
1260+
message=self.msg,
1261+
message_links=self.message_links,
1262+
time_mentions=self.time_mentions,
1263+
)
1264+
return key
12551265
return super().keypress(size, key)
12561266

12571267

0 commit comments

Comments
 (0)