Commit Graph

141 Commits

Author SHA1 Message Date
e3a09eb67c Add GBinding transform funcs for enum types.
We'll want to store enum settings by their nicknames.
2010-11-09 23:33:22 +01:00
b961a7bb95 Update API docs. 2010-11-09 23:33:22 +01:00
26afa6081c Utilize the new ESourceSelector:primary-selection property. 2010-11-09 23:33:21 +01:00
616f0b140b EActivity: Add an "alert-sink" property.
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.
2010-11-09 23:33:20 +01:00
4b88140cb6 Bug 633172 - Folder->Subscriptions is always enabled 2010-11-09 23:33:19 +01:00
c1d818a53f Bug 633471 - EAttachmentStore store folder name where uri is expected 2010-11-09 23:33:18 +01:00
c881b5bc5e Simplify EActivity.
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.
2010-10-22 14:21:22 -04:00
18447890ff ESignatureList cleanups. 2010-10-21 00:24:46 -04:00
0e7b23b94d Miscellaneous fixups. 2010-10-18 14:31:16 -04:00
ec170e47fd Move more account utilities to e-account-utils.c. 2010-10-18 12:32:38 -04:00
35e55a8d6e Send errors to an EAlertSink instead of the task bar.
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.
2010-10-18 12:32:37 -04:00
51ebf20237 EAlert: Allow arbitrary actions to be added.
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.
2010-10-18 12:32:36 -04:00
2197e6401e Implement EAlertSinkInterface in EShellContent.
Use the same alert handling policy as the composer.
2010-10-18 10:57:36 -04:00
1e663aa132 Replace EBinding with GBinding.
GObject now does property bindings itself.

Requires GLib >= 2.26.
2010-10-14 07:12:52 -04:00
b4f97aea9b Bug 461769 - Add a --force-online command line option
Use it to override network availability detection as reported by
NetworkManager or other network monitoring software.
2010-10-13 16:55:07 -04:00
3fbcc8ef80 EShellBackend: Respond to EShell::prepare-for-quit signals.
Listen for "prepare-for-quit" signals from the shell and inhibit
shutdown until all the activities we're tracking are finalized.

Also, add a couple supporting functions:

  gboolean  e_shell_backend_is_busy     (EShellBackend *shell_backend);
  void      e_shell_backend_cancel_all  (EShellBackend *shell_backend);

These will eventually replace mail_msg_active() and mail_cancel_all().
2010-10-13 16:00:03 -04:00
0e4c54eddc Messin around with EAlerts.
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.
2010-09-29 21:11:44 -04:00
a98c07a569 Add a GCancellable to EActivity.
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.
2010-09-18 16:40:19 -04:00
0558f070a3 Gtk-Doc fussing with SGML files. 2010-08-02 17:23:26 -04:00
ed7261a743 Fix linker flags for API documentation. 2010-08-02 17:22:47 -04:00
74a6864d36 Add new SGML files for API docs. 2010-08-02 08:44:51 -04:00
9085a5a18c Remove unused 'preview' argument from e_import_assistant_new_simple().
We preview imported files by other means now.
2010-07-30 10:58:26 -04:00
a11439aeaf Update API documentation. 2010-07-18 13:28:10 -04:00
f92b45d7df Fix places where "~/.evolution" is hard-coded.
Also replace "$USER_DATA_DIR/cache" path constructions with
e_get_user_cache_dir().
2010-07-08 16:59:11 -04:00
333897772f Remove gnome-pilot integration.
It just doesn't belong in Evolution anymore.  We don't support syncing
with more modern devices -- see Conduits or SyncEvolution for that -- so
it does not make sense for older model Palm Pilot PDAs to be the lone
exception.

I have repackaged the Evolution-Data-Server conduit modules to be
provided by gnome-pilot itself in bug #619315.  This should provide
eqivalent Palm Pilot syncing functionality; it's just being moved to
gnome-pilot.

This completely severs our dependency on deprecated GNOME 2.x libraries
which were still being dragged in by way of gnome-pilot dependencies.
It was also interfereing with our bundling of libgnomecanvas.
2010-06-15 14:45:55 -04:00
51d0fc6863 Bug 603468 - Improve handling of --quit option 2010-06-12 14:28:07 -04:00
ffc019e36f Coding style and whitespace cleanups. 2010-06-06 20:09:08 -04:00
970662db34 More GTK3 preparation.
This uses the new gtk_assistant_commit() I had added to GTK+ for our
EImportAssistant progress page.
2010-06-04 08:34:15 -04:00
c9ec8c3f4d Merge branch 'express2' 2010-05-26 13:09:33 -04:00
f49077cfb5 Merge branch 'gnome-2-30' into express2 2010-05-25 09:14:51 -04:00
ea1a5fca45 Merge branch 'gnome-2-30' into express2 2010-05-17 09:49:21 -04:00
7884d36ce4 Let Gtk-Doc do its thing. 2010-04-29 12:40:24 -04:00
8ded986a5c Let Gtk-Doc do its thing. 2010-04-25 23:46:39 -04:00
a4cb2af922 Fix compiler warnings. 2010-04-21 08:18:39 -04:00
d9fb300813 Simplify the search UI for express mode.
For express mode:

- Move the search bar up to the toolbar.

- Hide the "filter" combo box and lock down the first item.

- Hide the "scope" combo box and lock down the first item.
  (This is the combo box with "Current Folder" only in the mailer.)

- EShellView owns the search bar widget now instead of EShellContent.

- Insert several nasty hacks that will likely come back to bite me.

Conflicts:

	doc/reference/shell/eshell-sections.txt
2010-04-07 12:25:13 +01:00
bcc26ae24c More API documentation tweaking. 2010-04-07 12:13:39 +01:00
13fb16f279 Demonstrate extending the EExtension API.
Introduce e_extensible_list_extensions(), which provides extensible
objects access to their own extensions, or a subset of them.

Convert EShellBackend to an abstract EExtension subtype.  EShell will
load its extensions with e_extensible_load_extensions(), and then obtain
a list of EShellBackend extensions as follows:

    shell_backends = e_extensible_list_extensions (
            E_EXTENSIBLE (shell), E_TYPE_SHELL_BACKEND);

Because EShellBackend is abstract, its GType is skipped while traversing
the GType hierarchy to find EShell extensions.
2010-04-07 12:13:36 +01:00
c675132de1 Document EExtensible and EExtension.
The mechanism here is simple but hard to explain without leaning heavily
on object-oriented jargon.  Consider this a rough draft.  Illustrations
would certainly help clarify.
2010-04-07 12:13:25 +01:00
f91c4d7808 Add gtk-doc tests, but leave them disabled. 2010-03-31 18:42:26 -04:00
26dce62cbb Add --name-space to MKDB_OPTIONS. 2010-03-31 18:21:19 -04:00
aac92ccc52 Move EPoolv back to Evolution from libedataserver.
MessageList is the only thing still using it.
EMemPool is gone now, so it uses CamelMemPool instead (same thing).
2010-03-31 16:34:06 -04:00
0347770e99 Update API docs. 2010-03-29 19:18:05 -04:00
797acc2445 Drop support for migrating from Evolution < 2.0.
There's too much ancient, crufty code there that we can't realistically
support anymore.  A workaround for those poor users still on 1.x is to
upgrade to some 2.x release first, then upgrade again to 3.x.  An error
dialog explaining this will be shown at startup.
2010-03-29 19:04:00 -04:00
f7547cc6ac Simplify the search UI for express mode.
For express mode:

- Move the search bar up to the toolbar.

- Hide the "filter" combo box and lock down the first item.

- Hide the "scope" combo box and lock down the first item.
  (This is the combo box with "Current Folder" only in the mailer.)

- EShellView owns the search bar widget now instead of EShellContent.

- Insert several nasty hacks that will likely come back to bite me.
2010-03-26 20:29:30 -04:00
aba12c7f78 Bug 613639 - Evolution hard codes .gnome2 2010-03-23 10:22:44 -04:00
5c3c117a73 More API documentation tweaking. 2010-03-21 23:30:44 -04:00
906f93a130 Demonstrate extending the EExtension API.
Introduce e_extensible_list_extensions(), which provides extensible
objects access to their own extensions, or a subset of them.

Convert EShellBackend to an abstract EExtension subtype.  EShell will
load its extensions with e_extensible_load_extensions(), and then obtain
a list of EShellBackend extensions as follows:

    shell_backends = e_extensible_list_extensions (
            E_EXTENSIBLE (shell), E_TYPE_SHELL_BACKEND);

Because EShellBackend is abstract, its GType is skipped while traversing
the GType hierarchy to find EShell extensions.
2010-03-21 23:30:44 -04:00
ecdb79111c Document EExtensible and EExtension.
The mechanism here is simple but hard to explain without leaning heavily
on object-oriented jargon.  Consider this a rough draft.  Illustrations
would certainly help clarify.
2010-03-21 15:49:30 -04:00
58d0d111af Prevent future bugs like #612792.
Add G_GNUC_NULL_TERMINATED to EAlert functions with variable-length
parameter lists and drop the unnecessary "arg0" parameter so the
function attribute works correctly.
2010-03-15 10:38:59 -04:00
d7494c8f16 Shell and UI manager cleanups.
Replace the EVO_EXPRESS environment variable with an --express command
line option.  (Note, this adds a new translatable string for --help.)

Add an EUIManager class with an "express-mode" property and custom load
functions that use our new "express" preprocessor.  This replaces the UI
manager functions in e-utils.c.

(Also going to see if I can get GTK+ to add an "add_ui_from_string"
method to GtkUIManagerClass that we can override.  Then we could just
call gtk_ui_manager_add_ui_from_string() and the preprocessor would
automatically do its thing and chain up.)

Add an "express-mode" read-only GObject property to EShell.

Add e_shell_configure_ui_manager() to e-shell-utils.c.  For now this
just creates a one-way property binding:

    EShell:express-mode -> EUIManager:express-mode

Call this immediately after e_ui_manager_new().  (EUIManager can't do
this itself because it lives too low in the dependency hierarchy and
doesn't know about EShell.)
2010-03-13 20:53:17 -05:00