Commit Graph

1513 Commits

Author SHA1 Message Date
662ed02cc7 Never ever pre-fetch anything in EClientSelector
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.
2013-03-01 16:47:37 +01:00
e8b4f7de7f EClientCache cleanups. 2013-02-27 11:45:47 -05:00
c03ac67511 Add EPhotoCache.
Caches contact photos by email address.

Replaces the disastrous implementation in e-mail-utils.c.
2013-02-27 10:59:54 -05:00
33bbdaa50b Coding style and whitespace cleanup. 2013-02-23 22:24:59 -05:00
3b81518304 EClientCache: Use e_source_registry_dup_unique_display_name().
Use a standard format for naming an ESource in user-visible messages.
2013-02-23 09:35:20 -05:00
e82cb12e16 EClientSelector: Pre-fetch relevant EClient instance.
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.
2013-02-22 10:59:30 -05:00
3b8afec6a7 Autocompletion - do not use quick timeout when user types text
The quick timeout is used only when new items are found,
do not use it when user types text, because it flickers.
2013-02-22 09:34:31 +01:00
e667bac9f9 Speed-up auto-completion results showing
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.
2013-02-21 19:07:37 +01:00
fd9622bb41 EClientSelector: Add a backend status icon.
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.
2013-02-20 16:35:58 -05:00
5488c24819 Add e_client_selector_ref_cached_client_by_iter(). 2013-02-20 16:35:58 -05:00
f8ff0f0fde Add e_source_selector_ref_source_by_iter(). 2013-02-20 16:35:58 -05:00
a955be9b70 ESourceSelector: Make source_selector_update_row() public.
Gonna need to call this from the EClientSelector subclass.
2013-02-20 16:35:58 -05:00
214d832ccd Add e_client_selector_is_backend_dead().
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.
2013-02-20 16:35:58 -05:00
2c195f2266 Add e_client_cache_is_backend_dead().
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.
2013-02-20 16:35:58 -05:00
c941bab524 EClientCache: Don't emit signals while holding a lock.
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.
2013-02-20 16:35:58 -05:00
1abd497f66 EClientCache: Add a "client-notify" signal.
Rebroadcasts a GObject::notify signal emitted by a cached EClient.
2013-02-20 16:35:58 -05:00
be7376c085 EClientCache: Fix some signal handler ID variable names. 2013-02-20 16:35:58 -05:00
39645fa1b9 Show local images in Signature preview
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.
2013-02-20 19:21:55 +01:00
ba241f88ef EAttachment: Use Subject as fallback filename for message attachments 2013-02-20 12:01:20 +01:00
80b93e39ac EAttachment: Decode part's file name before using it 2013-02-20 11:32:46 +01:00
685e763c6a Bug #674236 - Extra ref in e_action_combo_box_set_action() 2013-02-19 13:17:35 +01:00
2c471d1291 Add EClientSelector.
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.)
2013-02-18 13:48:11 -05:00
d84b67875c EClientCache: Keep a strong reference on the ESourceRegistry.
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.
2013-02-17 14:29:49 -05:00
cefa5edf7f Add EClientCache.
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.
2013-02-16 18:57:08 -05:00
73510c9d4b Remove old GTK+ version checks.
We require GTK+ 3.4, so no need to check for versions older than that.
2013-02-15 18:38:49 -05:00
5d4f9d8c2a Bug #693132 - Editing a signature does not refresh preview after save 2013-02-04 12:07:46 +01:00
fc3bf6f39e Bug #689476 - Slow composer open (ENameSelector object leaks) 2013-01-31 17:31:36 +01:00
763081aa86 Fix up error handling around e_book/cal_client_connect_finish(). 2013-01-30 12:45:55 -05:00
2c9ed5c04a Remove e-client-utils.[ch]. 2013-01-30 09:35:27 -05:00
e583928e04 Use e_book_client_connect().
Instead of e_client_utils_open_new() and e_book_client_new().
2013-01-30 08:37:15 -05:00
3fa4dfc54d Remove usage of deprecated e_client_is_opened().
e_client_is_opened() always returns TRUE, so skip it.
2013-01-25 15:47:51 -05:00
60c5c7170f E_CLIENT_ERROR_BUSY is no longer used. 2013-01-24 12:10:31 -05:00
8e2902eefc Bump GDK_VERSION_MIN_REQUIRED to GDK_VERSION_3_2.
Clean up resulting deprecation warnings, which were all related to
GtkOrientable consolidation (e.g. gtk_hbox_new() -> gtk_box_new()).
2013-01-19 19:08:01 -05:00
de978d4231 Use g_hash_table_add() when using a hash table as a set.
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.
2013-01-11 13:43:19 -05:00
adc0ad91c4 Bug #691470 - ENameSelectorEntry: Copy to clipboard issue with multi-byte characters 2013-01-11 17:09:02 +01:00
6a79322ff6 Reduce diff noise with webkit-composer branch. 2013-01-11 09:39:04 -05:00
620089c784 Add single-include barriers to a few e-util headers. 2013-01-11 09:34:54 -05:00
b1ed35f70d Coding style and whitespace cleanup. 2013-01-10 11:20:32 -05:00
957ff43705 Bug #690177 - Use trust-prompt for certificate verification in WebDAV backends 2013-01-09 23:05:25 +01:00
a4a479bb36 Fix a tests build break in e-util/ 2012-12-17 11:31:17 +01:00
79f9fe7f77 e-config: Remove unused functions.
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.
2012-12-16 18:07:54 -05:00
6faf671382 e-passwords: Remove unused function parameters. 2012-12-16 17:03:54 -05:00
f1ca58d40a e-passwords: Remove unused functions.
e_passwords_cancel()
e_passwords_clear_passwords()
e_passwords_forget_passwords()
e_passwords_shutdown()
2012-12-16 16:14:06 -05:00
58f30d3776 Remove unused marshallers. 2012-12-16 16:04:54 -05:00
6fecc5899e Fix compiler warnings. 2012-12-15 08:16:36 -05:00
5e2efa2cd4 Finish adding symbols to libeutil API docs. 2012-12-15 08:16:36 -05:00
09f2b14cf1 e-util: Remove e-passwords-win32.c.
Let's not drag the old password keyfile along any further.
2012-12-13 15:16:23 -05:00
330d0d3f2f e-misc-util.h: Fix quoted #includes. 2012-12-13 14:38:05 -05:00
090dba7fcb e-util: Add xpm icons to EXTRA_DIST. 2012-12-13 14:13:10 -05:00
bed06d9ec3 Move the contact map widgets to addressbook/gui/widgets.
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.
2012-12-12 14:33:47 -05:00