geary/ui/conversation-email.ui

418 lines
16 KiB
Text
Raw Normal View History

Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<interface>
<requires lib="gtk+" version="3.14"/>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<template class="ConversationEmail" parent="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="geary_email"/>
</style>
</template>
<object class="GtkGrid" id="actions">
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">end</property>
<property name="valign">start</property>
<child>
<object class="GtkButton" id="attachments_button">
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Save all attachments</property>
<property name="valign">start</property>
<property name="action_name">eml.save_all_attachments</property>
<property name="relief">none</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">mail-attachment-symbolic</property>
</object>
</child>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</packing>
</child>
<child>
<object class="GtkButton" id="star_button">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Mark this message as starred</property>
<property name="valign">start</property>
<property name="action_name">eml.star</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="relief">none</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">non-starred-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</packing>
</child>
<child>
<object class="GtkButton" id="unstar_button">
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Mark this message as not starred</property>
<property name="valign">start</property>
<property name="action_name">eml.unstar</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="relief">none</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">starred-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</packing>
</child>
<child>
<object class="GtkMenuButton" id="email_menubutton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Display the message menu</property>
<property name="valign">start</property>
<property name="relief">none</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">0</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</packing>
</child>
</object>
<object class="GtkGrid" id="attachments">
<property name="name">box</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="orientation">vertical</property>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</packing>
</child>
<child>
<object class="GtkFlowBox" id="attachments_view">
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin_left">6</property>
<property name="margin_right">6</property>
<property name="margin_top">6</property>
<property name="margin_bottom">6</property>
<property name="hexpand">True</property>
<property name="homogeneous">True</property>
<property name="column_spacing">6</property>
<property name="row_spacing">6</property>
<property name="max_children_per_line">4</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="selection_mode">multiple</property>
<property name="activate_on_single_click">False</property>
<signal name="child-activated" handler="on_attachments_child_activated" swapped="no"/>
<signal name="selected-children-changed" handler="on_attachments_selected_changed" swapped="no"/>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkActionBar" id="attachments_actions">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="background"/>
</style>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<child>
<object class="GtkButton" id="open_attachments">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">Open selected attachments</property>
<property name="action_name">eml.open_attachments</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">document-open-symbolic</property>
</object>
</child>
</object>
<packing>
</packing>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</child>
<child>
<object class="GtkButton" id="save_attachments">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">Save selected attachments</property>
<property name="action_name">eml.save_attachments</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">document-save-symbolic</property>
</object>
</child>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</object>
<packing>
</packing>
</child>
<child>
<object class="GtkButton" id="select_all_attachments">
<property name="visible">False</property>
<property name="can_focus">True</property>
<property name="tooltip_text" translatable="yes">Select all attachments</property>
<property name="action_name">eml.select_all_attachments</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">edit-select-all-symbolic</property>
</object>
</child>
</object>
<packing>
</packing>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</packing>
</child>
<style>
<class name="view"/>
</style>
</object>
<object class="GtkListStore" id="attachments_model">
<columns>
<!-- column-name icon -->
<column type="GdkPixbuf"/>
<!-- column-name label -->
<column type="gchararray"/>
<!-- column-name attachment_info -->
<column type="GObject"/>
</columns>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</object>
<object class="GtkInfoBar" id="draft_infobar">
<property name="app_paintable">True</property>
<property name="can_focus">False</property>
2016-08-25 22:18:14 +10:00
<property name="no_show_all">True</property>
<property name="message_type">warning</property>
<child internal-child="action_area">
<object class="GtkButtonBox">
<property name="can_focus">False</property>
<property name="spacing">6</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="button3">
<property name="label" translatable="yes">Edit Draft</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child internal-child="content_area">
<object class="GtkBox">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Draft message</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">This message has not yet been sent.</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<action-widgets>
<action-widget response="1">button3</action-widget>
</action-widgets>
</object>
<object class="GtkInfoBar" id="not_saved_infobar">
<property name="app_paintable">True</property>
<property name="can_focus">False</property>
2016-08-25 22:18:14 +10:00
<property name="no_show_all">True</property>
<property name="message_type">warning</property>
<child internal-child="action_area">
<object class="GtkButtonBox">
<property name="can_focus">False</property>
<property name="spacing">6</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="button1">
<property name="label" translatable="yes">Try Again</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child internal-child="content_area">
<object class="GtkBox">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">16</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Message not saved</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">This message was sent, but has not been saved to your account.</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<action-widgets>
<action-widget response="1">button1</action-widget>
</action-widgets>
</object>
<object class="GtkGrid" id="sub_messages">
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
2016-07-08 11:12:42 +10:00
<style>
<class name="geary-submessages"/>
</style>
Reenable displaying sub-messages. Geary currently displays RFC 822 attachments inline, below the email's primary message body, using the same HTML chrome for the headers and email body as for the primary body. Taking the same approach but using GTK+ widgets meant splitting ConversationMessage up into a ConversationEmail class that manages the UI for displaying an email in its entirety, and a ConversationMessage to manage the only header widgets and webview for displaying an individual RFC 822 message, usable for both the primary body and any sub-messages. Thus, this is a big change. One behavioural change is that each sub-message with remote images now requires individual approval, rather than being dependant on the containing message's sender and/or approval. This prevents some attacks e.g. a trusted sender forwarding a spam/malware message, but does not prevent it if the message is forwarded inline, obviosuly. * src/client/conversation-viewer/conversation-email.vala (ConversationEmail): New class for managing the UI for an overall email message. This replaces the old ConversationMessage and contains much of it's code and widgets - anything from that class which does not directly support displaying headers or a message body. * src/client/conversation-viewer/conversation-message.vala: (ConversationMessage): Same class as before, but now with its scope narrowed to only display message headers and body. The draft infobar remains here rather than being put ConversationEmail where it belongs since it's bit of a pain to insert in the right place and doesn't really hurt. (::email): Moved this property and any code that depends on it to ConversationEmail. (::always_load_remote_images): New property passed in via the ctor, allowing one dependency on the old ::email property to be removed. (::inlined_content_ids): Moved to ConversationEmail, since that is the class that keeps track of attachments to display. Add the signal attachment_displayed_inline to allow ConversationEmail to be notified of inlined attachments instead. (::flag_remote_images, ::remember_remote_images): New signals to notify ConversationEmail that the user has flagged this message or the message's sender for loading remote images. This is passed through since in the former's case we may need to set flags on the email itself, the latter because it is one less use of the contact_store property, which should be removed from this class at some point. * src/client/conversation-viewer/conversation-viewer.vala: Chase API changes from the above. In general, replace use of the term "message" with "email" since this class is now mostly dealing with ConversationEmail instances, rather than ConversationMessage instances. (ConversationViewer::check_mark_read): Only consider the ConversationEmail's primary message body when checking for visibility rather than that and any submessages to keep things simple. (ConversationViewer::show_message, ::hide_message): Renamed to expand_email/collapse_email respectively since we don't ever actually hide it. Carry that change on to same methods on ConversationEmail. * src/engine/rfc822/rfc822-message.vala (Geary.RFC822.Message): Add get_primary_originator(), almost vermatim from Geary.Email, to support determining the sender for remembering remote message loading for senders of sub-emails. * src/client/components/main-window.vala (MainWindow::set_styling): Fix background transition for collapsed emails. * src/client/application/geary-controller.vala: Chase API name changes. * src/CMakeLists.txt: Include new ConversationEmail source file. * ui/conversation-email.ui: New UI for ConversationEmail, move the email action box, attachments box amd sub-messages box here from conversation-message.ui. * ui/CMakeLists.txt: Include new UI in compiled resources. * po/POTFILES.in: Add new UI for transation.
2016-04-19 16:52:34 +10:00
</object>
</interface>