Commit graph

3098 commits

Author SHA1 Message Date
Jiri Grönroos
7d4573a9cd Update Finnish translation 2017-02-22 19:19:30 +00:00
Piotr Drąg
386b5076fd Update Polish translation 2017-02-19 19:39:03 +01:00
Dušan Kazik
f973b72078 Update Slovak translation 2017-02-18 10:18:00 +00:00
Michael James Gratton
e0ff646904 Really fix crash when replying to non-draft messages.
See commit 67d2c80.

* src/client/composer/composer-widget.vala (ComposerWidget::load): Only
  call restore_reply_to_state if there is a referred message *and* it is
  actually a draft.
2017-02-16 19:11:57 +11:00
Michael James Gratton
1806065496 Re-enable standard keyboard scrolling for conversations.
This does the following:

- Implements using conventional controls
  (Up/Down/PageUp/PageDown/Home/End) to control the
  conversation's vertical scrollbar.
- Uses Spacebar/Shift+Spacebar (but not backspace, since that's also
  mapped to trash/delete) to advance the focus forward/back through
  individual messages.

Bug 772748.

*  src/client/conversation-viewer/conversation-list-box.vala
   (ConversationListBox): Add action signals and keyboard bindings to
   implement the scheme above. Remove the old hacky approach to making
   the spacebar do something useful.

* src/client/conversation-viewer/conversation-web-view.vala
  (ConversationWebView): Blacklist forwarding key press events for the
  keys above, so the ConversationListBox bindings actually work.
2017-02-16 18:25:28 +11:00
Michael James Gratton
011b89303b Make ConversationListBox::check_mark_read private. 2017-02-16 12:22:48 +11:00
Michael James Gratton
2851a5526e Don't breifly show the message body progress bar when loading cached.
Bug 778261.

* src/client/conversation-viewer/conversation-message.vala
  (ConversationMessage): Add a new timeout for showing the progress bar,
  1s after the first image is loaded.
2017-02-16 11:58:13 +11:00
Michael James Gratton
4ca86afc73 Workaround libsoup cache crashing when cancellable is actually cancelled.
Bug 778720.

* src/client/conversation-viewer/conversation-message.vala
  (ConversationMessage::load_avatar): Don't pass thr load cancellable
  through to soup, just check to see if the load has been cancelled
  before attempting to set the icon.
2017-02-16 10:20:38 +11:00
Michael James Gratton
67d2c80b69 Fix a crash replying to a message.
* src/client/composer/composer-widget.vala (ComposerWidget::load): We
  only need to call restore_reply_to_state when we are actually restoring
  from a draft.
2017-02-16 09:38:53 +11:00
Michael James Gratton
9f5def0d0f Re-implement alt text filename fallback when saving inline images.
This restores some old behaviour after teh WK2 port.

* src/client/conversation-viewer/conversation-message.vala
  (ConversationMessage): Add alt_text param to ::save_image
  signal. Replace ::set_action_param_string with
  ::set_action_param_string so we can pass a (url, alt_text) tuple for
  the save_image tuple and update call sites. Set this tuple for the
  action when enabling it, and pass the two values to the ::save_image
  signal handler when activated.

* src/engine/api/geary-attachment.vala (Attachment::get_safe_file_name):
  Add alt_file_name param method, use that when constructing a file
  name. Add doc comment, test.

* src/client/application/geary-controller.vala: Updated to pass alt text
  from save_imge signal emission all thr way through to
  get_safe_file_name.
2017-02-16 08:58:58 +11:00
Michael James Gratton
b19d0c8cad Ensure mixed landscape/portrait attachment previews are centred vertically. 2017-02-16 08:44:44 +11:00
Michael James Gratton
2a7fca9397 Clean up default filename when saving attachments.
This ensures both inline images are saved using the specified content
filename, if any, and that an extension is attempted to be guessed when
no filename is specified.

Fixes Bug 713999, Bug 712923, Bug 778026.

* src/client/application/geary-controller.vala: Major rework of how
  attachments are saved. Rework how save dialogs are constructed,
  combining common code paths into one constrcutor method. Split up code
  for saving one attachment vs many into two different methods. Ensure
  all code baths ultimately use the same method to do the actual
  saving. Lookup a attachment when saving an inline image and use that
  by default. Get filenames from new Attachment::get_useful_filename
  method that guesses if needed.

* src/client/conversation-viewer/conversation-message.vala
  (ConversationMessage::save_image): Fix name of first param to reflect
  what it actually is.

* src/engine/api/geary-attachment.vala (Attachment): Add
  ::get_safe_filename method that checks the type of both the
  attachment's content and its file name, if any. Will construct an
  appropriate file name if non is given. Add unit tests.

* src/engine/api/geary-email.vala (Email): Add new
  ::get_attachment_by_content_id to lookup attachments by MIME
  content-id. Rename old ::get_attachment method to disambiguate.
2017-02-16 08:44:27 +11:00
Michael James Gratton
992528862e Clean up DB handling of attachments without specified file names.
This could probably use a DB migration to set all attachments will "none"
as their filename to NULL, but that's a lot of trouble for little gain.

* src/client/conversation-viewer/conversation-email.vala (if): Remove
  workaround for "none" attachment file names.

* src/client/conversation-viewer/conversation-message.vala
  (ConversationMessage::inline_image_replacer): Handle translation for
  null attachment file names here, rather than in the engine.

* src/engine/api/geary-email.vala
  (Email::get_searchable_attachment_list): Don't bother appending file
  names for attachments when they are null.

* src/engine/imap-db/imap-db-attachment.vala (Attachment): Use a const
  for null file name replacement string so it can be used elsewhere.

* src/engine/imap-db/imap-db-folder.vala (Folder::do_list_attachments):
  Clean up old "none" file names when loading from DB.
  (Folder::do_save_attachments_db): Allow for file name being null.

* src/engine/rfc822/rfc822-message.vala (Message::InlinePartReplacer):
  Allow file name to be null, update call sites.

* src/engine/rfc822/rfc822-utils.vala (get_clean_attachment_filename):
  Don't attempt to translate null filenames, just return it null. Update
  call sites.
2017-02-15 17:50:49 +11:00
Michael James Gratton
6257e05ad9 Tidy up Geary.Attachment API a bit.
* src/engine/api/geary-attachment.vala (Attachment): Allow direct access
  to MIME content-disposition filename if available. Make it obvious that
  the filename comes from content-disposition. Reorder attrs to reflect
  importance. Update subclasses and call sites.
2017-02-15 17:50:49 +11:00
Michael James Gratton
183da8bd3f Add ContentType.is_default and unit test. 2017-02-15 17:50:49 +11:00
Michael James Gratton
e3d708b8e6 Add ContentType methods for determining file name extenions and type sniffing.
* src/engine/mime/mime-content-type.vala (ContentType): Add ::guess_type
  and ::get_file_name_extension methods, unit tests.
2017-02-15 17:50:34 +11:00
Dušan Kazik
9014e46e42 Update Slovak translation 2017-02-12 14:07:55 +00:00
Marek Černocký
8044129731 Updated Czech translation 2017-02-11 11:07:42 +01:00
Michael James Gratton
4e27949d87 Fix editing additional email addresses from account prefs. Bug 778364.
* src/client/accounts/account-dialog-add-edit-pane.vala
  (AccountDialogAddEditPane): Pass an account id to edit_alternate_emails
  signal, not an email addess.

* src/client/accounts/account-dialog.vala
  (AccountDialog::get_account_info_for_email): Rename method to
  "get_account_info" and param since it actually accepts an account
  id. Update call sites.

* src/client/accounts/add-edit-page.vala (AddEditPage::id): Make RO
  access public, so the AddEditPane can access it.
2017-02-09 21:54:36 +11:00
Michael James Gratton
c1fb400e24 Fix segfault closing client after starting it without network access.
* src/client/conversation-list/conversation-list-view.vala
  (ConversationListView): Convert to using IdleManager for handling
  selection updating, reset it when widget is destroyed.
2017-02-09 10:56:45 +11:00
Michael James Gratton
31fbfd4047 Add IdleManager class for sane main loop idle scheduling. 2017-02-09 10:54:45 +11:00
Michael James Gratton
18fd246f53 Fix failing dev-daily PPA build.
* debian/rules: Prevent dh_auto_test from being run.
2017-02-09 09:09:26 +11:00
Michael James Gratton
dd3d604b6d Tidy up ConversationWebView's CSS a bit. 2017-02-08 00:31:25 +11:00
Michael James Gratton
fdde9b15a1 Prevent messages from setting a broken body height. Fixes Bug 750075.
* ui/conversation-web-view.css: Require body height to remain set to
  CSS's default value.
2017-02-08 00:30:48 +11:00
Michael James Gratton
d6ed3e3877 Ensure ClientWebView's preferred height is updated after doc load.
Should help/fix Bug 778025.

* ui/client-web-view.js (PageView::init): Also add a load handler to the
  window, to (strangely) catch the final load event on the
  document. Expand and correct comments a bit.
2017-02-08 00:28:46 +11:00
Michael James Gratton
7608d160fe Make build and debian version reflect 0.12 on master.
Better late than never?
2017-02-07 21:54:39 +11:00
Michael James Gratton
b1493275e5 Report the branch & state rather than last tag in dev version string. 2017-02-07 21:52:48 +11:00
Gautier Pelloux-Prayer
86665944f6 Don't abort the application if password could not be saved in the secrets manager. Bug 776139 2017-02-07 14:08:11 +11:00
Michael James Gratton
b526b4c3eb Don't insert multiple blank lines in the composer. Bug 778125.
* src/client/composer/composer-web-view.vala
  (ComposerWebView::load_html): Remove spacers around cursor, just add
  them after body and inline quote if present. Update unit tests.
2017-02-07 12:09:29 +11:00
Michael James Gratton
b54220012d Update symbolic icon for 0.12.
* icons/hicolor/symbolic/apps/geary-symbolic.svg: New icon courtesy
  Stephen Michel <stephen.michel@tufts.edu>.
2017-02-07 10:55:32 +11:00
Gautier Pelloux-Prayer
d33febbc05 Don't merge emails if they do not share the same Message-ID. Bug 713530
In some cases, it may happen that a mail is being sent multiple times simultaneously
to the same recipient.
The only modified field being the Message-ID, we have to check it as well as
message's size before merging 2 mails together.
Otherwise, at each start-up Geary will try to fetch "missing mails" but will never
succeed to do so.
2017-02-07 10:37:10 +11:00
Gautier Pelloux-Prayer
330f897f8c Fix compilation for clang. Bug 778046 2017-02-06 22:36:11 +11:00
Rafael Fontenelle
37abad559a Update Brazilian Portuguese translation 2017-02-06 10:23:53 +00:00
Rafael Fontenelle
cc965b88cb Update Brazilian Portuguese translation 2017-02-06 10:23:27 +00:00
Piotr Drąg
514d7840a4 Update Polish translation 2017-02-05 16:29:37 +01:00
Michael James Gratton
2c00fe9a48 Add tooltips to composer spellcheck popover. 2017-02-05 15:28:02 +11:00
Michael James Gratton
9010eedd26 Remove libunique from INSALL command lines, seperate out Unity packages. 2017-02-05 15:28:02 +11:00
Mario Blättermann
1a3876d83f Update German translation 2017-02-04 18:41:24 +00:00
Michael James Gratton
29b5aa50e7 Fix configure whitespace, document VALADOC environment variable. 2017-02-02 15:41:45 +11:00
Michael James Gratton
8c4c1aefa9 Update configure script for compatibility with current unstable jhbuild. 2017-02-02 15:16:45 +11:00
Michael James Gratton
bac17b720b Mention dnf in INSTALL for Fedora, not yum. 2017-02-02 00:48:24 +11:00
Michael James Gratton
ba4863e45a Fix build on systems with vala <= 0.30.0
* src/client/application/geary-application.vala: Replace use of Version
  attr with Deprecated.
2017-02-02 00:47:01 +11:00
Michael James Gratton
bbb130105b Update distro information in INSTALL file for WK2. 2017-02-01 14:50:16 +11:00
Michael James Gratton
2a73478a8b Update package and version reqs for WebKit2 in INSTALL and deb control. 2017-02-01 14:34:31 +11:00
Michael James Gratton
29b339c87d Port to WebKit2. Bug 728002.
Merge branch 'bug/728002-webkit2'
2017-02-01 09:59:17 +11:00
Michael James Gratton
e8aa38f669 Explicitly allow loading only geary:body in ClientWebView. 2017-02-01 00:41:45 +11:00
Michael James Gratton
ac8a532557 Query Webview for supported image types instead of hardcoding them. 2017-02-01 00:41:45 +11:00
Michael James Gratton
96ffcdb608 Split composer web view up into multiple parts.
This lets us implement changing signatures and deleting bottom-quoted
messages without having to reload the whole view, and makes it possible
to target only the user's content when modifying for send, etc.

* src/client/composer/composer-web-view.vala (ComposerWebView): Move
  composer CSS into composer-web-view.css resource file, load it when
  loading JS resource and add it to the view's user content manager.
  (ComposerWebView::load_html): Split up body, signature and quote into a
  DIV container for each.
  (ComposerWebView::linkify_content): Replaced with ::clean_content,
  which will also tidy up internal markup before sending. Update call
  site and unit test.

* src/engine/rfc822/rfc822-utils.vala (Geary.RFC822.Utils): Remove some
  more obtrusive white space when sending replies/forwards.

* test/client/composer/composer-web-view-test.vala,
  test/js/composer-page-state-test.vala: Update tests to expect new HTML
  and text output from ComposerWebView and use of individual parts for
  composer markup.

* ui/composer-web-view.js (ComposerPageState): Replace messageBody
  property and uses with bodyPart, signaturePart and quotePart. Set these
  content-editable on load. Move listeners from messageBody back to the
  document.body so they also listen for events on the additional
  parts. Keep track of text cursor location within the parts and set a
  class if so, to work around the lack of :focus-inside support.
  (ComposerPageState::updateSignature): Implement by updating the inner
  content of the signature part.
  (ComposerPageState::deleteQuotedMessage): Implement by removing the
  quote part from the DOM tree.
  (ComposerPageState::containsAttachmentKeyword): Consider only the
  bodyPart when scanning for attachments, remove hacks for ignoring the
  signature any any quoted message.
  (ComposerPageState::linkifyContent): Mirror ClientWebView change and
  replace with ::cleanContent. Ensure existing parts have contenteditable
  and focus class removed, remove signature and quote parts if empty.
  (ComposerPageState::getHtml): Generate HTML using clones of the three
  parts, so we can rmeove contenteditable and focus classes without
  modifying the actual DOM.
  (ComposerPageState::selectionChanged): Update focus class on parts as
  needed.
2017-02-01 00:41:45 +11:00
Michael James Gratton
96c16d8b78 Fix more issues hiding/showing collapsed quotes.
* ui/conversation-web-view.js
  (ConversationPageState::createControllableQuotes): Only add control
  buttons if the quote is controllable. Calculat the height difference up
  front, not in the control button's click handler, so the value is
  correct.
2017-02-01 00:41:45 +11:00
Michael James Gratton
97709785d7 Fix brown-paper-bag bug in Geary.JS::escape_string.
* src/engine/util/util-js.vala (Geary.JS): Correctly append escaped char
  to the string. Add unit tests.
2017-02-01 00:41:45 +11:00