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.
In task_shell_sidebar_check_state(), determine whether the selected
source supports refresh by way of e_client_cache_ref_cached_client()
and e_client_check_refresh_supported().
In memo_shell_sidebar_check_state(), determine whether the selected
source supports refresh by way of e_client_cache_ref_cached_client()
and e_client_check_refresh_supported().
In cal_shell_sidebar_check_state(), determine whether the selected
source supports refresh by way of e_client_cache_ref_cached_client()
and e_client_check_refresh_supported().
Thanks to the "default-timezone" property binding created by
ESettingsClientCache, changes to the "cal-timezone" setting are
automatically propagated to all ECalClient instances created by
EClientCache.
Thanks to the "default-timezone" property binding created by
ESettingsClientCache, changes to the "cal-timezone" setting are
automatically propagated to all ECalClient instances created by
EClientCache.
Thanks to the "default-timezone" property binding created by
ESettingsClientCache, changes to the "cal-timezone" setting are
automatically propagated to all ECalClient instances created by
EClientCache.
EShell's instance of EClientCache gets instantiated before modules are
loaded, so explicitly call e_extensible_load_extensions() on the cache
after modules are loaded.
This requires commit 525fba8 in evolution-data-server to work.
Listens for "client-created" signals from its EClientCache. If the
newly-created client is an ECalClient, automatically configure its
default timezone from EShellSettings.
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.