From d261d0b2e46d4793c2d54540782552846535eb60 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 25 Apr 2009 19:37:21 -0400 Subject: Begin migrating calendar settings to EShellSettings. Begin dismantling calendar-config.c and migrating calendar settings to EShellSettings. EShellSettings utilizes GObject properties instead of separate get/set/notify functions for each setting. --- calendar/modules/Makefile.am | 2 + calendar/modules/e-cal-shell-module-migrate.c | 15 ++++++- calendar/modules/e-cal-shell-module-settings.c | 59 ++++++++++++++++++++++++++ calendar/modules/e-cal-shell-module-settings.h | 33 ++++++++++++++ calendar/modules/e-cal-shell-module.c | 33 +++++++++++--- calendar/modules/e-cal-shell-sidebar.c | 29 +++++++++++-- calendar/modules/e-cal-shell-view-memopad.c | 18 +++++++- calendar/modules/e-cal-shell-view-private.c | 9 +++- calendar/modules/e-cal-shell-view-taskpad.c | 18 +++++++- calendar/modules/e-memo-shell-module.c | 10 ++++- calendar/modules/e-memo-shell-view-actions.c | 9 +++- calendar/modules/e-memo-shell-view-private.c | 9 +++- calendar/modules/e-task-shell-module.c | 10 ++++- calendar/modules/e-task-shell-view-actions.c | 9 +++- calendar/modules/e-task-shell-view-private.c | 9 +++- 15 files changed, 248 insertions(+), 24 deletions(-) create mode 100644 calendar/modules/e-cal-shell-module-settings.c create mode 100644 calendar/modules/e-cal-shell-module-settings.h (limited to 'calendar/modules') diff --git a/calendar/modules/Makefile.am b/calendar/modules/Makefile.am index 7b2e636eac..9a90c99794 100644 --- a/calendar/modules/Makefile.am +++ b/calendar/modules/Makefile.am @@ -18,6 +18,8 @@ libevolution_module_calendars_la_SOURCES = \ e-cal-shell-module.c \ e-cal-shell-module-migrate.c \ e-cal-shell-module-migrate.h \ + e-cal-shell-module-settings.c \ + e-cal-shell-module-settings.h \ e-cal-shell-content.c \ e-cal-shell-content.h \ e-cal-shell-sidebar.c \ diff --git a/calendar/modules/e-cal-shell-module-migrate.c b/calendar/modules/e-cal-shell-module-migrate.c index 0c5d02ce26..5ebb6af54f 100644 --- a/calendar/modules/e-cal-shell-module-migrate.c +++ b/calendar/modules/e-cal-shell-module-migrate.c @@ -42,6 +42,7 @@ #include "calendar/gui/calendar-config.h" #include "calendar/gui/calendar-config-keys.h" #include "calendar/gui/e-cal-event.h" +#include "shell/e-shell.h" #define WEBCAL_BASE_URI "webcal://" #define CONTACTS_BASE_URI "contacts://" @@ -498,6 +499,8 @@ create_calendar_sources (EShellModule *shell_module, ESourceGroup **on_the_web, ESourceGroup **contacts) { + EShell *shell; + EShellSettings *shell_settings; GSList *groups; ESourceGroup *group; char *base_uri, *base_uri_proto; @@ -508,6 +511,9 @@ create_calendar_sources (EShellModule *shell_module, *contacts = NULL; *personal_source = NULL; + shell = e_shell_module_get_shell (shell_module); + shell_settings = e_shell_get_shell_settings (shell); + base_dir = e_shell_module_get_config_dir (shell_module); base_uri = g_build_filename (base_dir, "local", NULL); @@ -563,16 +569,21 @@ create_calendar_sources (EShellModule *shell_module, } if (!*personal_source) { - char *primary_calendar = calendar_config_get_primary_calendar (); + char *primary_calendar; /* Create the default Person calendar */ ESource *source = e_source_new (_("Personal"), PERSONAL_RELATIVE_URI); e_source_group_add_source (*on_this_computer, source, -1); + primary_calendar = e_shell_settings_get_string ( + shell_settings, "cal-primary-calendar"); + if (!primary_calendar && !calendar_config_get_calendars_selected ()) { GSList selected; - calendar_config_set_primary_calendar (e_source_peek_uid (source)); + e_shell_settings_set_string ( + shell_settings, "cal-primary-calendar", + e_source_peek_uid (source)); selected.data = (gpointer)e_source_peek_uid (source); selected.next = NULL; diff --git a/calendar/modules/e-cal-shell-module-settings.c b/calendar/modules/e-cal-shell-module-settings.c new file mode 100644 index 0000000000..ff6bd8e500 --- /dev/null +++ b/calendar/modules/e-cal-shell-module-settings.c @@ -0,0 +1,59 @@ +/* + * e-cal-shell-module-settings.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the program; if not, see + * + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * + */ + +#include "e-cal-shell-module-settings.h" + +#include + +void +e_cal_shell_module_init_settings (EShell *shell) +{ + EShellSettings *shell_settings; + + shell_settings = e_shell_get_shell_settings (shell); + + /* XXX Default values should match the GConf schema. + * Yes it's redundant, but we're stuck with GConf. */ + + e_shell_settings_install_property ( + g_param_spec_string ( + "cal-primary-calendar", + NULL, + NULL, + NULL, + G_PARAM_READWRITE)); + + e_shell_settings_bind_to_gconf ( + shell_settings, "cal-primary-calendar", + "/apps/evolution/calendar/display/primary_calendar"); + + e_shell_settings_install_property ( + g_param_spec_boolean ( + "cal-use-system-timezone", + NULL, + NULL, + TRUE, + G_PARAM_READWRITE)); + + e_shell_settings_bind_to_gconf ( + shell_settings, "cal-use-system-timezone", + "/apps/evolution/calendar/display/use_system_timezone"); +} diff --git a/calendar/modules/e-cal-shell-module-settings.h b/calendar/modules/e-cal-shell-module-settings.h new file mode 100644 index 0000000000..92be6da749 --- /dev/null +++ b/calendar/modules/e-cal-shell-module-settings.h @@ -0,0 +1,33 @@ +/* + * e-cal-shell-module-settings.h + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the program; if not, see + * + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * + */ + +#ifndef E_CAL_SHELL_MODULE_SETTINGS_H +#define E_CAL_SHELL_MODULE_SETTINGS_H + +#include + +G_BEGIN_DECLS + +void e_cal_shell_module_init_settings (EShell *shell); + +G_END_DECLS + +#endif /* E_CAL_SHELL_MODULE_SETTINGS_H */ diff --git a/calendar/modules/e-cal-shell-module.c b/calendar/modules/e-cal-shell-module.c index 15b5af2d20..a73f0b5960 100644 --- a/calendar/modules/e-cal-shell-module.c +++ b/calendar/modules/e-cal-shell-module.c @@ -46,6 +46,7 @@ #include "e-cal-shell-view.h" #include "e-cal-shell-module-migrate.h" +#include "e-cal-shell-module-settings.h" #define MODULE_NAME "calendar" #define MODULE_ALIASES "" @@ -73,6 +74,8 @@ cal_shell_module_ensure_sources (EShellModule *shell_module) ESourceGroup *weather; ESource *birthdays; ESource *personal; + EShell *shell; + EShellSettings *shell_settings; GSList *groups, *iter; const gchar *data_dir; const gchar *name; @@ -87,6 +90,9 @@ cal_shell_module_ensure_sources (EShellModule *shell_module) birthdays = NULL; personal = NULL; + shell = e_shell_module_get_shell (shell_module); + shell_settings = e_shell_get_shell_settings (shell); + if (!e_cal_get_sources (&source_list, E_CAL_SOURCE_TYPE_EVENT, NULL)) { g_warning ("Could not get calendar sources from GConf!"); return; @@ -195,7 +201,9 @@ cal_shell_module_ensure_sources (EShellModule *shell_module) e_source_group_add_source (on_this_computer, source, -1); g_object_unref (source); - primary = calendar_config_get_primary_calendar (); + primary = e_shell_settings_get_string ( + shell_settings, "cal-primary-calendar"); + selected = calendar_config_get_calendars_selected (); if (primary == NULL && selected == NULL) { @@ -204,7 +212,8 @@ cal_shell_module_ensure_sources (EShellModule *shell_module) uid = e_source_peek_uid (source); selected = g_slist_prepend (NULL, g_strdup (uid)); - calendar_config_set_primary_calendar (uid); + e_shell_settings_set_string ( + shell_settings, "cal-primary-calendar", uid); calendar_config_set_calendars_selected (selected); } @@ -321,12 +330,16 @@ cal_shell_module_cal_opened_cb (ECal *cal, ECalendarStatus status, GtkAction *action) { + EShell *shell; ECalComponent *comp; CompEditor *editor; CompEditorFlags flags = 0; const gchar *action_name; gboolean all_day; + /* FIXME Pass this in. */ + shell = e_shell_get_default (); + /* XXX Handle errors better. */ if (status != E_CALENDAR_STATUS_OK) return; @@ -340,7 +353,7 @@ cal_shell_module_cal_opened_cb (ECal *cal, all_day = (strcmp (action_name, "event-all-day-new") == 0); - editor = event_editor_new (cal, flags); + editor = event_editor_new (cal, shell, flags); comp = cal_comp_event_new_with_current_time (cal, all_day); comp_editor_edit_comp (editor, comp); @@ -357,18 +370,24 @@ action_event_new_cb (GtkAction *action, ECal *cal = NULL; ECalSourceType source_type; ESourceList *source_list; + EShellSettings *shell_settings; + EShell *shell; gchar *uid; /* This callback is used for both appointments and meetings. */ source_type = E_CAL_SOURCE_TYPE_EVENT; + shell = e_shell_window_get_shell (shell_window); + shell_settings = e_shell_get_shell_settings (shell); + if (!e_cal_get_sources (&source_list, source_type, NULL)) { g_warning ("Could not get calendar sources from GConf!"); return; } - uid = calendar_config_get_primary_calendar (); + uid = e_shell_settings_get_string ( + shell_settings, "cal-primary-calendar"); if (uid != NULL) { ESource *source; @@ -469,7 +488,7 @@ cal_shell_module_init_preferences (EShell *shell) "calendar-and-tasks", "preferences-calendar-and-tasks", _("Calendar and Tasks"), - calendar_prefs_dialog_new (), + calendar_prefs_dialog_new (shell), 600); } @@ -541,6 +560,10 @@ e_shell_module_init (GTypeModule *type_module) cal_shell_module_init_hooks (); cal_shell_module_init_importers (); + + /* Initialize settings before initializing preferences, + * since the preferences bind to the shell settings. */ + e_cal_shell_module_init_settings (shell); cal_shell_module_init_preferences (shell); e_attachment_handler_calendar_get_type (); diff --git a/calendar/modules/e-cal-shell-sidebar.c b/calendar/modules/e-cal-shell-sidebar.c index ee887cecba..61a1a727e6 100644 --- a/calendar/modules/e-cal-shell-sidebar.c +++ b/calendar/modules/e-cal-shell-sidebar.c @@ -272,8 +272,12 @@ static void cal_shell_sidebar_primary_selection_changed_cb (ECalShellSidebar *cal_shell_sidebar, ESourceSelector *selector) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; + EShellSidebar *shell_sidebar; + EShellSettings *shell_settings; ESource *source; - const gchar *uid; /* XXX ESourceSelector needs a "primary-selection-uid" property * so we can just bind the property with GConfBridge. */ @@ -282,8 +286,16 @@ cal_shell_sidebar_primary_selection_changed_cb (ECalShellSidebar *cal_shell_side if (source == NULL) return; - uid = e_source_peek_uid (source); - calendar_config_set_primary_calendar (uid); + shell_sidebar = E_SHELL_SIDEBAR (cal_shell_sidebar); + shell_view = e_shell_sidebar_get_shell_view (shell_sidebar); + shell_window = e_shell_view_get_shell_window (shell_view); + + shell = e_shell_window_get_shell (shell_window); + shell_settings = e_shell_get_shell_settings (shell); + + e_shell_settings_set_string ( + shell_settings, "cal-primary-calendar", + e_source_peek_uid (source)); } static void @@ -359,8 +371,11 @@ static void cal_shell_sidebar_constructed (GObject *object) { ECalShellSidebarPrivate *priv; + EShell *shell; EShellView *shell_view; + EShellWindow *shell_window; EShellSidebar *shell_sidebar; + EShellSettings *shell_settings; ECalShellView *cal_shell_view; ESourceSelector *selector; ESourceList *source_list; @@ -382,6 +397,11 @@ cal_shell_sidebar_constructed (GObject *object) shell_sidebar = E_SHELL_SIDEBAR (object); shell_view = e_shell_sidebar_get_shell_view (shell_sidebar); + shell_window = e_shell_view_get_shell_window (shell_view); + + shell = e_shell_window_get_shell (shell_window); + shell_settings = e_shell_get_shell_settings (shell); + cal_shell_view = E_CAL_SHELL_VIEW (shell_view); source_list = e_cal_shell_view_get_source_list (cal_shell_view); @@ -437,7 +457,8 @@ cal_shell_sidebar_constructed (GObject *object) object); source = NULL; - uid = calendar_config_get_primary_calendar (); + uid = e_shell_settings_get_string ( + shell_settings, "cal-primary-calendar"); if (uid != NULL) source = e_source_list_peek_source_by_uid (source_list, uid); if (source == NULL) diff --git a/calendar/modules/e-cal-shell-view-memopad.c b/calendar/modules/e-cal-shell-view-memopad.c index f5988dc125..dbde52d1eb 100644 --- a/calendar/modules/e-cal-shell-view-memopad.c +++ b/calendar/modules/e-cal-shell-view-memopad.c @@ -112,6 +112,9 @@ static void action_calendar_memopad_new_cb (GtkAction *action, ECalShellView *cal_shell_view) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; ECalShellContent *cal_shell_content; EMemoTable *memo_table; ECalModelComponent *comp_data; @@ -120,6 +123,10 @@ action_calendar_memopad_new_cb (GtkAction *action, CompEditor *editor; GSList *list; + shell_view = E_SHELL_VIEW (cal_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + cal_shell_content = cal_shell_view->priv->cal_shell_content; memo_table = e_cal_shell_content_get_memo_table (cal_shell_content); @@ -129,7 +136,7 @@ action_calendar_memopad_new_cb (GtkAction *action, g_slist_free (list); client = comp_data->client; - editor = memo_editor_new (client, COMP_EDITOR_NEW_ITEM); + editor = memo_editor_new (client, shell, COMP_EDITOR_NEW_ITEM); comp = cal_comp_memo_new_with_defaults (client); comp_editor_edit_comp (editor, comp); @@ -441,6 +448,9 @@ void e_cal_shell_view_memopad_open_memo (ECalShellView *cal_shell_view, ECalModelComponent *comp_data) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; CompEditor *editor; CompEditorFlags flags = 0; ECalComponent *comp; @@ -450,6 +460,10 @@ e_cal_shell_view_memopad_open_memo (ECalShellView *cal_shell_view, g_return_if_fail (E_IS_CAL_SHELL_VIEW (cal_shell_view)); g_return_if_fail (E_IS_CAL_MODEL_COMPONENT (comp_data)); + shell_view = E_SHELL_VIEW (cal_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + uid = icalcomponent_get_uid (comp_data->icalcomp); editor = comp_editor_find_instance (uid); @@ -466,7 +480,7 @@ e_cal_shell_view_memopad_open_memo (ECalShellView *cal_shell_view, if (itip_organizer_is_user (comp, comp_data->client)) flags |= COMP_EDITOR_USER_ORG; - editor = memo_editor_new (comp_data->client, flags); + editor = memo_editor_new (comp_data->client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_unref (comp); diff --git a/calendar/modules/e-cal-shell-view-private.c b/calendar/modules/e-cal-shell-view-private.c index 6022b712c2..f344333598 100644 --- a/calendar/modules/e-cal-shell-view-private.c +++ b/calendar/modules/e-cal-shell-view-private.c @@ -411,6 +411,9 @@ void e_cal_shell_view_open_event (ECalShellView *cal_shell_view, ECalModelComponent *comp_data) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; CompEditor *editor; CompEditorFlags flags = 0; ECalComponent *comp; @@ -421,6 +424,10 @@ e_cal_shell_view_open_event (ECalShellView *cal_shell_view, g_return_if_fail (E_IS_CAL_SHELL_VIEW (cal_shell_view)); g_return_if_fail (E_IS_CAL_MODEL_COMPONENT (comp_data)); + shell_view = E_SHELL_VIEW (cal_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + uid = icalcomponent_get_uid (comp_data->icalcomp); editor = comp_editor_find_instance (uid); @@ -445,7 +452,7 @@ e_cal_shell_view_open_event (ECalShellView *cal_shell_view, if (!e_cal_component_has_attendees (comp)) flags |= COMP_EDITOR_USER_ORG; - editor = event_editor_new (comp_data->client, flags); + editor = event_editor_new (comp_data->client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_ref (comp); diff --git a/calendar/modules/e-cal-shell-view-taskpad.c b/calendar/modules/e-cal-shell-view-taskpad.c index 49b7f3635f..92fcdba69f 100644 --- a/calendar/modules/e-cal-shell-view-taskpad.c +++ b/calendar/modules/e-cal-shell-view-taskpad.c @@ -181,6 +181,9 @@ static void action_calendar_taskpad_new_cb (GtkAction *action, ECalShellView *cal_shell_view) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; ECalShellContent *cal_shell_content; ECalendarTable *task_table; ECalModelComponent *comp_data; @@ -189,6 +192,10 @@ action_calendar_taskpad_new_cb (GtkAction *action, CompEditor *editor; GSList *list; + shell_view = E_SHELL_VIEW (cal_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + cal_shell_content = cal_shell_view->priv->cal_shell_content; task_table = e_cal_shell_content_get_task_table (cal_shell_content); @@ -198,7 +205,7 @@ action_calendar_taskpad_new_cb (GtkAction *action, g_slist_free (list); client = comp_data->client; - editor = task_editor_new (client, COMP_EDITOR_NEW_ITEM); + editor = task_editor_new (client, shell, COMP_EDITOR_NEW_ITEM); comp = cal_comp_task_new_with_defaults (client); comp_editor_edit_comp (editor, comp); @@ -560,6 +567,9 @@ void e_cal_shell_view_taskpad_open_task (ECalShellView *cal_shell_view, ECalModelComponent *comp_data) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; CompEditor *editor; CompEditorFlags flags = 0; ECalComponent *comp; @@ -570,6 +580,10 @@ e_cal_shell_view_taskpad_open_task (ECalShellView *cal_shell_view, g_return_if_fail (E_IS_CAL_SHELL_VIEW (cal_shell_view)); g_return_if_fail (E_IS_CAL_MODEL_COMPONENT (comp_data)); + shell_view = E_SHELL_VIEW (cal_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + uid = icalcomponent_get_uid (comp_data->icalcomp); editor = comp_editor_find_instance (uid); @@ -591,7 +605,7 @@ e_cal_shell_view_taskpad_open_task (ECalShellView *cal_shell_view, if (!e_cal_component_has_attendees (comp)) flags |= COMP_EDITOR_USER_ORG; - editor = task_editor_new (comp_data->client, flags); + editor = task_editor_new (comp_data->client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_ref (comp); diff --git a/calendar/modules/e-memo-shell-module.c b/calendar/modules/e-memo-shell-module.c index 873bdb26d0..913d5b3a26 100644 --- a/calendar/modules/e-memo-shell-module.c +++ b/calendar/modules/e-memo-shell-module.c @@ -213,11 +213,15 @@ memo_module_cal_opened_cb (ECal *cal, ECalendarStatus status, GtkAction *action) { + EShell *shell; ECalComponent *comp; CompEditor *editor; CompEditorFlags flags = 0; const gchar *action_name; + /* FIXME Pass this in. */ + shell = e_shell_get_default (); + /* XXX Handle errors better. */ if (status != E_CALENDAR_STATUS_OK) return; @@ -230,7 +234,7 @@ memo_module_cal_opened_cb (ECal *cal, flags |= COMP_EDITOR_USER_ORG; } - editor = memo_editor_new (cal, flags); + editor = memo_editor_new (cal, shell, flags); comp = cal_comp_memo_new_with_defaults (cal); comp_editor_edit_comp (editor, comp); @@ -319,6 +323,7 @@ static gboolean memo_module_handle_uri_cb (EShellModule *shell_module, const gchar *uri) { + EShell *shell; CompEditor *editor; CompEditorFlags flags = 0; ECal *client; @@ -336,6 +341,7 @@ memo_module_handle_uri_cb (EShellModule *shell_module, GError *error = NULL; source_type = E_CAL_SOURCE_TYPE_JOURNAL; + shell = e_shell_module_get_shell (shell_module); if (strncmp (uri, "memo:", 5) != 0) return FALSE; @@ -431,7 +437,7 @@ memo_module_handle_uri_cb (EShellModule *shell_module, if (itip_organizer_is_user (comp, client)) flags |= COMP_EDITOR_USER_ORG; - editor = memo_editor_new (client, flags); + editor = memo_editor_new (client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_unref (comp); diff --git a/calendar/modules/e-memo-shell-view-actions.c b/calendar/modules/e-memo-shell-view-actions.c index 2d0837afc1..d45f74fc38 100644 --- a/calendar/modules/e-memo-shell-view-actions.c +++ b/calendar/modules/e-memo-shell-view-actions.c @@ -335,6 +335,9 @@ static void action_memo_new_cb (GtkAction *action, EMemoShellView *memo_shell_view) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; EMemoShellContent *memo_shell_content; EMemoTable *memo_table; ECalModelComponent *comp_data; @@ -343,6 +346,10 @@ action_memo_new_cb (GtkAction *action, CompEditor *editor; GSList *list; + shell_view = E_SHELL_VIEW (memo_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + memo_shell_content = memo_shell_view->priv->memo_shell_content; memo_table = e_memo_shell_content_get_memo_table (memo_shell_content); @@ -352,7 +359,7 @@ action_memo_new_cb (GtkAction *action, g_slist_free (list); client = comp_data->client; - editor = memo_editor_new (client, COMP_EDITOR_NEW_ITEM); + editor = memo_editor_new (client, shell, COMP_EDITOR_NEW_ITEM); comp = cal_comp_memo_new_with_defaults (client); comp_editor_edit_comp (editor, comp); diff --git a/calendar/modules/e-memo-shell-view-private.c b/calendar/modules/e-memo-shell-view-private.c index 86b959eb03..113def55ad 100644 --- a/calendar/modules/e-memo-shell-view-private.c +++ b/calendar/modules/e-memo-shell-view-private.c @@ -413,6 +413,9 @@ void e_memo_shell_view_open_memo (EMemoShellView *memo_shell_view, ECalModelComponent *comp_data) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; CompEditor *editor; CompEditorFlags flags = 0; ECalComponent *comp; @@ -422,6 +425,10 @@ e_memo_shell_view_open_memo (EMemoShellView *memo_shell_view, g_return_if_fail (E_IS_MEMO_SHELL_VIEW (memo_shell_view)); g_return_if_fail (E_IS_CAL_MODEL_COMPONENT (comp_data)); + shell_view = E_SHELL_VIEW (memo_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + uid = icalcomponent_get_uid (comp_data->icalcomp); editor = comp_editor_find_instance (uid); @@ -438,7 +445,7 @@ e_memo_shell_view_open_memo (EMemoShellView *memo_shell_view, if (itip_organizer_is_user (comp, comp_data->client)) flags |= COMP_EDITOR_USER_ORG; - editor = memo_editor_new (comp_data->client, flags); + editor = memo_editor_new (comp_data->client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_unref (comp); diff --git a/calendar/modules/e-task-shell-module.c b/calendar/modules/e-task-shell-module.c index c92e07ebea..5e35008541 100644 --- a/calendar/modules/e-task-shell-module.c +++ b/calendar/modules/e-task-shell-module.c @@ -213,11 +213,15 @@ task_module_cal_opened_cb (ECal *cal, ECalendarStatus status, GtkAction *action) { + EShell *shell; ECalComponent *comp; CompEditor *editor; CompEditorFlags flags = 0; const gchar *action_name; + /* FIXME Pass this in. */ + shell = e_shell_get_default (); + /* XXX Handle errors better. */ if (status != E_CALENDAR_STATUS_OK) return; @@ -230,7 +234,7 @@ task_module_cal_opened_cb (ECal *cal, flags |= COMP_EDITOR_USER_ORG; } - editor = task_editor_new (cal, flags); + editor = task_editor_new (cal, shell, flags); comp = cal_comp_task_new_with_defaults (cal); comp_editor_edit_comp (editor, comp); @@ -319,6 +323,7 @@ static gboolean task_module_handle_uri_cb (EShellModule *shell_module, const gchar *uri) { + EShell *shell; CompEditor *editor; CompEditorFlags flags = 0; ECal *client; @@ -337,6 +342,7 @@ task_module_handle_uri_cb (EShellModule *shell_module, GError *error = NULL; source_type = E_CAL_SOURCE_TYPE_TODO; + shell = e_shell_module_get_shell (shell_module); if (strncmp (uri, "task:", 5) != 0) return FALSE; @@ -437,7 +443,7 @@ task_module_handle_uri_cb (EShellModule *shell_module, if (!e_cal_component_has_attendees (comp)) flags |= COMP_EDITOR_USER_ORG; - editor = task_editor_new (client, flags); + editor = task_editor_new (client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_unref (comp); diff --git a/calendar/modules/e-task-shell-view-actions.c b/calendar/modules/e-task-shell-view-actions.c index c1810beee5..d924043e5f 100644 --- a/calendar/modules/e-task-shell-view-actions.c +++ b/calendar/modules/e-task-shell-view-actions.c @@ -428,6 +428,9 @@ static void action_task_new_cb (GtkAction *action, ETaskShellView *task_shell_view) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; ETaskShellContent *task_shell_content; ECalendarTable *task_table; ECalModelComponent *comp_data; @@ -436,6 +439,10 @@ action_task_new_cb (GtkAction *action, CompEditor *editor; GSList *list; + shell_view = E_SHELL_VIEW (task_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + task_shell_content = task_shell_view->priv->task_shell_content; task_table = e_task_shell_content_get_task_table (task_shell_content); @@ -445,7 +452,7 @@ action_task_new_cb (GtkAction *action, g_slist_free (list); client = comp_data->client; - editor = task_editor_new (client, COMP_EDITOR_NEW_ITEM); + editor = task_editor_new (client, shell, COMP_EDITOR_NEW_ITEM); comp = cal_comp_task_new_with_defaults (client); comp_editor_edit_comp (editor, comp); diff --git a/calendar/modules/e-task-shell-view-private.c b/calendar/modules/e-task-shell-view-private.c index e1e14b2547..9c6a3a94bb 100644 --- a/calendar/modules/e-task-shell-view-private.c +++ b/calendar/modules/e-task-shell-view-private.c @@ -595,6 +595,9 @@ void e_task_shell_view_open_task (ETaskShellView *task_shell_view, ECalModelComponent *comp_data) { + EShell *shell; + EShellView *shell_view; + EShellWindow *shell_window; CompEditor *editor; CompEditorFlags flags = 0; ECalComponent *comp; @@ -605,6 +608,10 @@ e_task_shell_view_open_task (ETaskShellView *task_shell_view, g_return_if_fail (E_IS_TASK_SHELL_VIEW (task_shell_view)); g_return_if_fail (E_IS_CAL_MODEL_COMPONENT (comp_data)); + shell_view = E_SHELL_VIEW (task_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + shell = e_shell_window_get_shell (shell_window); + uid = icalcomponent_get_uid (comp_data->icalcomp); editor = comp_editor_find_instance (uid); @@ -626,7 +633,7 @@ e_task_shell_view_open_task (ETaskShellView *task_shell_view, if (!e_cal_component_has_attendees (comp)) flags |= COMP_EDITOR_USER_ORG; - editor = task_editor_new (comp_data->client, flags); + editor = task_editor_new (comp_data->client, shell, flags); comp_editor_edit_comp (editor, comp); g_object_ref (comp); -- cgit v1.2.3