Commit Graph

238 Commits

Author SHA1 Message Date
9dcac58b21 Use thread safe variants of g_object_bind_property*() functions from evolution-data-server 2015-02-24 09:54:41 +01:00
a6e34f0bb7 Move authentication of backends back to the client
Since this change the client is responsible to provide credentials
to use to authenticate backends (through ESource-s, to be more precise),
unless the credentials are already saved.
2015-02-02 14:50:27 +01:00
59e2efa774 Share GSettings objects with e_util_ref_settings()
A simple Evolution run and move between all views means creation of
more than 100 GSettings objects, with only a bit more than 10 schemas.
Reusing the objects should have a positive impact on a performance too.
2014-11-13 10:06:04 +01:00
4f02ea569b Bug 738283 - Use-after-free with categories filter 2014-10-13 15:15:40 +02:00
8650fb139a Bug 540362: [webkit-composer] Use webkit for composer
Merge wip/webkit-composer branch into master.
2014-06-09 16:32:25 +02:00
2f3fbdd6c6 Ignore false GObject property change notifications
This is related to bug 698275, which did not cover all cases.
The problem here is that the dconf can in certain situation claim
that everything changed (path "/" changed), which GSettingsBinding
propagates to a GObject property unconditionally and GObject's
property setter (g_object_set_property()) also notifies about
the property change unconditionally, despite the real descendant
property setter properly checks for the value change. After all
these false notifications a callback on "notify" signal is called
and possibly an expensive operation is run.

Checking whether the value really changed helps in performance, for
which were added new e-util functions:
   e_signal_connect_notify()
   e_signal_connect_notify_after()
   e_signal_connect_notify_swapped()
   e_signal_connect_notify_object()
which have the same prototype as their GLib counterparts, but they allow
only "notify::..." signals and they test whether the value really changed
before they call the registered callback.
2014-06-04 19:46:25 +02:00
d46ad6d3cd Bug #678843 - May re-prompt password on account re-enable 2014-05-12 19:47:16 +02:00
61b4bacf9a e-util: Port to thread-safe ECategories API
This ports the following two function calls throughout Evolution:
 • e_categories_get_list() to e_categories_dup_list()
 • e_categories_get_icon_file_for() to e_categories_dup_icon_file_for()

It necessarily changes some internal e-util API:
 • e_util_get_searchable_categories() to
   e_util_dup_searchable_categories()

This bumps the EDS requirement to 3.13.1.

https://bugzilla.gnome.org/show_bug.cgi?id=727221
2014-03-28 10:44:44 +00:00
ed405f45a5 Bug #726542 - Unpadded black border on various mail account settings pages 2014-03-27 17:08:58 +01:00
8692b1cb72 Add an --enable-code-coverage configure option to enable gcov support
When enabled, this will compile all libraries/binaries with the necessary
gcc and ld flags to enable code coverage support using gcov.
2014-03-25 12:04:58 +01:00
c53fbc0b8f Miscellaneous cleanups. 2014-03-02 19:36:01 -05:00
d0b147ddb6 Add shortcuts previously defined by gtk-stock item definitions 2014-02-17 14:38:58 +01:00
b48e21d9aa Stop using deprecated gtk-stock items 2014-02-12 20:47:07 +01:00
b21733d067 Bug 721545 - License text contains obsolete FSF postal address 2014-01-07 16:05:51 -05:00
97e7a3534e Fix Contact Editor crash.
When closing the window after opening it from the Address Book Map.
2013-10-31 18:25:59 -04:00
a3b2e00c23 Bug #659890 - Merge addressbook 'widgets' and 'merging' libraries
These two cross-referenced each other, which could cause runtime issues,
thus rather merge them into one.
2013-09-24 09:21:34 +02:00
3da4948c0f Miscellaneous cleanups. 2013-09-07 19:08:54 -04:00
cd76c782bd Miscellaneous cleanups. 2013-07-07 11:39:47 -04:00
df1dc37704 EShellView can load the GalViewCollection itself now.
EShellView no longer needs help from subclasses other than getting
the needed GalView subclasses registered.

A nice side-effect of this is EShellView subclasses can now use the
G_DEFINE_DYNAMIC_TYPE macro.
2013-07-05 16:40:50 -04:00
7bb795b299 Remove gal_view_collection_add_factory().
No longer needed.  Instead, use g_type_ensure() to ensure the necessary
GalView subclasses are registered in the GType system before loading a
GalViewCollection.  Best place to ensure types is from GClassInitFunc.
2013-07-05 16:40:50 -04:00
2b9713656b GalViewFactoryEtable: Remove "specification" property.
No longer needed.

Removed functions:

  gal_view_factory_etable_get_specification()
2013-07-05 16:40:49 -04:00
31b5261fdb EShellView: Add a "view-instance" property.
EShellView now holds a reference to the active GalViewInstance.  Where
applicable, the EShellView subclass is responsible for keeping this up
to date when the sidebar selection changes.

Holding a reference allows EShellView to implement common actions like
"Save Current View" directly instead pushing it on to subclasses.

New functions:

  e_shell_view_get_view_instance
  e_shell_view_set_view_instance
2013-07-05 16:40:48 -04:00
f267827d67 ETableSpecification: Implement GInitable.
e_table_specification_new() now takes a table specification filename and
a GError and parses the file as part of instance creation.  If a file or
parse error occurs, e_table_specification_new() returns NULL.

This replaces e_table_specification_load_from_file().

New functions:

  e_table_specification_get_filename()

Removed functions:

  e_table_specification_load_from_file()
2013-07-02 10:34:12 -04:00
be217ae4c5 Contacts view: Add 'Refresh' into books context menu
Done as part of bug #700894
2013-07-01 15:53:06 +02:00
9bfe38c419 Rename libcomposer to libevolution-mail-composer.
To make Evolution's shared libraries more consistent.

Also add an evolution-mail-composer documentation module.
2013-05-28 09:56:30 -04:00
70a9fcdf9c Rename libeshell to libevolution-shell.
To make Evolution's shared libraries more consistent.

Also rename the documentation module to evolution-shell.
2013-05-28 09:56:30 -04:00
6c9a3243c9 Rename libeutil to libevolution-util.
To make Evolution's shared libraries more consistent.

Also rename the documentation module to evolution-util.
2013-05-28 09:56:30 -04:00
6ec48e33ef Make sure EAddressbookModel has a fresh EBookClient.
In the event of an address book backend abort, EClientCache detects this
and invalidates its cached EClient (if it has one), so a new instance is
created on the next request.

EAddressbookModel is only handed an EClient once, which may become stale
if the backend aborts.  And even if the backend is restarted the address
book will remain unresponsive in Evolution.

This commit changes the behavior so that every time an address book is
selected in the side bar, a fresh EClient instance is obtained from the
EClientCache and handed to the EAddressbookModel.  If the model already
has that EClient instance, nothing happens.  Otherwise the model resets
itself and creates a new EBookClientView.
2013-04-30 10:11:31 -04:00
2abf047ec8 Restore "Automatic Contacts" plugin preferences page.
This accidentally got dropped during the "account-mgmt" project.

As much as I loathe EConfig, the "Automatic Contacts" plugin is useless
without its Preferences page in the Contacts section.
2013-04-13 12:36:59 -04:00
78dfe47fdf Bug 696257 - Handle default values for "primary" selection settings
The default value for these GSettings keys is an empty string.  The
mapping function should handle empty strings by falling back to the
appropriate default ESource.
2013-03-24 13:37:16 -04:00
23b8999765 Remove EBookShellSettings.
EShellSettings predates GSettings and is no longer necessary.

GSettings allows binding GObject properties to GSettings keys,
with optional mapping functions.  That fulfills the purpose of
EShellSettings.
2013-03-17 08:49:12 -04:00
4ff90f2bfd Use EClientComboBox where appropriate.
Basically any place where we use both EClient and ESourceComboBox.
2013-03-01 18:16:07 -05:00
c3ea33df61 EAddressbookSelector: Inherit from EClientSelector.
Use e_client_selector_get_client() to obtain an EClient.
2013-02-18 14:19:34 -05:00
2e858dc05e EBookShellView: Use EClientCache to obtain an EClient. 2013-02-17 13:36:38 -05:00
b117764a50 EBookShellBackend: Use EClientCache to obtain an EClient. 2013-02-17 13:36:38 -05:00
c3268be737 EBookShellView: Handle error signals from address book backends. 2013-02-16 18:57:09 -05:00
b55c39cdec EBookShellView: Keep an ID for "source-removed" signal handler. 2013-02-15 21:05:33 -05:00
f11a74d725 EBookShellView: Use g_clear_object() in dispose(). 2013-02-15 18:40:48 -05:00
763081aa86 Fix up error handling around e_book/cal_client_connect_finish(). 2013-01-30 12:45:55 -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
8a71509ee4 Add a "settings" module.
Collect all the "config" extensions from the "addressbook", "calendar",
and "mail" modules into one place.  These extensions typically just bind
GObject properties of extensible classes to app-specific GSettings keys.
2013-01-20 20:56:16 -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
d545bdb78c Avoid deprecated libedataserver APIs.
I forgot to include this in 3.7.4, but no matter.
2013-01-15 09:43:40 -05:00
268b609f9d Bug #691134 - New contact lists always saved to a default book 2013-01-08 22:15:38 +01: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
d09d8de870 Consolidate base utility libraries into libeutil.
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.
2012-12-12 14:33:43 -05:00
d2fb5ee1a8 Avoid using GdkEventButton directly in certain places.
Prefer dealing with GdkEvent pointers and using accessor functions like
gdk_event_get_button().

This is complicated by the fact that some GtkWidget method declarations
still use GdkEventButton pointers, and synthesizing button events pretty
much requires direct GdkEventButton access.  But GDK seems to be nudging
itself toward sealing the GdkEvent union.  Likely to happen in GDK4.

Mainly clean up signal handlers and leave method overrides alone for now.
2012-11-29 13:24:24 -05:00
2c4ae5e768 Coding style and whitespace cleanup. 2012-11-10 15:54:43 -05:00
d181e003ca EBookConfigNameSelectorEntry: Use G_DEFINE_DYNAMIC_TYPE.
Follow the usual GObject conventions.
2012-10-09 14:27:41 -04:00
6f63323dc0 Remove ldap-config.ui.
Leftover file from ages past.  No longer used.
2012-09-17 13:50:40 -04:00