Create new Application.AttachmentManager class and move code for saving attachments there from both Application.Controller and MainWindow since aside from needing the latter for dialogs it is independent of both. Create new Components.AttachmentPane widget for diplaying attachents for an email in the ConversationViewer. Update ConversationEmail and ConversationMessage to use these two new classes directly, rather than implementing save management itself or requiring the MainWindow to wire up signals on these classes.
283 lines
10 KiB
XML
283 lines
10 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- Generated with glade 3.22.1 -->
|
|
<interface>
|
|
<requires lib="gtk+" version="3.14"/>
|
|
<template class="ConversationEmail" parent="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<placeholder/>
|
|
</child>
|
|
<style>
|
|
<class name="geary_email"/>
|
|
</style>
|
|
</template>
|
|
<object class="GtkGrid" id="actions">
|
|
<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>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">0</property>
|
|
</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" comments="Note: The application will never show this button at the same time as unstar_button, one will always be hidden.">Mark this message as starred</property>
|
|
<property name="valign">start</property>
|
|
<property name="action_name">eml.star</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">non-starred-symbolic</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">1</property>
|
|
<property name="top_attach">0</property>
|
|
</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" comments="Note: The application will never show this button at the same time as star_button, one will always be hidden.">Mark this message as not starred</property>
|
|
<property name="valign">start</property>
|
|
<property name="action_name">eml.unstar</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">starred-symbolic</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">2</property>
|
|
<property name="top_attach">0</property>
|
|
</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">view-more-symbolic</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">3</property>
|
|
<property name="top_attach">0</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<object class="GtkInfoBar" id="draft_infobar">
|
|
<property name="app_paintable">True</property>
|
|
<property name="can_focus">False</property>
|
|
<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>
|
|
<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>
|
|
</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>
|
|
</object>
|
|
<object class="GtkGrid" id="sub_messages">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="hexpand">True</property>
|
|
<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>
|
|
<style>
|
|
<class name="geary-submessages"/>
|
|
</style>
|
|
</object>
|
|
</interface>
|