Commit graph

856 commits

Author SHA1 Message Date
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
Jim Nelson
39f5df3896 Moved Geary.EngineAccount into src/engine/api
EngineAccount is exposed to the library user in Geary.Engine, so
it should technically be in the API directory.
2012-05-24 13:59:02 -07:00
Jim Nelson
93bf448a92 Made Geary.Engine a namespace
There's no need for Geary.Engine to be a class; it is nothing but
consts and static methods.
2012-05-24 13:52:12 -07:00
Jim Nelson
87b9c05b34 Rename Geary.Conversations -> Geary.ConversationMonitor
The distinction between the plural and the singular was becoming
trying.
2012-05-24 12:34:39 -07:00
Nate Lillich
2f2dca09b1 Closes #4780. This adds support for STARTTLS with SMTP as well as replaces the previous uses of "TLS" with "SSL" to prevent confusion related to the two similar protocols.
Also it adds debug support to geary-mailer.
2012-05-24 12:14:05 -07:00
Jim Nelson
ebdb58f874 Geary consuming 100% CPU inside MidstreamConverter: Closes #5294
There is no loop inside MidstreamConverter.convert to cause this
to happen, but it's easy to imagine this being called from inside
a loop in close() or flush().  Although we can't repro this, I
believe this patch may solve the problem.
2012-05-24 11:57:34 -07:00
Matthew Pirocchi
7c0f7b8dc1 Don't fail when Geary fails to save the password to the keyring: Closes #5256 2012-05-24 11:15:20 -07:00
Matthew Pirocchi
883e45577b Warn user before exiting if composer window has unsent text: Closes #5279
YorbaApplication's 'exiting' signal now allows callbacks to cancel the
edit. GearyController now keeps a list of all open ComposerWindows, and
listens for YorbaApplication's 'exiting' signal. When the signal is
received, GearyController warns the user about each open ComposerWindow
with unsent text. If the user cancels the closing of any of these
ComposerWindows, GearyController cancels the edit.
2012-05-24 11:00:03 -07:00
Jim Nelson
9a64661f2c Add time to debug log: Closes #5196
In addition, the log handler was moved to Geary.Logging, so other
applications can use it too.
2012-05-23 19:45:36 -07:00
Jim Nelson
619974e286 Debug statements to log connection drop/reset problems: #5241
This patch adds additional logging and debug statements regarding
connection drops and resets and attempts by Geary.Conversations
to reestablish a connection.  There's also some small changes
to simplify the disconnect code.
2012-05-23 16:23:15 -07:00
Jim Nelson
f459a937c5 Optimize fetching local previews: Closes bug #4977
This speeds up fetching local previews by adding a call for the
client to fetch a lot of previews at once rather than one at a
time.
2012-05-22 14:26:50 -07:00
Nate Lillich
cb2f78748b Closes #3773. Moving and copying emails between folders is now supported. 2012-05-22 13:44:57 -07:00
Eric Gregory
026f048672 Closes #5269 Left grip can now resize indepedently of right grip 2012-05-18 13:02:19 -07:00
Jim Nelson
550e584424 Internal cleanup of GenericImapFolder
The list and fetch variants were starting to get unruly over time,
so this cleans up how the deal with parameter checking.
2012-05-17 19:55:00 -07:00
Jim Nelson
5df92a6278 Simplified normalization when message appended
Prior work on fixing #5114 included using UID ranges when a new
message came in to avoid a perceived one-off problem.  This returns
to the old way of doing things (using positional addressing), which
means not having to access the database to determine what messages
to fetch.
2012-05-17 19:53:19 -07:00
Jim Nelson
f9212ee950 Geary fails to report newly arrived email: Closes #5114
This appears to solve the problem entirely.  The Conversations
object was maintaining extra refs to Conversation objects which
had been previously removed (archived) and reporting them as gone
to the client.  But, when new messages came in for that old
conversation, it mistakenly associated them and reported them as
added, which the client silently ignored (it couldn't find the
conversation in its own list).
2012-05-17 19:36:49 -07:00
Christian Dywan
1aedc81290 Closes #5268 Pre-populate real name in login dialog 2012-05-17 11:56:36 -07:00
Nate Lillich
1b81abc5a6 Fixes #5238. BCC headers will no longer be sent to anyone. 2012-05-17 10:48:44 -07:00
Jim Nelson
4eaf5f5bd9 No more replay queue errors when closing a folder: Closes #5271
This patch fixes two bugs causing #5271.  First, the ReplayQueue
wouldn't close due to the is_closed flag being set before submitting
the internal operation that flushes the queue.  Second, the
retooled fetch_email_async() wasn't checking if the folder was
opened, causing problems with the flag watcher and prefetcher.

Additionally, debug logging was improved here, which helped debug
this problem.
2012-05-17 10:15:05 -07:00
Jim Nelson
8a1543fb03 Geary fails to report newly arrived email: Closes #5114
Prior commit failed to solve this problem.  Further study leads me
to believe that the two separate replay queues (send, recv) allow
for subtle timing holes.  There is now a single replay queue that
manages both types of operations, meaning each one is executing
atomically without an operation on another queue changing state
out from underneath it.
2012-05-16 18:40:14 -07:00
Jim Nelson
1f636af133 Retooling geary-mailer
This patch changes geary-mailer to make it more usable from the
command-line (for scripting and such).  Not perfect (yet), but a
start.  Important additions for later is being able to specify
subject and message body.
2012-05-16 17:13:44 -07:00
Jim Nelson
9615f2cd9b Fixes assertion failure in GenericImapFolder.fetch_email_async: Closes #5265
fetch_email_async() should be throwing an exception (as per its
contract) when a message is not located in the folder.
2012-05-16 11:31:39 -07:00
Jim Nelson
21c0e6bf3f Better debug in Geary.StateMachine
Eric once reported a triggered assertion inside Geary.StateMachine
that was unreproducible.  This change means that if it happens
again better information will be logged to try and debug and/or
reproduce it.
2012-05-15 12:03:14 -07:00
Jim Nelson
8e28950aea Fixes bug added in last commit 2012-05-15 11:55:46 -07:00
Jim Nelson
9711d3f502 Added additional debug to the SendReplayOperations
Also found a small optimization in FetchEmail.
2012-05-15 11:40:28 -07:00
Jim Nelson
ce73f610dc More efficient use of network resources
Previously, Geary could sometimes request elements of an email
message it already had in the database.  Often this was due to
the client requesting information already present as well as one
additional field; the old implementation required all the requested
fields be pulled down.

Now Geary will work out on a message-by-message basis what is
present and what is not and request only missing fields for each
one.  It will cluster messages missing the same fields into the
same request and it submits all requests simultaneously, to take
advantage of IMAP pipelining.

This work has some orthogonal benefits toward #5224, better
Dovecot support, by making the upper layers able to merge an email
using both locally-fetched data and remotely-fetched data.
2012-05-14 17:55:06 -07:00
Nate Lillich
0e1437ef27 Fixes #5215. Quoted printable headers that are erroneously encoded will be properly decoded. 2012-05-14 17:13:57 -07:00
Nate Lillich
b4b32a9ea7 Fixes #5229. The BCC field is now displayed whenever present. 2012-05-11 10:58:55 -07:00
Jim Nelson
38abcac7a4 Only recurse folders when children are available
Gmail supports the CHILDREN extension, which means that labels
with children are marked as such.  This information can be used
to prevent unnecessary recursion when loading the folder list
(which speeds startup).
2012-05-10 20:28:42 -07:00
Jim Nelson
0d71975c0d Support heirarchical labels: Closes #4696
Bugs in engine and client were preventing heirarchical labels from
appearing in Geary.  Fixed with an assist by Bruno Girin
<brunogirin@gmail.com>.
2012-05-10 19:10:48 -07:00
Eric Gregory
7a7a86e81c Closes #5022 Linkify outgoing messages 2012-05-10 18:15:55 -07:00
Jim Nelson
ba3ef2a35a Fixes assertions when message has no Date: field
In my Yahoo! account was an email with no Date: field in the
header (spam).  This triggered a lot of assertions in Geary, both
the engine and the client.  This fixes them.
2012-05-09 18:18:33 -07:00
Jim Nelson
9e95b43b97 Cannot delete Yahoo emails: Fixes #5189
The problem is solved by using UID EXPUNGE rather than plain-vanilla
EXPUNGE.
2012-05-09 17:34:15 -07:00
Eric Gregory
3cf0d7b49b Version is now 0.1.0+trunk 2012-05-07 12:03:04 -07:00
Eric Gregory
14089f0fc1 GEARY 0.1 IS HERE! Closes #5200 Package automation 2012-05-04 17:53:26 -07:00
Nate Lillich
6ae00e391f Fixes #5177. The help documentation is now at help/C instead of just help. 2012-05-04 17:21:28 -07:00
Laura Khalil
21f4347ca5 Help Documentation for Geary 0.1 2012-05-04 16:54:14 -07:00
Nate Lillich
bb50cc85c6 Fix for #4809. The message list will now stick to the top. 2012-05-04 13:01:04 -07:00