Commit graph

1303 commits

Author SHA1 Message Date
Jim Nelson
0129af9c81 Force remote folder to open after timeout
A recent optimization for EmailStore was to only open a connection
to the remote folder if a command came in requiring it.  If an
ImapEngine.GenericFolder is opened for monitoring, however, no command
may come in requiring a remote connection, meaning no folder
normalization or unsolicited notifications arrive.

This patch "forces" the remote to open after a timeout, which is
cancelled if it's opened by a command.
2013-08-23 17:14:51 -07:00
Jim Nelson
4feba6c970 Quicker and simpler folder normalization: Closes #7364
Folder normalization is now much simpler, faster, and requires
less resources than prior implementation.  Normalization affects
the ReplayOperations, so an interface was changed here.
2013-08-23 16:58:24 -07:00
Jim Nelson
4e6e0bb0e8 Conversations accessible after search matches no msgs: Closes #7274
Two problems: (1) Error was being thrown while mutex was held, causing
the SearchFolder to forever be locked.  (2) INCOMPLETE_MESSAGE Error
was causing list operation to abort prematurely (which in turn was
due to #6604).
2013-08-22 12:29:46 -07:00
Charles Lindsay
bb726a2a98 Check for null collection; fix #7369 2013-08-21 16:14:20 -07:00
Charles Lindsay
7e35dac757 Don't ask DB for UIDs we haven't recoded; fix #7363
We were erroneously going into the database to find UIDs for messages we
just did vector expansion on, and thus hadn't yet recorded in the
database.  With this patch, we use the UID from the EmailIdentifier
itself in that case.
2013-08-20 16:43:49 -07:00
Charles Lindsay
93ae747f3c Keep 2 indexes by UID to determine flag changes; fix #7338
Previously, the EmailIdentifier key's hash value was sometimes changing
during the execution of the function, so when someone later went to look
up the flags, the hash map was returning NULL.  This way we delay
hashing the EmailIdentifier till right before it's used, so its hash
value can't change.
2013-08-20 15:55:54 -07:00
Jim Nelson
4794702ead "(null)" & no previews in search folder: Closes #7151, Closes #7368
Both these problems stemmed from conversations holding messages from
in-folder and out-of-folder, and that all messages in the search
folder are considered out-of-folder.
2013-08-20 15:13:34 -07:00
Jim Nelson
4444ab36bf Removed some leftover debug()
If it remained, would fill log with extraneous cruft.
2013-08-20 12:50:05 -07:00
Jim Nelson
b3506715e7 Drafts occassionally don't save or cause crash: Closes #7344, Closes #7353
The problem was due a timing issue in ClientConnection FSM; it was possible
for the machine to still be in the IDLE or IDLING state when ready to
SYNCHRONIZE.  This is due to a timing hole where the server's response to
close IDLE (requested when the APPEND command was sent) didn't return in
time.  This closes that timing hole and deals with SYNCHRONIZE occurring
while in IDLING/IDLE.
2013-08-20 12:48:18 -07:00
Eric Gregory
1f859dea4d Closes #7357 Draft geometry problem. 2013-08-20 12:25:04 -07:00
Charles Lindsay
5594abd96c Allow operations on email in any folder; fix #6496
This is squashed commit (sorry -- we'll get better about maintaining a
clean history in collaborative branches in the future!) of a massive
amount of work from Jim and myself.

* EmailIdentifiers for normal (i.e. not outbox, etc.) emails are the
  same regardless of which folder they came from
* New EmailStore interface to manipulate messages that reside in any
  folder, without having to care what folders are open
* Relevant places that manipulate emails (e.g. the toolbar) have been
  updated to use the new EmailStore interface
* Conversation and ImplConversation have been smooshed together
* Many, many more items and bugfixes related to the above points
2013-08-19 16:39:53 -07:00
Jim Nelson
48b7296855 ConversationSet error when searching or archiving: Closes #7275
We discovered a situation where, depending on the order email is
processed, it's possible for logically associated emails to form
two or more conversations.  When an email is processed that belongs
in more than one conversation, its removal triggers this error (as
a Message-ID can be associated with one and only one conversation).

Bogus email headers, especially email that does not list a complete
References: list, aggravate this problem.
2013-08-16 17:35:56 -07:00
Jim Nelson
a803810db8 Display oldest unread message as preview: Closes #5921 2013-08-13 19:21:30 -07:00
Jim Nelson
1b7e652211 Sort conversations by date received, not sender's date: Closes #6856
Also displays date received in conversation list.
2013-08-13 18:35:19 -07:00
Robert Schroll
54dc99cf63 Don't consider out-of-folder emails when sorting conversation list: Closes #6873 2013-08-13 18:21:19 -07:00
Eric Gregory
f78ddf6bbd Autosave drafts. Closes #6124 2013-08-13 18:02:42 -07:00
Eric Gregory
8059f0f31e Merge branch 'master' into feature/drafts 2013-08-13 14:53:12 -07:00
Eric Gregory
7146ca475e Merge branch 'master' into feature/drafts 2013-08-13 14:39:07 -07:00
Jim Nelson
a029b1fa3b Merging in some bux fixes from conversation-mop-up branch
Charles discovered that some of the operations in ImapEngine.GenericFolder
were exiting before waiting for the command to complete, meaning the
async call returned while the operation was still running.  This
has a broader problem if the command is executed (with a yield) and
then the folder is closed.
2013-08-13 13:22:40 -07:00
Jim Nelson
6197c11fa3 Reply not included due to bogus References: field: Closes #7333 2013-08-12 18:59:27 -07:00
Jim Nelson
ec10e06213 Background sync'ing should stop when vector is complete: Closes #7325
Account synchronizer now stops when it recognizes that all the mail in
the folder is present (but perhaps not completely downloaded) from
the server.  The email prefetcher takes care of ther rest.

Also discovered a regression from last week's commit that prevented
vector expansion when using find_earliest_email_async(); fixed here
as well.
2013-08-12 17:51:10 -07:00
Brendan Long
cf33c69930 Build with --enable-ref-tracking: Closes #7262 2013-08-12 16:45:11 -07:00
Brendan Long
624a7171be Content menu missing labels in composer: Closes #7322 2013-08-12 16:30:17 -07:00
Jim Nelson
0df2c1fa7c Fixes crash when removing unfulfilled during writebehind operation
Encountered this morning -- list operation had unfulfilled emails
waiting for network operations but folder normalization determined
they were missing and used a writebehind to remove them from the
operation, but the loop to remove them explodes (can't do a remove
within a foreach).  This loop solves that problem.
2013-08-12 12:52:45 -07:00
Robert Schroll
2aa63900b4 Ignore case in domain names when warning about link destinations: Closes #7327 2013-08-12 12:52:07 -07:00
Jim Nelson
ec4b4876e2 Show total message counts in folders: Closes #6982
Total and unread message count displayed in tooltip.
2013-08-09 17:30:03 -07:00
Jim Nelson
aa355f5438 Merge branch 'master' into feature/attachments 2013-08-09 16:10:44 -07:00
Jim Nelson
d472b9e4c9 Folders to load on new accounts: Closes #7238
Numerous changes to make account synchronization and email prefetcher
more efficient and not hold the database lock for so long.
2013-08-09 15:17:06 -07:00
Eric Gregory
3a6995846f Closes #7307 Overwrite existing drafts 2013-08-08 19:03:47 -07:00
Eric Gregory
1a0bef4a2e Closes #7237 Delete corresponding draft when sending mail 2013-08-08 18:55:54 -07:00
Eric Gregory
594d711150 Closes #7253 Ask to save draft 2013-08-08 18:47:23 -07:00
Jim Nelson
547114f186 Conversation list loads too much mail when scrolling down: Closes #7279
Two problems: (a) determination for vector expansion was not accounting
for INCLUDING_ID flag properly, and (b) messages added to the interior of
the vector during normalization (can happen when the database has a
gap in the middle of the vector) were being treated as appended (i.e. new)
messages, causing the ConversationMonitor to load all of them.
2013-08-08 18:41:15 -07:00
Eric Gregory
c8cbebc39c Merge branch 'master' into feature/drafts 2013-08-08 13:07:51 -07:00
Jim Nelson
c1a9d31222 Don't crash when message on remote not in local is removed
Forgot to deal with situation where a message in the remote folder
is removed that isn't stored in the local database.  In that case,
the local position will be <= 0 and should be treated as a NOP
(although still signal that the total remote_count has changed).
2013-08-07 17:08:32 -07:00
Jim Nelson
3598a08d31 Reindex search table to include inline/forwarded attachments and full body text: Closes #7283
Rather than attempt to be selective, there's enough changed here that we might as well
blow away the search index and let the indexer start afresh.  Future tweaks to the
search index might need to be more selective.
2013-08-06 18:16:34 -07:00
Jim Nelson
d531c7eef7 Merge branch 'master' into feature/attachments 2013-08-06 17:39:14 -07:00
Robert Schroll
09dd558787 Process all attachments from past forwarded email attachments: Closes #7282 2013-08-06 17:31:20 -07:00
Robert Schroll
262c25c360 Inline images style improvements: Closes #7305 2013-08-06 17:19:16 -07:00
Eric Gregory
851f8f03e9 Merge branch 'master' of ssh://yorba.org/git/geary 2013-08-06 15:43:22 -07:00
Eric Gregory
e5dc9c8bfc Closes #7201 Unread count styling 2013-08-06 15:42:42 -07:00
Jim Nelson
502bb0d24e Opening New Message window is slow: Closes #6973
Fixes a couple of performance problems (slow sorting of Contacts
being added one at a time, and multiple GtkEntryCompletions being
created when New Message is used) as well as broke out
ContactListStore so one could be created and used for the three
GtkEntryCompletions needed in the window.
2013-08-06 15:38:16 -07:00
Robert Schroll
67c4fa2cf7 Text parts shown as attachments: Closes #7300 2013-08-06 12:36:27 -07:00
Jim Nelson
54fa83d69c Merge branch 'master' into feature/attachments 2013-08-06 12:34:33 -07:00
Jim Nelson
4c607b242f Update Daily Build PPA to use Vala 0.21.1 2013-08-05 16:12:35 -07:00
Avi Levy
a5c0d75fdf Reverts change to background color for sent mail: Refs #6371 2013-08-02 17:51:43 -07:00
Eric Gregory
0e185be7be Closes #7236 Replace previous draft 2013-08-02 17:49:33 -07:00
Jim Nelson
403dd8508e Drop Gtk.Stock: Closes #7203, Closes #7294
These changes also invalidates #7218, as we're no longer using
buttons with icons with these changes.
2013-08-02 15:28:33 -07:00
Eric Gregory
d33771787a Closes #7145 Fix for unread count issue 2013-07-31 12:10:11 -07:00
Timo Kluck
aa8f7c129c Fix display of special folders in the localized case: Closes #7239 2013-07-26 17:58:46 -07:00
Avi Levy
06bb87b737 Inline images not displayed when surrounded by text/plain sections: Closes #6942
Better document structure handling.  Now dealing with all portions of a
MIME document, not just the first, and properly inserting inline images
into the final HTML view.
2013-07-26 16:33:26 -07:00