Commit Graph

1467 Commits

Author SHA1 Message Date
d0ed242a24 ETaskShellView: Disconnect all signal handlers in dispose(). 2013-07-20 09:07:43 -04:00
0ad9e24744 EMemoShellView: Disconnect all signal handlers in dispose(). 2013-07-20 09:07:43 -04:00
3b7efa149a ECalShellView: Disconnect all signal handlers in dispose(). 2013-07-20 09:07:43 -04:00
7a05cf2cf7 Bug #703153 - Forgotten signal callbacks for freed objects 2013-07-19 17:43:46 +02:00
f8f196ca0f Bug 704259 - Fix "reply-style" key migration logic
Apparently the migration logic was more complex than it needed to be.
The old numeric key was already synced to the EMailReplyStyle enum in
the source code.  Dunno where I got the idea it wasn't.

Just more evidence numeric enum keys are bad.
2013-07-17 16:35:44 -04:00
060bb07662 mail_folder_cache_get_folder_info_flags: Change parameters.
Take a CamelStore and folder name instead of a CamelFolder.

CamelStore and folder name can easily be obtained from either a folder
URI or a CamelFolder instance, and the function is more efficient with
separate parameters.
2013-07-17 12:08:46 -04:00
dcf302c2ba Bug #703389 - Proxy ignored for images 2013-07-15 18:40:38 +02:00
edf24cc3da Bug 703991: Crash when using -fstack-protector-strong.
We were using g_object_get() to write an "unsigned int" value (at least
32 bits) into a 16-bit integer address.

Don't know why we were bothering with g_object_get() in the first place,
just call camel_network_settings_get_port() instead.
2013-07-12 14:41:50 -04:00
1c31145422 Bug 702664 - Settings migration issue from "headers" to "show-headers"
My previous patch didn't go far enough to repair an already-corrupted
"show-headers" key.  Need to actually reset it to its default value if
the "headers" key is empty.
2013-07-10 09:19:28 -04:00
3b8a9ed601 Bug 703490 - Stop invoking spamc, just use spamassassin
SpamAssassin is clearly not intended for use by mail clients, as
evidenced by the number of backflips Evolution's SA module still has to
do just to detect the presence and nature of a running spamd (a problem
which D-Bus solved a decade ago), and recent SA developer comments.

In lieu of removing SA support entirely, remove all the crazy GSettings
that are (thankfully) not exposed in the UI and relegate Evolution's SA
integration to only the most basic usage (spamassassin / sa-learn).

Users are better off with Bogofilter anyway.  Leave SpamAssassin for
mail servers.
2013-07-08 00:08:54 -04:00
cd76c782bd Miscellaneous cleanups. 2013-07-07 11:39:47 -04:00
a83157c778 Bug 703638 - Keep ItipView alive while connecting to calendar 2013-07-07 10:12:09 -04:00
3c4c595ab9 ItipView: Minor cleanups. 2013-07-07 10:12:05 -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
033d5013d3 Split CalendarViewFactory into separate classes by view type.
I suspect this will enable us to ditch GalViewFactory entirely once I
rework a few more things.  We'll see though; one step at a time here.
2013-07-05 16:40:50 -04:00
3f5f362e0d Split CalendarView into separate classes by view type.
It's better to have separate classes each with a fixed type code, than
one class with a variable type code.  You'll see why in the next commit.
2013-07-05 16:40:49 -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
fd40e93f41 ETaskShellContent: Remove hard-coded default table state.
I don't remember why E_TASK_TABLE_DEFAULT_STATE was needed when
e-calendar-table.etspec already specifies a default ETableState.
Some of the column numbers it was referencing weren't even valid.

Removing it seems to make no difference in Evolution.
2013-07-02 10:34:09 -04:00
56423e3ec2 EMemoShellContent: Remove hard-coded default table state.
I don't remember why E_MEMO_TABLE_DEFAULT_STATE was needed when
e-memo-table.etspec already specifies a default ETableState.

Removing it seems to make no difference in Evolution.
2013-07-02 10:34:09 -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
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
4a101290fd Calendar views inline text edit with Ctrl+C/V/X does not work
The shortcuts Ctrl+C/V/X are used for whole calendar items
copy/paste/cut, not for text when editing event details inline, either
in a day/week view or in a list view. By tracking the is-editing property
of respective cell editor and using it when enabling/disabling clipboard
actions makes the respective text operations work as expected.
2013-06-21 15:56:34 +02:00
69de51a15a Convert ETreeModel to an interface.
This commit does a number of things which I could not subdivide into
smaller commits.

* Converts ETreeModel to an interface, implemented by MessageList.

* Drops ETreeMemory and ETreeMemoryCallbacks, which were ETreeModel
  subclasses.  Their functionality is subsumed by MessageList.

* MessageList drops its public ETreeModel pointer, since MessageList
  now implements ETreeModel as an interface.

* Adds message_list_set_expanded_default(), which takes over for
  e_tree_memory_set_expanded_default().
2013-06-15 20:10:06 -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
053aaed678 mdn: Fix a runtime warning. 2013-06-14 23:43:48 -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
b688b36e2d MessageList: Add a "show-deleted" property.
Bind this to the "show-deleted" GSettings key.

New functions:

  message_list_get_show_deleted()
  message_list_set_show_deleted()
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
169c9aea03 MessageList: Add a "thread-latest" property.
Bind this to the "thread-latest" GSettings key.
2013-06-14 11:48:39 -04:00
b355b7c2ed ESettingsMessageList: Apply the "thread-expanded" setting. 2013-06-14 11:27:44 -04:00
0f8f88fe7e MessageList: Add a "thread-subject" property.
Bind this to the "thread-subject" GSettings key.
2013-06-14 11:27:40 -04:00
96c32f5fac Make MessageList extensible.
Also add a placeholder ESettingsMessageList extension.  Going to clean
out some of the direct GSettings usage in MessageList by adding GObject
properties and binding them to GSettings keys from the extension.
2013-06-14 11:27:08 -04:00
54384b7217 ECalShellView: Disconnect "prepare-for-quit" handler on dispose().
This is another source of crashes after creating and destroying a second
shell window.  The signal handler was left connected with the destroyed
shell window as the closure.
2013-06-10 16:43:38 -04:00
243f84d37d ECalShellView cleanups. 2013-06-10 16:43:38 -04:00
4f7b4d81e7 Reimplement the main toolbar's "prefer-item" feature.
This fixes a bug in the old implementation where the application could
crash after a second shell window was created and destroyed, because a
signal handler with the destroyed shell window as the closure was left
connected.

But moreover this simplifies the implementation by using a property
binding plus transform function instead of juggling signal handlers,
and also adds code comments where things get a little tricky.

Removed (now unused) functions:

  e_shell_window_get_toolbar_new_prefer_item
  e_shell_window_set_toolbar_new_prefer_item
2013-06-10 15:47:13 -04:00
decc4aa9a7 ETaskShellSidebar: Update selector rows after restoring state.
Call e_source_selector_update_all_rows() after connecting to the
selector tree model's "row-changed" signal.  This will ensure the
appropriate ECalClients get loaded into the ECalModel.

This fixes the bug where opening a second Tasks window shows no
content until one of the sidebar items is fiddled with.
2013-06-10 12:46:22 -04:00
4099d7eed5 EMemoShellSidebar: Update selector rows after restoring state.
Call e_source_selector_update_all_rows() after connecting to the
selector tree model's "row-changed" signal.  This will ensure the
appropriate ECalClients get loaded into the ECalModel.

This fixes the bug where opening a second Memos window shows no
content until one of the sidebar items is fiddled with.
2013-06-10 12:46:22 -04:00
b28f6f1d99 ECalShellSidebar: Update selector rows after restoring state.
Call e_source_selector_update_all_rows() after connecting to the
selector tree model's "row-changed" signal.  This will ensure the
appropriate ECalClients get loaded into the ECalModel.

This fixes the bug where opening a second Calendar window shows no
content until one of the sidebar items is fiddled with.
2013-06-10 12:46:22 -04:00
35582bf4e2 Bug 701669 - Bad assumption in prefer-plain module
For messages with a base MIME type of multipart/alternative, we were
hiding text/plain subparts based on the number of alternate subparts.

This assumption of course broke on a message with the following body
structure and a Plain Text Mode preference of "Show HTML if present":

    multipart/alternative
        text/plain
        text/plain

Instead, note when we've actually seen a text/html subpart and use that
to decide whether to hide the text/plain parts.
2013-06-08 11:53:02 -04:00
5cf06f855f EMailParserPreferPlain cleanups. 2013-06-08 11:31:30 -04:00
7b8a8a6a24 EMailFormatter: Remove the header API.
Use the EMailPartHeaders API instead.
2013-06-08 00:25:15 -04:00
c5313b3614 EMailPartHeaders: Add a "default-headers" property.
This will replace the headers API in EMailFormatter.  Need a more
permanent place for headers since EMailFormatter is too disposable.

Also add an ESettingsMailPartHeaders class, which binds the new property
to the "show-headers" setting with a suitable mapping function to filter
out disabled header names.
2013-06-08 00:25:11 -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
d388f9b5cf ESettingsDeprecated: Fix missing handler ID assignment. 2013-06-05 13:03:45 -04:00
5794c63f4f EMailBrowser: Add "close-on-reply-policy" property.
Mainly to avoid accessing GSettings directly from EMailBrowser.

Also add a "browser-close-on-reply-policy" GSettings key that replaces
"prompt-on-reply-close-browser", the difference being the new key uses
an enum definition compatible with EAutomaticActionPolicy instead of a
free-form string value.

And finally add an ESettingsMailBrowser class to glue things together.
2013-06-04 13:10:02 -04:00