diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-08-08 09:43:09 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-08-09 09:03:18 +0800 |
commit | 3b0699fc304d0f4aecb261d19869de221f5d6abf (patch) | |
tree | eb434f85371c9d5ae75a8425fc622c31e08baa5b /modules/calendar/e-memo-shell-view-private.c | |
parent | 65695ae516532a4b6e129a0703b1056a3996de0c (diff) | |
download | gsoc2013-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.c | 37 |
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); +} |