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.
327 lines
6.7 KiB
CSS
327 lines
6.7 KiB
CSS
/*
|
|
* Copyright 2016 Software Freedom Conservancy Inc.
|
|
* Copyright 2016, 2017 Michael Gratton <mike@vee.net>
|
|
*
|
|
* This software is licensed under the GNU Lesser General Public License
|
|
* (version 2.1 or later). See the COPYING file in this distribution.
|
|
*/
|
|
|
|
/* MainWindow */
|
|
|
|
.geary-folder-frame > border {
|
|
border-left-width: 0;
|
|
border-top-width: 0;
|
|
border-right-width: 0;
|
|
}
|
|
.geary-conversation-frame > border {
|
|
border-left-width: 0;
|
|
border-top-width: 0;
|
|
border-right-width: 0;
|
|
}
|
|
/* For 3-pane mode only */
|
|
.geary-sidebar-pane-separator.vertical .conversation-frame > border {
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
.geary-composer-box > border {
|
|
border-width: 0px;
|
|
}
|
|
.geary-composer-body > border {
|
|
border-left-width: 0;
|
|
border-right-width: 0;
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
.geary-overlay {
|
|
background-color: @theme_base_color;
|
|
padding: 2px 6px;
|
|
border: 1px solid @borders;
|
|
border-bottom: 0;
|
|
}
|
|
.geary-overlay:dir(ltr) {
|
|
border-left: 0;
|
|
}
|
|
.geary-overlay:dir(rtl) {
|
|
border-right: 0;
|
|
}
|
|
|
|
.geary-titlebar-left:dir(ltr),
|
|
.geary-titlebar-right:dir(rtl) {
|
|
border-top-right-radius: 0px;
|
|
}
|
|
.geary-titlebar-right:dir(ltr),
|
|
.geary-titlebar-left:dir(rtl) {
|
|
border-top-left-radius: 0px;
|
|
}
|
|
|
|
/* MainWindowInfoBarSet */
|
|
|
|
.geary-info-bar-frame > border {
|
|
border-top-width: 0;
|
|
border-left-width: 0;
|
|
border-right-width: 0;
|
|
}
|
|
|
|
/* FolderPopover */
|
|
|
|
row.geary-folder-popover-list-row {
|
|
padding: 6px;
|
|
border-color: @borders;
|
|
border-style: groove;
|
|
border-bottom-width: 1px;
|
|
}
|
|
row.geary-folder-popover-list-row > label {
|
|
color: @theme_text_color;
|
|
}
|
|
|
|
/* ConversationListBox */
|
|
|
|
.conversation-listbox {
|
|
padding: 0 12px;
|
|
}
|
|
.conversation-listbox > row {
|
|
margin: 0;
|
|
border: 1px solid @borders;
|
|
border-bottom-width: 0;
|
|
padding: 0;
|
|
box-shadow: 0 4px 8px 1px rgba(0,0,0,0.4);
|
|
}
|
|
.conversation-listbox > row > box {
|
|
background: @theme_base_color;
|
|
transition: background 0.25s;
|
|
}
|
|
.conversation-listbox > row:hover > box {
|
|
background: shade(@theme_base_color, 0.96);
|
|
}
|
|
.conversation-listbox > row.geary-expanded {
|
|
margin-bottom: 6px;
|
|
border-bottom-width: 1px;
|
|
}
|
|
.conversation-listbox *.geary-matched *.geary-match {
|
|
color: @theme_selected_fg_color;
|
|
background: @theme_selected_bg_color;
|
|
;}
|
|
.conversation-listbox > row.geary-loading {
|
|
border-top-width: 0px;
|
|
padding: 6px;
|
|
}
|
|
.conversation-listbox > row:first-child:not(.geary-loading) {
|
|
margin-top: 12px;
|
|
}
|
|
.conversation-listbox > row:last-child {
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
/* ConversationEmail */
|
|
|
|
.geary-unread grid.geary-message-summary {
|
|
border-color: @theme_selected_bg_color;
|
|
transition: border 0.25s;
|
|
}
|
|
|
|
/* ConversationMessage */
|
|
|
|
grid.geary-message-summary {
|
|
border-top: 4px solid transparent;
|
|
padding: 12px;
|
|
padding-top: 8px;
|
|
transition: border 4s;
|
|
}
|
|
|
|
.geary-headers label {
|
|
margin: 0;
|
|
padding: 1px;
|
|
}
|
|
.geary-headers label.geary-header:dir(ltr) {
|
|
padding-right: 6px;
|
|
}
|
|
.geary-headers label.geary-header:dir(rtl) {
|
|
padding-left: 6px;
|
|
}
|
|
.geary-headers flowboxchild {
|
|
margin: 0;
|
|
padding: 1px;
|
|
}
|
|
.geary-headers flowboxchild label {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.geary-headers flowboxchild.geary-spoofed image:dir(ltr) {
|
|
margin-right: 2px;
|
|
}
|
|
.geary-headers flowboxchild.geary-spoofed image:dir(rtl) {
|
|
margin-left: 2px;
|
|
}
|
|
|
|
.geary-headers label.geary-from {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.geary-header-value > flowboxchild:active {
|
|
background: mix(@theme_base_color, @theme_bg_color, 0.5);
|
|
}
|
|
|
|
.geary-header-value > flowboxchild:hover {
|
|
background: @theme_base_color;
|
|
}
|
|
|
|
.geary-header-value > flowboxchild label.dim-label:dir(ltr) {
|
|
margin-left: 6px;
|
|
}
|
|
.geary-header-value > flowboxchild label.dim-label:dir(rtl) {
|
|
margin-right: 6px;
|
|
}
|
|
|
|
.geary-submessages .geary-message {
|
|
background-image: linear-gradient(rgba(0,0,0,0.2), @bg_color 6px);
|
|
}
|
|
|
|
.geary-message .geary-placeholder-pane {
|
|
margin: 36px 16px;
|
|
}
|
|
|
|
/* ContactPopover */
|
|
|
|
.geary-contact-popover .dim-label {
|
|
font-size: 80%;
|
|
}
|
|
|
|
.geary-contact-popover .geary-deceptive {
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* Composer */
|
|
|
|
.geary-composer-embed headerbar {
|
|
border-top: 1px solid @borders;
|
|
border-radius: 0px;
|
|
}
|
|
|
|
/* AttachmentPane */
|
|
|
|
.geary-attachment-pane flowbox {
|
|
margin: 6px;
|
|
}
|
|
|
|
.geary-attachment-pane flowboxchild {
|
|
border-radius: 3px;
|
|
}
|
|
|
|
/* PlaceholderPane */
|
|
|
|
.geary-placeholder-pane.geary-has-text > image {
|
|
margin-bottom: 12px;
|
|
}
|
|
.geary-placeholder-pane > .title {
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* GtkListboxRows with padded labels */
|
|
|
|
row.geary-labelled-row {
|
|
padding: 0px;
|
|
}
|
|
|
|
row.geary-labelled-row > grid > * {
|
|
margin: 18px 6px;
|
|
}
|
|
|
|
row.geary-labelled-row > grid > *:first-child:dir(ltr),
|
|
row.geary-labelled-row > grid > *:last-child:dir(rtl) {
|
|
margin-left: 18px;
|
|
}
|
|
|
|
row.geary-labelled-row > grid > *:last-child:dir(ltr),
|
|
row.geary-labelled-row > grid > *:first-child:dir(rtl) {
|
|
margin-right: 18px;
|
|
}
|
|
|
|
/* Images should have some padding to offset them from adjacent
|
|
widgets, but care ust be taken since images are also used as children
|
|
of other widgets like entries, comboboxes and switches, and these
|
|
shouldn't be be touched. */
|
|
row.geary-labelled-row widget > image,
|
|
row.geary-labelled-row grid > image {
|
|
padding: 0px 6px;
|
|
}
|
|
|
|
row.geary-labelled-row > grid > combobox,
|
|
row.geary-labelled-row > grid > entry,
|
|
row.geary-labelled-row:not(.geary-add-row) > grid > image,
|
|
row.geary-labelled-row > grid > switch {
|
|
/* These use more space than labels, so set their valign to center
|
|
when adding them and free up some space around them here to keep a
|
|
consistent row height. */
|
|
margin: 0 12px;
|
|
}
|
|
|
|
/* Accounts.Editor */
|
|
|
|
grid.geary-accounts-editor-pane-content {
|
|
padding: 32px 128px;
|
|
}
|
|
|
|
grid.geary-account-view image:dir(ltr) {
|
|
margin-right: 6px;
|
|
}
|
|
grid.geary-account-view image:dir(rtl) {
|
|
margin-left: 6px;
|
|
}
|
|
|
|
grid.geary-welcome-panel {
|
|
margin-bottom: 32px;
|
|
}
|
|
|
|
label.geary-settings-heading {
|
|
font-weight: bold;
|
|
margin-top: 24px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
row.geary-settings entry {
|
|
border-width: 0px;
|
|
background-color: transparent;
|
|
}
|
|
|
|
row.geary-settings.geary-drag-source {
|
|
color: @insensitive_fg_color;
|
|
background-color: @insensitive_bg_color;
|
|
}
|
|
|
|
row.geary-settings.geary-drag-icon {
|
|
background-color: @theme_base_color;
|
|
border: 1px solid @borders;
|
|
}
|
|
|
|
/* dir pseudo-class used here for required additional specificity */
|
|
row.geary-settings > grid > grid.geary-drag-handle:dir(ltr),
|
|
row.geary-settings > grid > grid.geary-drag-handle:dir(rtl) {
|
|
margin: 0;
|
|
}
|
|
|
|
row.geary-settings > grid > grid.geary-drag-handle image:dir(ltr) {
|
|
padding: 12px;
|
|
padding-right: 6px;
|
|
}
|
|
|
|
row.geary-settings > grid > grid.geary-drag-handle image:dir(rtl) {
|
|
padding: 12px;
|
|
padding-left: 6px;
|
|
}
|
|
|
|
frame.geary-settings.geary-signature {
|
|
min-height: 5em;
|
|
}
|
|
|
|
buttonbox.geary-settings {
|
|
margin-top: 36px;
|
|
}
|
|
|
|
popover.geary-editor > grid {
|
|
margin: 12px;
|
|
}
|
|
|
|
popover.geary-editor > grid > button.geary-setting-remove {
|
|
margin-top: 12px;
|
|
}
|