| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
All background jobs should appear in the task bar with a description.
Some CamelServices (esp. imapx) are submitting lots of background jobs
but never pushing a status message on its CamelOperation. This commit
is to flush them out so we can find and fix them, and also so we can
clearly see what's *really* going on in the background.
All background jobs are now given an initial generic description which
should never appear in the user interface. The callback function must
call camel_operation_push_message() to override it or else it's a bug.
|
| |
|
|
|
|
|
|
|
| |
These libraries are bound for E-D-S so they live at the lowest layer of
Evolution for now -- even libeutil can link to them (but please don't).
This is the first step toward moving mail handing to a D-Bus service.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
More mail API churn... reversing some previous API decisions.
I've made some key API changes to EMailSession on the account-mgmt
branch which should allow for this, and will hopefully also benefit
the "email-factory" branch.
EMailBackend barely needs to exist anymore, except as the owner of
EMailSession.
For several low-level functions, we replace its EMailBackend parameter
with EMailSession and EAlertSink parameters; the latter so it can still
pass user alerts up the chain.
|
|
|
|
|
| |
EMailBackend catches these signals and forwards the EActivity to
e_shell_backend_add_activity().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements https://bugzilla.gnome.org/show_bug.cgi?id=663527#c3.
Account reordering is now done by drag-and-drop instead of up/down
buttons.
Turned out to be a wee bit more complicated than I initially thought.
This scraps EAccountManager and EAccountTreeView and replaces them with
new classes centered around EMailAccountStore, which EMailSession owns.
EMailAccountStore is the model behind the account list in Preferences.
The folder tree model now uses it to sort its own top-level rows using
gtk_tree_path_compare(). It also broadcasts account operations through
signals so we don't have to rely so heavily on EAccountList signals,
since EAccountList is going away soon.
Also as part of this work, the e-mail-local.h and e-mail-store.h APIs
have been merged into EMailSession and MailFolderCache.
|
|
|
|
|
|
|
|
|
|
|
| |
My apologies for flip-flopping the API again.
e-mail-store.c functions used to take an EMailSession, then I changed
it to take an EMailBackend in preparation for my account-mgmt branch.
Having rethought some API decisions on the branch, however, the first
flip-flop proved to be unnecessary. And now Srini needs the API to use
EMailSession for his mail-factory branch, so I'm flip-flopping again.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I pushed a few EShell features up to GtkApplication for GTK+ 3.2,
so we can now trim off the redundancies in EShell.
1) GtkApplication has a new "window-added" signal which replaces
EShell's own "window-created" signal.
2) GtkApplication has a new "window-removed" signal which replaces
EShell's own "window-destroyed" signal.
3) gtk_application_get_windows() now returns a list of windows sorted
by most recently focused, replacing e_shell_get_watched_windows().
4) GtkApplication now provides enough hooks to subclasses that we can
remove e_shell_watch_window() and call gtk_application_add_window()
directly.
|
|
|
|
|
| |
Reducing diff noise so I can see important changes easier when comparing
branches. A few API changes, but nothing that affects functionality.
|
|
|
|
|
|
|
|
| |
Drop EMFolderTreeModel's "session" property now that it has a "backend"
property and call em_folder_tree_model_set_backend() where we used to
call em_folder_tree_model_set_session().
The session can still be obtained through e_mail_backend_get_session().
|
| |
|
|
|
|
|
|
|
| |
Merging the "folder-deleted" and "folder-renamed" signal handlers in
mail-config.c into the ones in e-mail-backend.c makes the account-mgmt
branch a little easier, since e-mail-backend.c has resources I can't
easily get to from mail-config.c.
|
|
|
|
|
|
| |
Use camel_session_list_services() instead of the internal store table.
The store table serves little purpose nowadays and could probably be
removed. I'll look into that later.
|
|
|
|
| |
Simplify, simplify...
|
|
|
|
|
|
| |
Calling camel_session_remove_services() while disposing of our
CamelSession instance can help break reference cycles and ensures
the CamelServices get finalized properly.
|
|
|
|
|
|
| |
Give it a CamelStore and folder name instead of an EAccount and folder
URI. Both the EAccount and folder URI can be easily retrieved from the
CamelStore and folder name.
|
| |
|
|
|
|
| |
Use e_mail_folder_remove() instead.
|
|
|
|
|
|
|
|
| |
Convenience function for use in GAsyncReadyCallback functions.
This acknowledges the cancellation, so that the activity's description
changes from "(cancelling)" to "(cancelled)" and the description appears
crossed out in the UI for a moment before disappearing.
|
| |
|
|
|
|
|
| |
We already include a CamelStore and folder name string in the signal
arguments, so it's trivial to reconstruct the URI if it's needed.
|
| |
|
|
|
|
|
| |
The mail-notification plugin can use the EAccount member directly
instead of searching for it by URI.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
As of GLib 2.28 all GObject virtual methods, including constructed(),
are safe to chain up to unconditionally. Remove unnecessary checks.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
If the migration phase has to show a dialog the idle callback for
intializing mail stores will run too soon. Instead, hook it onto
the EShellBackend start() method.
Migration code can initialize mail stores early if it needs to.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Passing a random GtkWidget and then searching its ancestors for an
EAlertSink turned out to be not as useful as I thought. Most of the
time we know about and have access to the widget that implements
EAlertSink, so just pass it directly as an EAlertSink.
|
|
|
|
|
|
|
|
|
|
| |
Replace it with new async functions:
e_mail_store_go_offline()
e_mail_store_go_offline_finish()
e_mail_store_go_online()
e_mail_store_go_online_finish()
|
|
|
|
|
|
|
|
|
| |
And generate GTypes for each of them in e-mail-enumtypes.[ch].
Also, the glib-gen.mak script forced me to add a <mail/e-mail.h>
top-level header, which really isn't a bad idea anyway.
TODO: We should do this for calendar and addressbook too.
|
|
|
|
|
|
| |
This marks the end of unintrusive error dialogs, which were too
unintrusive. We now show errors directly in the main window using
the EAlert / EAlertSink framework.
|
|
|
|
|
|
| |
GObject now does property bindings itself.
Requires GLib >= 2.26.
|
|
|
|
|
|
|
|
|
|
|
| |
Global variables in shared libraries are a bad idea. EMailBackend now
owns the MailSession instance, which is actually now EMailSession.
Move the blocking utility functions in mail-tools.c to e-mail-session.c
and add asynchronous variants. Same approach as Camel.
Replace EMailReader.get_shell_backend() with EMailReader.get_backend(),
which returns an EMailBackend. Easier access to the EMailSession.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Migration runs just before the main loop starts.
It's just a sequence of local directory and file renames.
|
| |
|
|
|
|
|
| |
David's solution is simpler: check if the HTML widget is mapped.
Avoids having to propagate the property to Srini's new classes.
|
| |
|
| |
|
|\ |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This also removes the boxed CamelObject GType, since CamelObject is an
honest-to-goodness GObject now.
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
| |
Last shell-related dep killed in MailSession
https://bugzilla.gnome.org/show_bug.cgi?id=604952
|
|
|
|
|
|
|
|
| |
Previously the mail session set itself online inside mail_session_init() by
checking whether the shell was online. This removes one more dependency from
MailSession to EShell by moving that responsibility up one level.
https://bugzilla.gnome.org/show_bug.cgi?id=604952
|
|
|
|
|
|
|
|
| |
This hack really needs to be fixed correctly, but I can't think of a good
solution for now. So at the very least, move the hack up a level where it won't
cause dependency problems for the mail-to-eds split.
https://bugzilla.gnome.org/show_bug.cgi?id=604952
|
|
|
|
|
|
| |
Now the backend specifies the data dir for the mail module. Obviously it uses
the same directory as it previously used, it's just that the responsibility for
defining that value has moved to a different place.
|
|
|
|
|
| |
Move the MailFolderCache signal handlers from EMailShellBackend down to
EMailBackend (in libevolution-mail.so) to share with Anjal.
|
|
EMailBackend is an abstract subclass of EShellBackend that handles
online and offline modes and application shutdown. Placing this in
the shared mail library allows Anjal to reuse it. Evolution's mail
module further extends this class as EMailShellBackend.
|