Skip to content

Commit b1a437a

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 ab08cce commit b1a437a

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

tests/ui_tools/test_popups.py

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

620+
@pytest.mark.parametrize('key', keys_for_command('FULL_MSG_VIEW'))
621+
def test_keypress_full_msg(self, message_fixture, key, widget_size):
622+
msg_info_view = MsgInfoView(self.controller, message_fixture,
623+
title='Message Information',
624+
message_links=OrderedDict(),
625+
time_mentions=list())
626+
size = widget_size(msg_info_view)
627+
msg_info_view.keypress(size, key)
628+
629+
self.controller.show_full_msg.assert_called_once_with(
630+
message=message_fixture,
631+
message_links=OrderedDict(),
632+
time_mentions=list(),
633+
)
634+
620635
@pytest.mark.parametrize('key', {*keys_for_command('GO_BACK'),
621636
*keys_for_command('MSG_INFO')})
622637
def test_keypress_exit_popup(self, key, widget_size):
@@ -625,7 +640,7 @@ def test_keypress_exit_popup(self, key, widget_size):
625640
assert self.controller.exit_popup.called
626641

627642
def test_height_noreactions(self):
628-
expected_height = 3
643+
expected_height = 4 # +1 due to full msg view key
629644
assert self.msg_info_view.height == expected_height
630645

631646
# FIXME This is the same parametrize as MessageBox:test_reactions_view
@@ -673,8 +688,9 @@ def test_height_reactions(self, message_fixture, to_vary_in_each_message):
673688
self.msg_info_view = MsgInfoView(self.controller, varied_message,
674689
'Message Information', OrderedDict(),
675690
list())
676-
# 9 = 3 labels + 1 blank line + 1 'Reactions' (category) + 4 reactions.
677-
expected_height = 9
691+
# 10 = 4 labels + 1 blank line + 1 'Reactions' (category)
692+
# + 4 reactions.
693+
expected_height = 10
678694
assert self.msg_info_view.height == expected_height
679695

680696
def test_keypress_navigation(self, mocker, widget_size,

zulipterminal/ui_tools/views.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1219,10 +1219,12 @@ def __init__(self, controller: Any, msg: Message, title: str,
12191219
msg['timestamp'], show_seconds=True, show_year=True
12201220
)
12211221

1222+
full_msg_keys = ', '.join(map(repr, keys_for_command('FULL_MSG_VIEW')))
12221223
msg_info = [
12231224
('', [('Date & Time', date_and_time),
12241225
('Sender', msg['sender_full_name']),
1225-
('Sender\'s Email ID', msg['sender_email'])]),
1226+
('Sender\'s Email ID', msg['sender_email']),
1227+
('Full message view', f"Press {full_msg_keys} to view")]),
12261228
]
12271229
# Only show the 'Edit History' label for edited messages.
12281230
self.show_edit_history_label = (
@@ -1293,6 +1295,13 @@ def keypress(self, size: urwid_Size, key: str) -> str:
12931295
message_links=self.message_links,
12941296
time_mentions=self.time_mentions,
12951297
)
1298+
elif (is_command_key('FULL_MSG_VIEW', key)):
1299+
self.controller.show_full_msg(
1300+
message=self.msg,
1301+
message_links=self.message_links,
1302+
time_mentions=self.time_mentions,
1303+
)
1304+
return key
12961305
return super().keypress(size, key)
12971306

12981307

0 commit comments

Comments
 (0)