This adds a simple Iterable class that lets us take advantage of Gee's
Traversable interface much more easily. Traversable is great, but
every operation returns an Iterator, which makes it awkward to use
outside of Traversable. The new Iterable wraps the Traversable
Iterators and methods so you can directly use the result. It also gives
us a convenient point to add convenience methods in the future.
I've gone through a few arbitrary places in the code to see how the
class might be used, and changed some obvious places to (hopefully) the
equivalent code using the new Iterable class. More work could be done
here, but the real benefit is simply having the Iterable class around to
be able to use in new code.
This adds an app menu, which should show up in modern Unity and GNOME
Shell alike. We're exporting our existing GtkActions as GActions using
an adapter class, and we've created a new menu definition for the app
menu.
Closes: bgo#713018
Older versions of Vala produce an incorrect method signature when
a ref to a null-terminated array of unowned strings is passed to
a virtual method (i.e. Gtk.Application.local_command_line()).
Some themes (elementary's, Mint 16's Cinnamon theme) cause the
conversation list to appear squished. It has to do with how the
conversation list calculates the size of each element at app
startup.
This is purely code file deletion and moving with those changes
reflected in CMakeLists.txt. The .gitignore change should've
happened some time back when we removed the DBus server app.
This change is to make the client source code a bit more logical
and hopefully make it easy for contributors to drill down and find
the module they want to work on.
In addition, unused client code was deleted. src/common was intended
to be code common to the various apps built here, but since that never
panned out, it was moved into the client base.
For historical reasons, reestablishing connections when a folder's
session died was handled inside of ConversationMonitor. This broke
at some point and Geary failed to reconnect when the session dropped.
This patch puts this logic into ImapEngine.GenericFolder, where it
belongs, as well as fixes a problem in ClientSession that caused
issues when the session was closed by the server (via a BYE response).
This patch fixes bug #713609 and bug #714532. I also believe this
fixes bug #713078. Additionally, with the reconnect logic now in
GenericFolder, bug #714671 is solved.
Piotr Drąg had renamed a po file in commit:c83eed7 but not changed that
line in the po/CMakeLists.txt file, causing the build to break. This
makes Geary build again.
We've had numerous bugs due to improper MIME comparisons and dealing
with Content-Type and Content-Disposition (or their lack of presence
in a message). Now the Engine offers MIME classes that better deal
with these issues without exporting the GMime structures, which
are not as easy to manage and don't offer some of the things that
have bitten us in the past (such as case-insensitive comparisons).
Two problems:
(a) Vala 0.22.1 fixes a binding change in libnotify
that has to be fixed but causes Geary to be unable to build on prior
versions of Vala. libnotify.vapi added to solve this problem.
(b) New version of Vala appears to be more sensitive to detecting
problems in .gir files. Using our .metadata file to paper over these
issues in WebKit-3.0.gir.
With IceWarp IMAP server, the non-wildcarded form of LIST that
Geary was some times using was causing the Spam folder to return
a different name, triggering an assertion in Geary. This patch
works around that problem using an internal cache of folder names
and attributes, which is something we should've been doing anyway.
This constructor didn't initialize the required RFC822.Date field,
which causes a crash with the geary-mailer (and could potentially
cause issues elsewhere in the future). However, had to expand the
RFC822.Date class in order to accomodate this fix.
Geary will autodetect which version of the library is installed
and select the appropriate .metadata file to use for bindings.
Still backwards-compatible with Geary 1.10 to 2.0.
Previously ClientSession.connect_async() could leave the object in
a LOGGED_OUT state if the connection was denied by the server or
a timeout occurred when connecting. This was bad because that
state indicates that the underlying connection may still be active
and needs an async close to occur. Now connect_async() guarantees
that the connection is closed/disconnected/dead if it throws an
Error.
Not sure if something changed in git, but we discovered the debian
directory was being included in the dist tarball, after Geary 0.3. This
change seems to fix it in modern git.