| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
| |
Requires WebKitGTK+ 2.0 to work again.
|
| |
|
|
|
|
|
|
|
|
| |
Use g_simple_async_result_complete_in_idle() so the queued results
complete in the correct main loop context. Otherwise we get runtime
warnings:
"g_simple_async_result_complete() called from wrong context!"
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
e_weekday_to_tm_wday()
e_weekday_from_tm_wday()
|
|
|
|
|
|
|
|
|
|
| |
These aren't as efficient as possible, but are as clear as possible.
New functions:
e_weekday_add_days()
e_weekday_subtract_days()
e_weekday_get_days_between()
|
|
|
|
|
|
|
| |
Changed my mind... got more to add.
e_get_next_weekday() -> e_weekday_get_next()
e_get_prev_weekday() -> e_weekday_get_prev()
|
|
|
|
|
|
| |
These just cycle over the GDateWeekday enum.
Trivial functions, but they help make loops a little easier to read.
|
| |
|
|
|
|
|
|
| |
This enum type is intentionally compatible with GDateWeekday.
It exists only because GLib does not provide a GEnumClass for
GDateWeekday. If that ever changes, this enum can go away.
|
| |
|
|
|
|
| |
So the generated GEnumClass types can be used outside of libeutil.
|
| |
|
|
|
|
| |
Basically any place where we use both EClient and ESourceComboBox.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
That's the worst idea for many reasons, couple examples:
- password prompts after evolution's run for disabled (in selector) sources
- too much unnecessary network I/O (most remote backends runs sync on open)
- doesn't do what user told it to do (Unselected means unselected. Dot.)
- unable to debug anything in factories when it misbehaves this way
Next time ask peers, users and usability experts for their opinion, before doing such decision.
|
| |
|
|
|
|
|
|
| |
Caches contact photos by email address.
Replaces the disastrous implementation in e-mail-utils.c.
|
| |
|
|
|
|
| |
Use a standard format for naming an ESource in user-visible messages.
|
|
|
|
|
|
| |
Asyncrhonously fetch all relevant EClient instances during instance
initialization to try and get them cached ahead of time, and so that
all status icons are present when the tree view is shown.
|
|
|
|
|
| |
The quick timeout is used only when new items are found,
do not use it when user types text, because it flickers.
|
|
|
|
|
|
| |
The results were postponed to show as long as there were new notifications
about added contacts, which could take quite long for many matched items.
This shows the results with smaller timeout and without postponing.
|
|
|
|
|
|
|
| |
Append a tree view column to display a symbolic icon hinting at backend
status. Currently this only displays icons for online/offline and when
the backend dies. I'd also like to add a spinner icon to indicate when
we're processing a query and for other long-running activities.
|
| |
|
| |
|
|
|
|
| |
Gonna need to call this from the EClientSelector subclass.
|
|
|
|
|
|
|
| |
Returns TRUE if an EClient instance for the given source and the value
of ESourceSelector's "extension-name" property was recently discarded
after having emitted a "backend-died" signal, and a replacement EClient
instance has not yet been created.
|
|
|
|
|
|
| |
Returns TRUE if an EClient instance for the given source and extension
name was recently discarded after having emitted a "backend-died" signal,
and a replacement EClient instance has not yet been created.
|
|
|
|
|
| |
Jeez, I should know this by now. Schedule an idle callback on the
internal GMainContext to emit the signal like we do for other signals.
|
|
|
|
| |
Rebroadcasts a GObject::notify signal emitted by a cached EClient.
|
| |
|
|
|
|
|
|
|
| |
WebKit deny in loading local URIs (file://...) when an HTML body is
constructed from a string, not from a local file, thus fix the URIs
into "evo-file://", which are passed into our request handlers,
which can load the local files.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
EClientSelector extends the functionality of ESourceSelector by
utilizing an EClientCache to display status information about the
backends associated with the displayed data sources.
(No backend status is displayed just yet, but that's the plan.)
|
|
|
|
|
|
|
|
| |
Changed my mind. There's some scenarios where a function depends on an
ESourceRegistry but could also utilize an EClientCache, and it would be
nice to just pass the EClientCache and extract the ESourceRegistry from
it, so we need to make sure the ESourceRegistry will be there when it's
needed and not quietly disappear.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New class to help reduce code duplication and centralize some EClient
handling policies.
Benefits:
- EClient instances can be shared across the entire application.
- Centralized rebroadcasting of "backend-died" and "backend-error"
signals emitted from cached EClient instances.
- Automatic cache invalidation when backends crash. The EClient
is discarded, and a new instance is created on the next request.
|
|
|
|
| |
We require GTK+ 3.4, so no need to check for versions older than that.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Instead of e_client_utils_open_new() and e_book_client_new().
|
|
|
|
| |
e_client_is_opened() always returns TRUE, so skip it.
|
| |
|
|
|
|
|
| |
Clean up resulting deprecation warnings, which were all related to
GtkOrientable consolidation (e.g. gtk_hbox_new() -> gtk_box_new()).
|
|
|
|
|
|
|
| |
g_hash_table_add(table, key) uses less memory than
g_hash_table_insert(table, key, GINT_TO_POINTER (1)).
Also use g_hash_table_contains() when testing for membership.
|
|
|
|
| |
characters
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
e_config_add_skip_check()
e_config_class_remove_factory()
e_config_create_window()
e_config_page_get()
e_config_page_next()
e_config_page_prev()
e_config_set_page_is_finish()
Also remove E_CONFIG_ASSISTANT and all the assistant support therein.
|
| |
|
|
|
|
|
|
|
| |
e_passwords_cancel()
e_passwords_clear_passwords()
e_passwords_forget_passwords()
e_passwords_shutdown()
|
| |
|
| |
|
| |
|
|
|
|
| |
Let's not drag the old password keyfile along any further.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move the supporting widgets for the contact maps feature alongside
EABContactDisplay. Removing them from libeutil helps isolate our usage
of libchamplain so it's not imposed on the entire application, and even
3rd party software. That libchamplain is an optional dependency only
further complicates the matter.
Ideally I'd like to somehow isolate this feature in an extension module,
but we currently lack sufficient hooks for such an extension. So this
arrangement will have to suffice for now.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Evolution consists of entirely too many small utility libraries, which
increases linking and loading time, places a burden on higher layers of
the application (e.g. modules) which has to remember to link to all the
small in-tree utility libraries, and makes it difficult to generate API
documentation for these utility libraries in one Gtk-Doc module.
Merge the following utility libraries under the umbrella of libeutil,
and enforce a single-include policy on libeutil so we can reorganize
the files as desired without disrupting its pseudo-public API.
libemail-utils/libemail-utils.la
libevolution-utils/libevolution-utils.la
filter/libfilter.la
widgets/e-timezone-dialog/libetimezonedialog.la
widgets/menus/libmenus.la
widgets/misc/libemiscwidgets.la
widgets/table/libetable.la
widgets/text/libetext.la
This also merges libedataserverui from the Evolution-Data-Server module,
since Evolution is its only consumer nowadays, and I'd like to make some
improvements to those APIs without concern for backward-compatibility.
And finally, start a Gtk-Doc module for libeutil. It's going to be a
project just getting all the symbols _listed_ much less _documented_.
But the skeletal structure is in place and I'm off to a good start.
|
| |
|
|
|
|
| |
Will be needed for grabs in response to button events.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
https://live.gnome.org/GnomeGoals/NewDocumentationInfrastructure
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to [1], we don't need to worry about GDK's global lock since
we don't call gdk_threads_init() or gdk_threads_set_lock_functions().
The GDK threads API is being aggressively deprecated by GTK+ developers
so let's just abandon it entirely. I've never really understood when
you're supposed to use it or not use it anyway, so it's good to be rid
of this confusion.
[1] https://mail.gnome.org/archives/desktop-devel-list/2012-August/msg00005.html
|
|
|
|
|
| |
Wraps e_source_remote_delete() in an EActivity and submits errors to the
given EAlertSink.
|
|
|
|
| |
Also add missing error definitions.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Always call it immediately after g_simple_async_result_new().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was a hidden feature to load EPlugins from a custom location by
setting the EVOLUTION_PLUGIN_PATH environment variable. It defaulted
to $HOME/.eplugins, which is in violation of the XDG Base Directory
Specification.
Since I've never ever heard of anyone using this and wasn't even aware
of it myself, rather than migrating the folder to a standard-compliant
location I'm just going to drop support for EVOLUTION_PLUGIN_PATH and
put my money on no one noticing. The EPlugin framework is gradually
being decommissioned anyway in favor of the simpler and more flexible
EExtension framework in Evolution-Data-Server.
|
| |
|
|
|
|
| |
atoi() needs <stdlib.h>
|
|
|
|
|
|
| |
This splits the giant EMailRequest to individual EFileRequest, EStockRequest, EHTTPRequest and EMailRequest,
making the first two available globally from e-utils, the othe two are loaded only with mailer,
since no other component uses them.
|
| |
|
|
|
|
|
| |
Replace 8-space indentation with tab characters, and various other
automated cleanups.
|
|
|
|
| |
with GtkHtml
|
|
|
|
|
|
|
|
| |
Add e_config_add_skip_check() to install a callback function to
decide whether to skip a particular page in a GtkAssistant, useful
if a page may be blank in certain conditions.
This feature is not used in Evolution 3.4, but will be used in 3.5.
|
| |
|
| |
|
|
|
|
| |
libevolution-utils.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Reworded to match exactly what GtkFileChooser shows.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Silly function. Do it manually or use a GtkComboBoxText.
|
|
|
|
|
| |
Silly function. Use gtk_entry_get_text() for a const string or else
gtk_editable_get_chars() for an allocated string.
|
|
|
|
| |
Silly function. Use gtk_entry_set_text().
|
|
|
|
|
|
| |
This is a regression from commit 451179909849, which removes the default
"Dismiss" action from each EAlert, but the EAlertDialog was using that
button to allow users to close it.
|
|
|
|
| |
Requires commit 768ca76 in evolution-data-server
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
it. The capplet flickrs in Meego. Fixes Meego Bugzilla: #20191
|
| |
|
|
|
|
| |
No longer needed.
|
|
|
|
|
|
| |
Replaces gconf_bridge_bind_window().
Requires a GSettings path to a "org.gnome.evolution.window" schema.
|
| |
|
|\
| |
| |
| |
| | |
Conflicts:
mail/e-mail-paned-view.c
|
| |
| |
| |
| |
| | |
Replaces the 'Dismiss' button. All alerts appearing in an alert bar
should be dismissable (i.e. non-modal). For modal alerts use a dialog.
|
| |
| |
| |
| | |
Replaces e_mail_reader_mark_as_read().
|
| | |
|
| | |
|
|\| |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Removes: e_binding_transform_enum_value_to_nick()
e_binding_transform_enum_nick_to_value()
Those functions now live in libedataserver/e-data-server-util.h,
which e-util.h already includes.
|
|\| |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
This lives in libebackend/e-module.h now.
|
|
|
|
|
|
|
|
|
| |
Slightly more efficient and convenient than:
g_simple_async_result_set_from_error (simple, error);
g_error_free (error);
One less GError to copy and destroy.
|
|
|
|
|
|
|
|
|
| |
We have a confusing array of nearly-identical CFLAGS/LIBS definitions in
configure.ac. Time to simplify. Instead let's just have one definition
that includes all the libraries provided by Evolution-Data-Server (incl.
Camel). That, in combination with GNOME_PLATFORM, gives us most of what
we need for compliation and linking, and we can sprinkle definitions for
additional library dependencies in Makefile.am's as needed.
|
| |
|
| |
|
|
|
|
|
| |
Reducing diff noise so I can see important changes easier when comparing
branches. A few API changes, but nothing that affects functionality.
|
|
|
|
|
|
|
|
| |
The EModule, EExtensible and EExtension classes as well as the
e_type_traverse() function have been moved to Evolution-Data-Server's
libebackend library to replace e-data-server-module.c.
Now Evolution-Data-Server modules use the same framework as Evolution.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't use pattern rules like %-enumtypes.h anymore because it matches
installed header files like camel-enumtypes.h, so you get very strange
things happening during the build like:
.../camel/camel-enumtypes.h: e-util-enums.h
glib-mkenums ... $^ > $@
when e-util-enums.h has a newer timestamp than camel-enumtypes.h.
Instead, we'll use another variable name -- glib_enum_output -- to
replace the %-enumtypes pattern rules like so:
$(glib_enum_output).h: $(glib_enum_headers)
glib-mkenums ... $^ > $@
$(glib_enum_output).c: $(glib_enum_headers)
glib-mkenums ... $^ > $@
Also use $(AM_V_GEN) to get cleaner looking output while building.
|
| |
|
|
|
|
|
| |
Remove the clumsy abortfunc and commitfunc callback arguments from
e_config_add_items().
|
|
|
|
|
|
| |
Works around a design flaw in EExtension.
See the comment in e-module.c for more details.
|
| |
|
|
|
|
|
|
|
| |
The GTK+ patch in bug 653705 is also required for the Account Assistant
to work properly under the new GtkAssistant design in GTK+ 3.1.
This commit only deals with sidebar ordering issues.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Another EAccount utility function down...
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Change the OK button to Apply, and fix the padding around the window
edges. People already bitching about the window being too tall are just
gonna bitch louder now, but it does look better on normal size screens.
|
| |
|
|
|
|
|
|
|
|
|
| |
Not only is get_font_options() no longer needed, it's actually doing the
wrong thing by reading settings through GConfClient instead of GSettings.
But it turns out, thanks to the tighter Cairo integration in GTK3, the
widgets that call get_font_options() can be made to work correctly by
simply removing this hack. Love it when that happens.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Function is no longer used, or wanted.
|
|
|
|
| |
Mostly dead assignments.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This one's a little involved:
- EMailShellView now obtains a CamelFolder itself in response to
EMFolderTree::folder-selected signals. Uses EActivity to do so.
- Revise EMFolderTree::folder-selected signal arguments to be more
useful: emit a CamelStore object instead of a folder URI.
- Also revise EMFolderTree::folder-activiated signal arguments the
same way while we're at it.
- Remove the "folder_uri" argument from e_mail_reader_set_folder().
If you have a CamelFolder object you can obtain the URI string by
calling camel_folder_get_uri().
|
|
|
|
| |
Function is no longer used, or wanted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enhance e_get_account_by_uid() to also accept CamelTransport UIDs.
The convention we use to distinguish them is simple:
Given an EAccount UID:
- The CamelStore UID is the EAccount UID verbatim.
- The CamelTransport UID is the EAccount UID + "-transport".
So just check for a "-transport" suffix and truncate it.
|
| |
|
|
|
|
|
| |
Always copy the xmlChar property into GLib-allocated memory.
g_mem_is_system_malloc() has nothing to do with libxml2.
|
| |
|
|
|
|
|
|
|
| |
This plugin was for developers, but no one uses it anymore. Plus the
only profiling hooks left in Evolution were in the MessageList widget,
which performs fine. There's better ways to collect profiling data
these days anyway (sysprof, systemtap, etc.).
|
|
|
|
|
|
| |
Warnings are generally meant for transient errors. No need to leave
them up indefinitely. Close them automatically if the user hasn't
responded after a reasonable period of time has elapsed.
|
|
|
|
|
|
|
|
| |
From: $HOME/.gnome2/accels/evolution
To: $XDG_CONFIG_HOME/evolution/accels
Custom keyboard accelerator maps is a well-hidden feature these
days, especially in GNOME 3. Not worth migrating the old file.
|
|
|
|
|
|
|
| |
Add e_alert_dialog_get_content_area(), which returns the GtkVBox
containing the primary and secondary labels. Use this instead of
gtk_dialog_get_content_area() to maintain the dialog's left margin
beneath the image.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
As of GLib 2.28 all GObject virtual methods, including constructed(),
are safe to chain up to unconditionally. Remove unnecessary checks.
|
|
|
|
| |
GCC learned how to find dead assignments.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Yes, the GtkScrollable interface is implemented by more than just
GtkLayout, but it turns out GtkLayout is the only thing Evolution
uses the GtkScrollable API for on the gtk3 branch.
|
|
|
|
|
| |
Easy enough to fake gtk_widget_get_preferred_size() in gtk2 using
gtk_widget_size_request(). Reduces diff noise with gtk3 branch.
|
| |
|
| |
|
|
|
|
| |
Per request of bug #635414
|
| |
|
| |
|
|
|
|
|
| |
Continue replacing the use of calendar-config functions with GObject
property bindings to EShellSettings properties.
|
|
|
|
| |
We'll want to store enum settings by their nicknames.
|
|
|
|
| |
And move the definition to e-util-enums.h so we get a GType for it.
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is just for convenience, EActivity does not use this property.
Especially useful in async function callbacks when the operation
failed and now you have to do something useful with the GError.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With unintrusive error dialogs gone, we can cut some unnecessary bits
out of EActivity.
I'm also adding a new enum property called "state", which is one of:
E_ACTIVITY_RUNNING
E_ACTIVITY_WAITING
E_ACTIVITY_CANCELLED
E_ACTIVITY_COMPLETED
The state of an activity must be explicitly changed. In particular,
when the user cancels an activity the state should be set only after
confirming the operation has been cancelled and not when cancellation
is requested (e.g. after receiving a G_IO_ERROR_CANCELLED, not when
the GCancellable emits "cancelled"). EActivityBar and EActivityProxy
widgets have been updated to make this distinction clearer in the UI.
E_ACTIVITY_WAITING will be used when activities have to be queued and
dispatched in sequence, which I haven't written yet.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
You can now amend the predefined actions in an EAlert by calling
e_alert_add_action(). Useful for adding actions from an existing
GtkUIManager.
Call e_alert_peek_actions() to obtain a combined list of predefined
and custom actions. These will typically serve as "related" actions
for GtkButtons (cf. gtk_activatable_set_related_action()).
Also, both EShellWindow and EShellView now implement EAlertSink. Use
EShellWindow for application-wide alerts, EShellView for view-specific
alerts.
|
|
|
|
| |
Taking absolute value of diff.
|
|
|
|
|
|
| |
GObject now does property bindings itself.
Requires GLib >= 2.26.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'Send' and 'Save Draft' are now asynchronous and run outside of
Evolution's MailMsg infrastructure.
Add an EActivityBar to the composer window so these asynchronous
operations can be tracked and cancelled even in the absense of a main
window. Also add an EAlertBar to the composer window so error messages
can be shown directly in the window.
Instead of calling e_alert_dialog_run_for_args(), call e_alert_submit()
and pass the EMsgComposer as the widget argument. The EMsgComposer will
decide whether to show an EAlertDialog or use the EAlertBar, depending
on the GtkMessageType of the alert.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Trying out a new interface called EAlertSink. The idea is to centralize
how errors are shown to the user. A GtkWindow subclass would implement
the EAlertSink interface, which consists of a single method:
void (*submit_alert) (EAlertSink *alert_sink, EAlert *alert);
The subclass has complete control over what to do with the EAlert,
although I imagine we'll wind up implementing various alert-handling
policies as standalone widgets such as EAlertDialog. I'd like to try
an EAlertInfoBar.
Code that would otherwise display an error dialog itself would instead
pass the EAlert to an appropriate EAlertSink and be done with it.
Nothing is final yet. Still hacking on EAlert trying to find an API
that feels right for these use cases.
|
|
|
|
| |
Clean up the header, drop some unused cruft.
|
|
|
|
| |
Remove backward-compatibility hacks for older GTK+ versions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
EActivity now uses a GCancellable to manage cancellations, instead of
having its own redundant cancellation API. API changes are as follows:
+ e_activity_get_cancellable()
+ e_activity_set_cancellable()
- e_activity_cancel()
- e_activity_is_cancelled()
- e_activity_get_allow_cancel()
- e_activity_set_allow_cancel()
EActivity's "cancelled" signal remains, but only as a repeater for
GCancellable::cancelled signals. It should not be emitted directly.
The presence of a GCancellable implies that cancellation is allowed.
EActivity does not create its own default GCancellable, it has to be
given one.
If a CamelOperation (cast as a GCancellable) is given, EActivity will
configure itself to listen for status updates from the CamelOperation
and propagate the information to its own "primary-text" and "percent"
properties.
These changes allowed me to start cleaning up some of the incredibly
convoluted logic in mail-mt.c -- in particular, mail_operation_status()
is completely gone now. mail-mt.c is still in a transitional state --
much more significant changes coming soon.
|