aboutsummaryrefslogtreecommitdiffstats
path: root/modules/calendar/e-memo-shell-view-private.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-08-08 09:43:09 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-08-09 09:03:18 +0800
commit3b0699fc304d0f4aecb261d19869de221f5d6abf (patch)
treeeb434f85371c9d5ae75a8425fc622c31e08baa5b /modules/calendar/e-memo-shell-view-private.c
parent65695ae516532a4b6e129a0703b1056a3996de0c (diff)
downloadgsoc2013-evolution-3b0699fc304d0f4aecb261d19869de221f5d6abf.tar
gsoc2013-evolution-3b0699fc304d0f4aecb261d19869de221f5d6abf.tar.gz
gsoc2013-evolution-3b0699fc304d0f4aecb261d19869de221f5d6abf.tar.bz2
gsoc2013-evolution-3b0699fc304d0f4aecb261d19869de221f5d6abf.tar.lz
gsoc2013-evolution-3b0699fc304d0f4aecb261d19869de221f5d6abf.tar.xz
gsoc2013-evolution-3b0699fc304d0f4aecb261d19869de221f5d6abf.tar.zst
gsoc2013-evolution-3b0699fc304d0f4aecb261d19869de221f5d6abf.zip
More refactoring of settings management.
Diffstat (limited to 'modules/calendar/e-memo-shell-view-private.c')
-rw-r--r--modules/calendar/e-memo-shell-view-private.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/calendar/e-memo-shell-view-private.c b/modules/calendar/e-memo-shell-view-private.c
index 4953a388d3..da321d5c19 100644
--- a/modules/calendar/e-memo-shell-view-private.c
+++ b/modules/calendar/e-memo-shell-view-private.c
@@ -67,6 +67,7 @@ memo_shell_view_selector_client_added_cb (EMemoShellView *memo_shell_view,
model = e_memo_table_get_model (memo_table);
e_cal_model_add_client (model, client);
+ e_memo_shell_view_update_timezone (memo_shell_view);
}
static void
@@ -198,6 +199,11 @@ e_memo_shell_view_private_constructed (EMemoShellView *memo_shell_view)
selector = e_memo_shell_sidebar_get_selector (memo_shell_sidebar);
g_signal_connect_swapped (
+ model, "notify::timezone",
+ G_CALLBACK (e_memo_shell_view_update_timezone),
+ memo_shell_view);
+
+ g_signal_connect_swapped (
memo_table, "open-component",
G_CALLBACK (e_memo_shell_view_open_memo),
memo_shell_view);
@@ -269,6 +275,7 @@ e_memo_shell_view_private_constructed (EMemoShellView *memo_shell_view)
e_memo_shell_view_actions_init (memo_shell_view);
e_memo_shell_view_update_sidebar (memo_shell_view);
e_memo_shell_view_update_search_filter (memo_shell_view);
+ e_memo_shell_view_update_timezone (memo_shell_view);
e_memo_shell_view_execute_search (memo_shell_view);
}
@@ -522,3 +529,33 @@ e_memo_shell_view_update_sidebar (EMemoShellView *memo_shell_view)
g_string_free (string, TRUE);
}
+
+void
+e_memo_shell_view_update_timezone (EMemoShellView *memo_shell_view)
+{
+ EMemoShellContent *memo_shell_content;
+ EMemoShellSidebar *memo_shell_sidebar;
+ ECalComponentPreview *memo_preview;
+ icaltimezone *timezone;
+ ECalModel *model;
+ GList *clients, *iter;
+
+ memo_shell_content = memo_shell_view->priv->memo_shell_content;
+ memo_preview = e_memo_shell_content_get_memo_preview (memo_shell_content);
+ model = e_memo_shell_content_get_memo_model (memo_shell_content);
+ timezone = e_cal_model_get_timezone (model);
+
+ memo_shell_sidebar = memo_shell_view->priv->memo_shell_sidebar;
+ clients = e_memo_shell_sidebar_get_clients (memo_shell_sidebar);
+
+ for (iter = clients; iter != NULL; iter = iter->next) {
+ ECal *client = iter->data;
+
+ if (e_cal_get_load_state (client) == E_CAL_LOAD_LOADED)
+ e_cal_set_default_timezone (client, timezone, NULL);
+ }
+
+ e_cal_component_preview_set_default_timezone (memo_preview, timezone);
+
+ g_list_free (clients);
+}