diff options
Diffstat (limited to 'calendar/gui/gnome-cal.c')
-rw-r--r-- | calendar/gui/gnome-cal.c | 63 |
1 files changed, 51 insertions, 12 deletions
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 4db534611d..7e685dcf91 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -47,13 +47,13 @@ #include <widgets/menus/gal-view-etable.h> #include <widgets/menus/gal-define-views-dialog.h> #include "widgets/menus/gal-view-menus.h" +#include "e-util/e-util.h" #include "e-util/e-error.h" #include "e-util/e-util-private.h" #include "e-comp-editor-registry.h" #include "dialogs/delete-error.h" #include "dialogs/event-editor.h" #include "comp-util.h" -#include "e-calendar-marshal.h" #include "e-cal-model-calendar.h" #include "e-day-view.h" #include "e-day-view-config.h" @@ -295,9 +295,10 @@ gnome_calendar_class_init (GnomeCalendarClass *class) G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeCalendarClass, source_added), NULL, NULL, - e_calendar_marshal_VOID__INT_OBJECT, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + e_marshal_VOID__INT_OBJECT, + G_TYPE_NONE, + 2, + G_TYPE_INT, G_TYPE_OBJECT); gnome_calendar_signals[SOURCE_REMOVED] = g_signal_new ("source_removed", @@ -305,9 +306,10 @@ gnome_calendar_class_init (GnomeCalendarClass *class) G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GnomeCalendarClass, source_removed), NULL, NULL, - e_calendar_marshal_VOID__INT_OBJECT, - G_TYPE_NONE, 1, - G_TYPE_OBJECT); + e_marshal_VOID__INT_OBJECT, + G_TYPE_NONE, + 2, + G_TYPE_INT, G_TYPE_OBJECT); gnome_calendar_signals[GOTO_DATE] = g_signal_new ("goto_date", @@ -1033,11 +1035,6 @@ set_timezone (GnomeCalendar *calendar) e_cal_set_default_timezone (client, priv->zone, NULL); } - if (priv->default_client[i] - && e_cal_get_load_state (priv->default_client[i]) == E_CAL_LOAD_LOADED) - /* FIXME Error checking */ - e_cal_set_default_timezone (priv->default_client[i], priv->zone, NULL); - if (priv->views [priv->current_view_type]) e_calendar_view_set_timezone (priv->views [priv->current_view_type], priv->zone); } @@ -1527,6 +1524,8 @@ setup_widgets (GnomeCalendar *gcal) e_cal_model_set_default_time_func (e_memo_table_get_model (E_MEMO_TABLE (priv->memo)), gc_get_default_time, gcal); + e_cal_model_set_default_time_func (e_memo_table_get_model (E_MEMO_TABLE (priv->memo)), gc_get_default_time, gcal); + update_memo_view (gcal); } @@ -1544,6 +1543,9 @@ gnome_calendar_init (GnomeCalendar *gcal) if (non_intrusive_error_table == NULL) non_intrusive_error_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); + if (non_intrusive_error_table == NULL) + non_intrusive_error_table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); + e_categories_register_change_listener (G_CALLBACK (categories_changed_cb), gcal); priv->todo_update_lock = g_mutex_new (); @@ -1666,6 +1668,8 @@ gnome_calendar_destroy (GtkObject *object) g_mutex_free (priv->todo_update_lock); + g_mutex_free (priv->todo_update_lock); + g_free (priv); gcal->priv = NULL; } @@ -2138,6 +2142,41 @@ non_intrusive_error_remove(GtkWidget *w, void *data) g_hash_table_remove(non_intrusive_error_table, data); } +struct _mclient_msg { + Message header; + ECalModel *model; + ECal *client; +}; + +static void +add_mclient_async (struct _mclient_msg *msg) +{ + e_cal_model_add_client (msg->model, msg->client); + + g_object_unref (msg->client); + g_object_unref (msg->model); + g_slice_free (struct _mclient_msg, msg); +} + +static void +add_mclient (ECalModel *model, ECal *client) +{ + struct _mclient_msg *msg; + + msg = g_slice_new0 (struct _mclient_msg); + msg->header.func = (MessageFunc) add_mclient_async; + msg->model = g_object_ref (model); + msg->client = g_object_ref (client); + + message_push ((Message *) msg); +} + +static void +non_intrusive_error_remove(GtkWidget *w, void *data) +{ + g_hash_table_remove(non_intrusive_error_table, data); +} + static void client_cal_opened_cb (ECal *ecal, ECalendarStatus status, GnomeCalendar *gcal) { |