Commit Graph

1457 Commits

Author SHA1 Message Date
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
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
52feeacf8d Minor efficiency tweak in task_shell_view_model_row_appended_cb().
Call e_task_shell_sidebar_add_client() instead of add_source().

No point asynchronously obtaining the client if we already have it.
2013-06-01 10:08:23 -04:00
7f914de290 Minor efficiency tweak in memo_shell_view_model_row_appended_cb().
Call e_memo_shell_sidebar_add_client() instead of add_source().

No point asynchronously obtaining the client if we already have it.
2013-06-01 10:08:23 -04:00
585745a2bf Minor efficiency tweak in cal_shell_view_user_created_cb().
Call e_cal_shell_sidebar_add_client() instead of add_source().

No point asynchronously obtaining the client if we already have it.
2013-06-01 10:08:23 -04:00
2aa759bc58 Add a boolean return to e_cal_model_remove_client().
The function now returns TRUE if the ECalClient was actually removed
from the model, or FALSE if the model did not have the ECalClient.

Use this to avoid an unnecessary gnome_calendar_update_query() call
in cal_shell_view_selector_client_removed().
2013-06-01 10:08:23 -04:00
6477dd6570 Add a boolean return to e_cal_model_add_client().
The function now returns TRUE if the ECalClient was actually added
to the model, or FALSE if the model already had the ECalClient.

Use this to avoid an unnecessary gnome_calendar_update_query() call
in cal_shell_view_selector_client_added_cb().
2013-06-01 09:10:16 -04:00
1047848935 GnomeCalendar: Get rid of the async message dispatcher.
Obtain calendar views asynchronously and concurrently, and update the
task and memo pads synchronously (they don't block as best I can tell).

Get rid of the whole thread-pool message dispatching thing, which I
think I myself wrote years ago (calendar had no async API back then).

Consequently I'm seeing calendar events show up noticably quicker.
2013-06-01 06:33:22 -04:00
ef5795c3fd Bug #700812 - Search in Calendar view is broken 2013-05-30 17:48:11 +02: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