This leads to a minor bit of UI string and code duplication, but
substantially reduces the complexity of implementing the popover's
actions. Hook up all remaining actions except open and save.
* src/client/conversation-viewer/conversation-message.vala
(ConversationMessage): Add a simple action group namespaced as "msg"
for actions under the message's scope, add actions to it for the
context menu. Track the currently selected DOM element under the
context menu so we can update action enabled state, etc., based on
it. Construct the context menu as needed, update signal & event
handlers as needed.
* src/client/conversation-viewer/conversation-email.vala
(ConversationEmail): Add new save-image signal, chain emission from
added ConversationMessage instance's save-image signal to this.
* src/client/application/geary-controller.vala (GearyController): Chase
on_save_buffer_to_file signal moving to ConversationEmail and being
renamed to save_image.
* src/client/conversation-viewer/conversation-viewer.vala: Remove uneeded
signal.
* ui/conversation-message-menus.ui: New UI file for ConversationMessage
context menu.
* ui/CMakeLists.txt: Incude ConversationMessage UI in the resources.
* po/POTFILES.in: Add new UI file.