diff options
author | JP Rosevear <jpr@ximian.com> | 2003-03-05 06:27:52 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2003-03-05 06:27:52 +0800 |
commit | 3911413b09fda188e7cf13a1d25422b0722e102f (patch) | |
tree | c421cbfb46bb488c39c331d2330e9e5da5e84235 /calendar/gui | |
parent | ee4b08496dd5863d166e229c33d68f3c1176064a (diff) | |
download | gsoc2013-evolution-3911413b09fda188e7cf13a1d25422b0722e102f.tar.gz gsoc2013-evolution-3911413b09fda188e7cf13a1d25422b0722e102f.tar.zst gsoc2013-evolution-3911413b09fda188e7cf13a1d25422b0722e102f.zip |
Fixes #37881
2003-02-11 JP Rosevear <jpr@ximian.com>
Fixes #37881
* gui/e-meeting-model.c (process_section): if the attendee is the
empty string, try to get the email
svn path=/trunk/; revision=20161
Diffstat (limited to 'calendar/gui')
-rw-r--r-- | calendar/gui/calendar-offline-handler.c | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/calendar/gui/calendar-offline-handler.c b/calendar/gui/calendar-offline-handler.c index 694ade9882..97b015d970 100644 --- a/calendar/gui/calendar-offline-handler.c +++ b/calendar/gui/calendar-offline-handler.c @@ -146,7 +146,7 @@ backend_cal_set_mode (CalClient *client, CalClientSetModeStatus status, CalMode } static void -backend_cal_opened (CalClient *client, CalClientOpenStatus status, gpointer data) +backend_cal_opened_offline (CalClient *client, CalClientOpenStatus status, gpointer data) { CalendarOfflineHandler *offline_handler = data; @@ -161,6 +161,19 @@ backend_cal_opened (CalClient *client, CalClientOpenStatus status, gpointer data } static void +backend_cal_opened_online (CalClient *client, CalClientOpenStatus status, gpointer data) +{ + CalendarOfflineHandler *offline_handler = data; + + if (status != CAL_CLIENT_OPEN_SUCCESS) { + gtk_object_unref (GTK_OBJECT (client)); + return; + } + + cal_client_set_mode (client, CAL_MODE_REMOTE); +} + +static void backend_go_offline (gpointer data, gpointer user_data) { CalendarOfflineHandler *offline_handler = user_data; @@ -169,7 +182,7 @@ backend_go_offline (gpointer data, gpointer user_data) gboolean success; client = cal_client_new (); - g_signal_connect (client, "cal_opened", G_CALLBACK (backend_cal_opened), offline_handler); + g_signal_connect (client, "cal_opened", G_CALLBACK (backend_cal_opened_offline), offline_handler); success = cal_client_open_calendar (client, uri, TRUE); if (!success) { update_offline (offline_handler); @@ -179,6 +192,24 @@ backend_go_offline (gpointer data, gpointer user_data) } static void +backend_go_online (gpointer data, gpointer user_data) +{ + CalendarOfflineHandler *offline_handler = user_data; + char *uri = data; + CalClient *client; + gboolean success; + + client = cal_client_new (); + gtk_signal_connect (GTK_OBJECT (client), "cal_opened", + backend_cal_opened_online, offline_handler); + success = cal_client_open_calendar (client, uri, TRUE); + if (!success) { + gtk_object_unref (GTK_OBJECT (client)); + return; + } +} + +static void impl_goOffline (PortableServer_Servant servant, const GNOME_Evolution_OfflineProgressListener progress_listener, CORBA_Environment *ev) @@ -204,9 +235,14 @@ impl_goOnline (PortableServer_Servant servant, { CalendarOfflineHandler *offline_handler; CalendarOfflineHandlerPrivate *priv; + GList *uris; offline_handler = CALENDAR_OFFLINE_HANDLER (bonobo_object_from_servant (servant)); priv = offline_handler->priv; + + uris = cal_client_uri_list (priv->client, CAL_MODE_LOCAL); + + g_list_foreach (uris, backend_go_online, offline_handler); } /* GObject methods. */ |