With lockdown settings available through GSettings, widgets can handle
lockdown integration themselves without having to use EShellSettings.
Also fixed a few places where printing or save-to-disk actions were
either not properly wired up or not responding to lockdown settings,
but much more work needs done. Attachments, for example, are not
honoring the disable-save-to-disk setting at all.
This too requires the recently-added gsettings-desktop-schemas
dependency.
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.
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.
To reduce GConf usage in em-composer-utils.c:
- Relevant functions in em-composer-utils.c now take arguments for
reply and forward styles.
- Redundant forwarding functions were removed:
em_utils_forward_attached()
em_utils_forward_inline()
em_utils_forward_quoted()
- EMailReader now has "forward-style" and "reply-style" properties,
which get bound to the appropriate EShellSettings properties in
modules/mail/e-mail-config-reader.c. These same EShellSettings
properties are bound to the combo boxes in Composer Preferences.
So we don't have to access GConf directly from EMFolderTree. The
property gets bound to an EShellSettings property, which is in turn
bound to the "no_folder_dots" GConf key by way of a transform function.
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.