Commit Graph

633 Commits

Author SHA1 Message Date
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
23d786f06a e-mail-shell-view.c: Avoid e_tree_set_state().
Create our own ETableState and call e_table_state_load_from_string()
followed by e_tree_set_state_object().
2013-07-02 10:34:12 -04:00
f927a9a169 Bug 702664 - Settings migration issue from "headers" to "show-headers"
Give the "show-headers" key a proper default value, and watch out for
an empty "headers" key, which is supposed to imply that default value.
2013-06-21 11:06:16 -04:00
f642e03d49 message_list_get_selected: Give the returned array a free func.
The returned UID array now has a built-in "free" function for its
elements and should be released by callers with g_ptr_array_unref()
rather than em_utils_uids_free() or some equivalent.
2013-06-15 08:19:27 -04:00
5b1742b202 Add e_mail_reader_ref_folder().
Replaces e_mail_reader_get_folder().
2013-06-14 23:21:41 -04:00
4fb6020185 MessageList: Remove public 'hidejunk' and 'hidedeleted' flags.
Add internal functions to compute these as needed based on a given
CamelFolder.

Removed functions:

  message_list_set_hidedeleted()
2013-06-14 23:21:40 -04:00
9c4500a9b5 MessageList: Add a "folder" property.
Also move the CamelFolder pointer into the private structure.

New functions:

  message_list_ref_folder()
2013-06-14 23:21:40 -04:00
3e8b6ddf8d Add "show-headers" settings key.
Replaces the "headers" key.  Whereas "headers" is an array of XML
blobs, the "show-headers" key is an array of string/boolean pairs.

Also update the appropriate places to get/set the new key.
2013-06-05 13:03:45 -04:00
89d274e476 Remove unused EMailNotebookView.
This is just an Express Mode leftover.
2013-06-02 16:44:51 -04:00
540acdbfa9 Simplify em_utils_forward_message() arguments.
Replace the EShell and CamelSession arguments with a single EMailBackend
argument, from which both the EShell and CamelSession can be obtained.
2013-06-02 11:58:08 -04:00
4860654335 Use F9 to toggle sidebar visibility.
As discussed recently on the users mailing list [1], there's a strong
precedent among GTK+ applications for F9 to toggle sidebar visibility.
Examples cited were Nautilus, Evince, Totem, Rhythmbox, File-Roller
and gThumb.

Change the Send/Receive accelerator from F9 to F12, and designate F9
as the accelerator for View->Layout->Show Side Bar.

[1] https://mail.gnome.org/archives/evolution-list/2013-May/msg00194.html
2013-05-29 08:09:53 -04: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
04aa0fba1f Rename libemformat to libevolution-mail-formatter.
To make Evolution's shared libraries more consistent.

Also add an evolution-mail-formatter 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
9058c6f85d Make EAttachment a little more thread-safe.
EAttachment is now used from worker threads by EMailFormatterAttachment,
so add some thread-safe accessor functions to eliminate potential races.

Added thread-safe functions:

    e_attachment_dup_disposition()
    e_attachment_ref_file()
    e_attachment_ref_file_info()
    e_attachment_ref_icon()
    e_attachment_ref_mime_part()
    e_attachment_dup_description()
    e_attachment_dup_thumbnail_path()

Renamed functions:

    e_attachment_get_mime_type() -> e_attachment_dup_mime_type()

Removed non-thread-safe functions:

    e_attachment_get_file()
    e_attachment_get_file_info()
    e_attachment_get_icon()
    e_attachment_get_mime_part()
    e_attachment_get_description()
    e_attachment_get_thumbnail_path()
2013-05-23 16:36:02 -04:00
256422cab2 Attachment-related cleanups. 2013-05-23 16:36:01 -04:00
58ef547151 Coding style and whitespace cleanup. 2013-05-08 08:28:09 -04:00
7770e7c365 Merge [mark-all-read] plugin into core code
During fixes on bug #602428, rather than do everything twice,
I merged the plugin into the core code, thus it should be easier
to maintain as well.
2013-05-03 18:11:37 +02:00
5dfeb54af9 Bug #699555 - prompt-on-mark-all-read doesn't work in context menu 2013-05-03 13:47:48 +02:00
b064d64be7 [EMailFormatter] Use GdkRGBA and GtkStyleContext to get theme colors
It could happen that header text color had been picked white one time,
but the other time black as expected (for me usually when I started
Evolution in Calendar and moved to Mail view, the header text color
was white, while when starting in Mail view it was black). The change
to use GtkStyleContext is there only as a cleanup from deprecated
GtkStyle, and to make things easier too, because both GtkStyle
and the GtkStyleContext had set white color for some reason.
2013-04-23 14:59:09 +02:00
60386356e3 Remove "Search for sender photograph only in local address books".
This was added as part of bug 360184 but no justification was given
for the "local-only" part.  My Spidey sense tells me it was a hack-
around for the old implementation's tendency to freeze the UI while
searching for a photograph.  So the "local-only" option really just
meant "don't freeze the UI for very long, please".

The new EPhotoCache-based implementation in 3.8 NEVER freezes the UI,
so the "local-only" option is no longer needed.  If a remote address
book is slow or unresponsive we simply cancel the async photo lookup
when the user moves on to another email.
2013-04-20 13:15:27 -04:00
2dfd548d26 Bug #271262 - Allow Send/Receive of local stores in offline 2013-04-08 19:21:04 +02:00
018018fabe Remove more Express Mode hacks.
This removes all traces of Express Mode from all but the contact editor
and calendar appointment editor.  Need to evaluate the remaining cases
individually.
2013-03-31 12:10:54 -04:00
85fac87782 Remove e_shell_hide_widgets_for_express_mode().
No longer needed.
2013-03-31 12:10:54 -04:00
0494d4c3c6 Remove EUIManager.
No longer needed.  Use GtkUIManager directly.
2013-03-31 12:10:54 -04:00
8c2472645f Fix for typing in ITIP comments when some keys triggered actions. 2013-03-28 13:03:09 +01:00
449889b31a Fix a typo which disabled "Always load images" option forever 2013-03-22 12:08:41 +01:00
2e87aa81fc Remove EMailShellSettings.
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
09b7686c4a Add "headers-collapsed" setting.
Replaces "paned-view-headers-state", which was defined as an integer for
some stupid reason.  Not bothering to migrate the old setting since it's
one button click.
2013-03-17 08:49:12 -04:00
33bbdaa50b Coding style and whitespace cleanup. 2013-02-23 22:24:59 -05:00
5e1eda8877 EMailShellView: Use g_clear_object() in dispose(). 2013-02-15 21:05:32 -05:00
bf250a0198 Bug #680537 - Reply to individual message in digest generates empty body 2013-01-23 20:06:07 +01:00
fe8e579347 Bug #639698 - Crash in mail_shell_view_execute_search() 2013-01-23 15:25:02 +01:00
b24ca598cb evolution-module-mail.c: Remove unused declaration. 2013-01-20 20:56:16 -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
b1ed35f70d Coding style and whitespace cleanup. 2013-01-10 11:20:32 -05:00
53937a3dbd Bug 588216 - 'Unsubscribe' disabled for newsgroups
Unsubscribable folders are not necessarily deletable.
2012-12-28 14:25:54 -05: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
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
91822b42dc Make EMailPartList thread-safe.
Exposing data members in the public struct is unwise, especially when
EMailPartList is used from multiple threads.  Instead keep the members
private and provide a set of thread-safe functions to manipulate them.
2012-12-07 14:01:04 -05:00
ae6344a22b Bug #315317 - Add option to expunge messages on folder leave 2012-12-04 19:33:29 +01: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
dd958f0120 Bug #202576 - A way to refresh IMAP folder list 2012-11-22 16:18:51 +01:00
2c4ae5e768 Coding style and whitespace cleanup. 2012-11-10 15:54:43 -05:00