Commit graph

493 commits

Author SHA1 Message Date
Jim Nelson
ed235a106b SQL upgrade scripts not installed: Closes #5436 2012-06-21 11:58:15 -07:00
Christian Dywan
86a02357a2 No debug symbols: Closes #5359
Courtesy Christian Dywan.
2012-06-19 18:15:21 -07:00
Matthew Pirocchi
e89bb93902 Make password dialog HIG-compliant. Closes #5386. 2012-06-14 17:14:24 -07:00
Christian Dywan
2c0a210656 New mail notification: Closes #3828
Adds new mail notification via libnotify for new previously-unseen
messages.  Various minor bugs fixed in here as well that were
relevant to this operation (including notifying of locally
appended messages during folder normalization and reusing Folder
objects inside Account).
2012-06-14 16:47:54 -07:00
Matthew Pirocchi
dc7d751999 Save As should not save in internal directory by default: Closes #5375. 2012-06-14 12:20:20 -07:00
Matthew Pirocchi
a0b15a75ea Use clone_node(false) instead of copy_name_and_attributes: Closes #5394. 2012-06-13 15:31:42 -07:00
Matthew Pirocchi
226d50bff6 Load message-viewer HTML and CSS dynamically: Closes #5319. 2012-06-13 14:23:36 -07:00
Matthew Pirocchi
c930f26ebf Split up blockquotes when inserting newlines. Closes #5136, #5135, #5133 2012-06-13 12:33:41 -07:00
Eric Gregory
6963063fd5 Send outgoing messages via Outbox folder: Closes #4569
Squashed commit of many patches that merged Eric's outbox patch
as well as additional changes to upgrade the database rather than
require it be wiped and some refactoring suggested by the Outbox
implementation.  Also updated Outbox to be fully atomic via
Transactions.
2012-06-13 11:54:20 -07:00
Matthew Pirocchi
b7a2993d6f Fix installation of password dialog: Closes #5391. 2012-06-13 11:13:57 -07:00
Jim Nelson
87ed1cbb53 Zero-byte literal data causing premature EOS
Deserializer needs to perform a read on literal data even if it's
zero bytes to properly send events to the state machine, but
recent changes caused the Deserializer to push an EOS event in
that case.
2012-06-12 18:16:52 -07:00
Jim Nelson
01f07bc375 Soft assertion on command timeout: Closes #5366
Need to cancel all outstanding command times when disconnecting.
2012-06-11 11:05:16 -07:00
Matthew Pirocchi
c3340e91fb Don't force user to save password: Closes #5317, #5291, #5218, #5083.
- Give the user a "remember password" option that they can uncheck if
  they don't want Geary to remember their password. You've seen most of
  this part of the patch before, aside from a few bugfixes.
- Display a nicer dialog when re-prompting the user for their password.
  This only shows (editable) fields for "password" and "remember
  password" by default, with (non-editable) fields for "Service" and
  "Real name" available in an expander.
- Fix a crash that occurred whenever an account is connected when there
  was previously another account (or the same account) connected.
2012-06-11 10:38:25 -07:00
Jim Nelson
8ff56dd947 Updated THANKS file 2012-06-10 20:27:24 -07:00
Jim Nelson
0ae8cf8096 Occasionally fail to retrieve mail at startup: Closes #5381
A timing window opened in the recent changes to Deserializer that
allowed for a ServerData "received" signal to be fired before the
ClientConnection.connect_async() call completed.  This is to be
expected in a heavily asynchronous library.  The ClientConnection
"connect" signal, however, is guaranteed to be fired before the
"received" signal, so that is used to synchronize some state in
ClientSession needed for login.
2012-06-10 20:19:24 -07:00
Jim Nelson
70e945e8f5 Multiple prefetch errors when switching folders: Closes #5373
The prefetcher is now more responsive to cancellations and the
folder being closed while prefetching.
2012-06-08 20:44:46 -07:00
Jim Nelson
e4e6ebe63c Formalize error and EOS handling in Deserializer
In #5321, the problem causing the connection close to hang was how
the Deserializer dealt with EOS and I/O errors.  They were being
handled ad hoc outside the state machine.

This patch adds EOS and ERROR events to the state machine.  I
tested it last night against a version running without these changes,
and both were able to deal with connection loss without hanging.
2012-06-08 16:33:00 -07:00
Nate Lillich
b72c4c2fef Fixes #5370. The attachment context menu only contains items relating to the attachment. 2012-06-08 16:11:31 -07:00
Nate Lillich
1200e477bf Closes #4499. Inline images will be shown in the message viewer. 2012-06-08 12:58:46 -07:00
Nate Lillich
0258a20ad9 Closes #3809. Attachments are now available through the message viewer and are saved as individual files outside of the database. 2012-06-08 12:39:27 -07:00
Nate Lillich
6fcf4cf6ce Closes #4780... again. This makes SMTP STARTTLS self-enabling when SSL is disabled if the server supports STARTTLS. 2012-06-07 14:44:47 -07:00
Jim Nelson
a61a2f14b8 Deserializer still hangs under recv failure: Closes #5321
Third time's the charm -- certain conditions still allowed for the
closed semaphore not to be notified, causing a hang at close.
2012-06-07 13:39:11 -07:00
Nate Lillich
963627ef6f Closes #5324. Added a simple database upgrade mechanism. 2012-06-07 12:18:37 -07:00
Jim Nelson
b00dee6643 Deserializer hangs at close: Closes #5321
This morning I saw that my Inbox connection had not been
reestablished.  Looking at the debug log, I could see that the
Deserializer hung at close.  This patch closes two holes where
the Deserializer might stop receiving input and not signal the
closed semaphore (which synchronizes the close_async() caller to
wait until the Deserializer has completed all I/O, necessary to
prevent a GLib crash in a background thread).
2012-06-07 08:07:08 -07:00
Jim Nelson
fd5ce4abad Combine FLAGS and PROPERTIES fetches whenever possible
Since these two fetches can coexist in the same IMAP FETCH request
(not all can), merge them into single command when possible.
2012-06-06 18:20:54 -07:00
Jim Nelson
89b441c8f9 Use MessageSet spanning whenever possible
Slight optimization: use the IMAP MessageSet span syntax when a
span is detected in a sparse list of MessageNumbers or UIDs.
2012-06-06 18:19:13 -07:00
Jim Nelson
10599a5a42 Replay queue not closing on connection hang or drop: Closes #5321
All IMAP commands now have a timeout which, if triggered, causes
the connection to be forcibly closed.  ConversationMonitor will
reestablish connection and start a re-sychronization.
2012-06-06 16:38:48 -07:00
Matthew Pirocchi
d527998d1b Make Geary more resilient to failed login attempts: Addresses #5305.
Currently Geary creates two wasted sessions every time it tries to
validate account information against the server (in addition to the
session it actually uses for validation). This patch prevents those
wasted sessions from being created, which allows the user to attempt to
login many more times before Gmail kicks them off the server.
2012-06-06 12:39:05 -07:00
Jim Nelson
ba1570582c Unable to construct internaldate (clean up incomplete db): Closes #5349
Previous commit:b092e407 fixed this problem but didn't clean up the
db of users who'd saved the incomplete PROPERTIES data.  This patch
will catch when properties are unavailable, forcing the engine to
pull them from the network and repair the hole.
2012-06-06 12:17:14 -07:00
Matthew Pirocchi
a4b116457c Revert "Don't require password to be saved. Closes #5218."
This reverts commit 02a93a6ff4.
2012-06-05 18:58:06 -07:00
Matthew Pirocchi
02a93a6ff4 Don't require password to be saved. Closes #5218. 2012-06-05 16:38:48 -07:00
Jim Nelson
b092e407c1 console warning: Unable to construct internaldate: Closes #5349
Caused by an edge condition where the folder is empty in the local
store and no normalization occurs, meaning the PROPERTIES of email
must be pulled by the ListEmailOperation.

Also cleaned up some code in Sqlite.Folder ... the logic was a tad
messy.
2012-06-05 15:35:41 -07:00
Matthew Pirocchi
f4828d8df5 Allow MainWindow to be shown without requiring an account. Closes #5307. 2012-06-04 15:45:41 -07:00
Jim Nelson
f3bdbbc6d7 Closes timing hole in conversation monitoring
This morning I noticed that connection reestablishment failed.
It appears that the connection failed right after it was opened.
Looking at the conversation monitoring code, it's possible that
the handler to catch the close signal may not be hooked up when
the aborted close happens.  This closes that hole.
2012-06-04 11:36:21 -07:00
Jim Nelson
51ce1527fa Won't build with Vala 0.17.1: Closes #5347
Caused by a binding change to an async method.  Fortunately this
doesn't break compatability with 0.17.0 or 0.16.0, so our compiler
requirements stand.
2012-06-04 11:27:13 -07:00
Matthew Pirocchi
76bcc03583 Validate account information before creating account: Closes #5296. 2012-06-01 17:18:16 -07:00
Jim Nelson
999847af20 Connection timeout should be five minutes: Closes #5340 2012-06-01 17:05:12 -07:00
Jim Nelson
7b13244e2f UID.is_valid() causing problems with folder normalization
Spotted this with my Starred folder ... UID 1 was not considered
valid, causing normalization to fail.
2012-06-01 13:14:14 -07:00
Jim Nelson
1d18393e52 Assertion when clicking on empty folder: Closes #5335
Better range checking led to this assertion.
2012-06-01 13:02:19 -07:00
Jim Nelson
a15cef4b82 Moved FLAGS out of PROPERTIES (email fields)
EmailFlags seemed to be a natural fit for EmailProperties, but
it became apparent that EmailFlags change all the time (and must
be polled to notice changes) while other properties are immutable.
For efficiency, moved EmailFlags out of EmailProperties and made
them their own Email.Field.  EmailProperties may expand later to
supply user-visible information; for now, only used internally by
the IMAP stack.
2012-06-01 11:42:04 -07:00
Jim Nelson
bf961172d6 Another situation where syncing might not be fully performed
In this case, normalization wasn't occurring properly if an email
in the folder didn't already have PROPERTIES set.
2012-05-31 19:55:52 -07:00
Jim Nelson
2fe1c4aafd More efficient FlagWatcher
This also fixes a FORCE_UPDATE bug in ListEmailBySparseID.
2012-05-31 15:17:52 -07:00
Jim Nelson
22b05994b2 Archive command archives two conversations: Closes #5079
Previously it was possible for the EXPUNGED server data's positional
addressing to be converted to the wrong EmailIdentifier, leading to
the wrong email being deleted, while the one the user asked for
was reported as missing as part of the ReplayQueue's local operation.
2012-05-31 14:47:52 -07:00
Jim Nelson
85bb2ae76a Fixes problem Adam reported re: flag watcher failing
Problem was due to accumulation of messages marked for removal on
local side not being (eventually) removed from MessageLocationTable.
Can happen if folder is closed before EXPUNGE server data arrives,
or if Geary is shut down or crashes before same.  Folder
normalization will deal with situation where locally removed
message was not actually removed on server.
2012-05-31 11:57:20 -07:00
Jim Nelson
e8c5fc2e10 Additional debugging for flag watching bug reported by Adam 2012-05-31 11:35:28 -07:00
Jim Nelson
cd6a242f3a Improved some debug, removed logging for keepalives 2012-05-31 08:21:35 -07:00
Christian Dywan
00affcf89a Print message: Closes #5276 2012-05-30 12:30:29 -07:00
Eric Gregory
2a48511004 Closes #5193 Appends ! to titlebar when using Y! Mail. 2012-05-24 17:06:08 -07:00
Christian Dywan
6d3c03b06a Don't preselect first item in dropdown menu: Closes #5242 2012-05-24 16:50:06 -07:00
Jim Nelson
e58f2c3ea5 Geary does not recover after dropped/reset connection: Closes #5241
Nate's log from this morning pointed to the culprit, namely that if
the connection fails while first establishing it, not all the
proper signals are being fired which trigger an attempt to
reestablish the connection in ConversationMonitor.
2012-05-24 15:56:56 -07:00