aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/modules
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/modules')
-rw-r--r--calendar/modules/Makefile.am2
-rw-r--r--calendar/modules/e-cal-shell-module-migrate.c15
-rw-r--r--calendar/modules/e-cal-shell-module-settings.c59
-rw-r--r--calendar/modules/e-cal-shell-module-settings.h33
-rw-r--r--calendar/modules/e-cal-shell-module.c33
-rw-r--r--calendar/modules/e-cal-shell-sidebar.c29
-rw-r--r--calendar/modules/e-cal-shell-view-memopad.c18
-rw-r--r--calendar/modules/e-cal-shell-view-private.c9
-rw-r--r--calendar/modules/e-cal-shell-view-taskpad.c18
-rw-r--r--calendar/modules/e-memo-shell-module.c10
-rw-r--r--calendar/modules/e-memo-shell-view-actions.c9
-rw-r--r--calendar/modules/e-memo-shell-view-private.c9
-rw-r--r--calendar/modules/e-task-shell-module.c10
-rw-r--r--calendar/modules/e-task-shell-view-actions.c9
-rw-r--r--calendar/modules/e-task-shell-view-private.c9
15 files changed, 248 insertions, 24 deletions
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 <http://www.gnu.org/licenses/>
+ *
+ *
+ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
+ *
+ */
+
+#include "e-cal-shell-module-settings.h"
+
+#include <gconf/gconf-client.h>
+
+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 <http://www.gnu.org/licenses/>
+ *
+ *
+ * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
+ *
+ */
+
+#ifndef E_CAL_SHELL_MODULE_SETTINGS_H
+#define E_CAL_SHELL_MODULE_SETTINGS_H
+
+#include <shell/e-shell.h>
+
+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);