This work is the result of the prior commit (updating the Preferences
box, specifically). Instead of initialzing Widgets with GSettings
values and writing values out as Widget state changes, bind GSettings
values directly to the Widgets. This logic is also moved out to the
rest of the application where monitoring changes is necessary.
This has the pleasant side-effect of allowing changes to come in from
GSettings backends (i.e. dconf) and having them updated in Geary
automatically.
This makes both the Preferences and Accounts dialogs modal and
transient for the parent window. Additional code changes are to
remove logic in place to deal with previouys modeless-ness of those
dialogs.
WebKitGTK 2.4 will introduce using GClosure to register
DOM.EventTarget listeners, but old API still available, so using
that for now.
This also introduces compiling WebKit-3.0.gir to a VAPI and using
that during compilation. This means that .gir warnings won't
cause compilation errors (--fatal-warnings) and that we have a bit
more control over binding generation. Closes bgno#720442.
This is technically a workaround until Vala fixes bgo#720437.
Although the code change seems innocuous, the original code
caused Vala's generator to not cast the returned int value to
a pointer.
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.