diff options
author | Federico Mena Quintero <federico@ximian.com> | 2001-01-17 18:44:33 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2001-01-17 18:44:33 +0800 |
commit | 0932fd7ec9d21e763371a043283384af8bc987fb (patch) | |
tree | dbfd7dcaf49fd667712a6408eae165bd201c3219 /calendar/gui/calendar-summary.c | |
parent | ff6098b51168decc542245a215056dc6219ebd69 (diff) | |
download | gsoc2013-evolution-0932fd7ec9d21e763371a043283384af8bc987fb.tar.gz gsoc2013-evolution-0932fd7ec9d21e763371a043283384af8bc987fb.tar.zst gsoc2013-evolution-0932fd7ec9d21e763371a043283384af8bc987fb.zip |
Ximianified email addresses and copyrights.
2001-01-17 Federico Mena Quintero <federico@ximian.com>
* */*: Ximianified email addresses and copyrights.
* idl/evolution-calendar.idl (CalFactory::open): Renamed from
::load(), and added an only_if_exists argument.
(CalFactory::create): Removed method.
(Listener::OpenStatus): Removed the IN_USE error and replaced it
with a NOT_FOUND one; renamed the enum from LoadStatus.
(Listener::notifyCalOpened): Renamed from notifyCalLoaded().
* pcs/cal-backend.h (CalBackend): Removed the uri field.
(CalBackendOpenStatus): Renamed from CalBackendLoadStatus and
added a NOT_FOUND value.
(CalBackendClass::open): Put in a slot for the open method.
* pcs/cal-backend.c (cal_backend_create): Removed function.
* pcs/cal-backend-file.c (cal_backend_file_open): Return the
appropriate value when only_if_exists is TRUE.
(create_cal): We are Ximian now, so set the PRODID property to
the appropriate foo.
* pcs/cal-factory.c (CalFactory_open): implemented, replacing
CalFactory_load() and CalFactory_create().
(CalFactory_open): Moved the queue_load_create_job() stuff to
here, since we now only need to contemplate the open case instead
of load/create ones.
(open_backend): Do everything here; replaces load_backend() and
create_backend().
* cal-client/cal-listener.h (CalListenerClass::cal_opened):
Renamed from cal_loaded.
(CalListenerClass): Replaced the silly signals, which are
gratuitous abstraction, by a set of function pointers in the
instance structure.
* cal-client/cal-listener.c (cal_listener_get_calendar): Removed
unused function.
(cal_listener_construct): Added the listener notification functions.
(cal_listener_new): Ditto.
(Listener_notifyCalOpened): Renamed to our new naming convention
for servant implementations.
(Listener_notifyObjUpdated): Ditto.
(Listener_notifyObjRemoved): Ditto.
* cal-client/cal-client.h (CalClientOpenStatus): Renamed from
CalClientLoadStatus.
(CalClientClass::cal_opened): Renamed from ::cal_loaded().
(CalClientLoadState): New enum; basically make LoadState public so
that users of this code do not have to maintain their own states.
* cal-client/cal-client.c (cal_client_create_calendar): Removed
function.
(cal_client_open_calendar): Moved the functionality over from
load_or_create(); now we do everything here.
(*): Use the CalClientLoadState enum values instead of the old
LoadState values.
(cal_client_get_load_state): Renamed from cal_client_is_loaded(),
and return the appropriate value.
(CalClientPrivate): Added an uri field.
(cal_client_init): Initialize priv->uri.
(cal_client_destroy): Free the priv->uri.
(cal_opened_cb): Maintain the priv->uri.
(cal_client_open_calendar): Fill in the priv->uri.
(cal_client_get_uri): New function.
* gui/calendar-model.c (calendar_model_set_new_comp_vtype): New
function to configure the type of calendar components to create
when doing click-to-add. This makes the model usable for
something other than task lists.
(calendar_model_get_new_comp_vtype): New function.
* gui/e-calendar-table.c (e_calendar_table_get_model): New function.
(e_calendar_table_destroy): Unref the subset_model.
* gui/gnome-cal.h (GnomeCalendarOpenMode): Removed enum.
* gui/gnome-cal.c (LoadState): Removed enum; we now use the
CalClientLoadState from the client objects.
(GnomeCalendarPrivate): Removed the loading_uri and
task_pad_loading_uri fields as well as the load_state and
task_pad_load_state fields, as we can now query them directly from
the CalClient.
(open_error): Renamed from load_error().
(create_error): Removed function.
(gnome_calendar_open): Do not take in the mode parameter.
(cal_opened_cb): Get rid of our beautifully-crafted state machine
and replace it with simple code; all the loading smarts are in the
Wombat now.
(setup_widgets): Set the new component vtype of the table model to
CAL_COMPONENT_TODO.
* gui/Makefile.am (evolution_calendar_SOURCES): Removed
gnome-month-item.[ch] from the list of sources.
* gui/calendar-summary.c (CalSummary): Removed unused cal_loaded
field.
(create_summary_view): Do not check if the file exists; this is
the job of the Wombat.
(generate_html_summary): Fixed prototype.
(alarm_fn): Fixed prototype.
(property_dialog): Fixed prototype. Wonder if/how this ever
worked.
(create_summary_view): Cast the component and view as
appropriate. Removed unused html variable.
[Iain dude, are you compiling with -Wall?]
* gui/e-itip-control.c (cal_opened_cb): Sigh, this function
signature was *very* wrong. It was using CalClientGetStatus
instead of CalClientOpenStatus.
* gui/e-tasks.h (ETasksOpenMode): Removed enum.
* gui/e-tasks.c (setup_widgets): Set the new component vtype of
the table model to CAL_COMPONENT_TODO.
(LoadState): Removed the state machine foo.
(e_tasks_open): Removed the mode parameter.
(initial_load): Removed function.
(create_error): Removed function.
(ETasksPrivate): Removed folder_uri field.
(cal_opened_cb): Remove the state machine.
* gui/component-factory.c: #include "tasks-control.h"
* conduits/calendar/calendar-conduit.h (ECalConduitContext):
Removed calendar_load_tried field.
* conduits/calendar/calendar-conduit.c (start_calendar_server_cb):
Sigh, fixed function prototype.
* conduits/todo/todo-conduit.h (EToDoConduitContext): Removed
calendar_load_tried field.
* conduits/todo/todo-conduit.c (start_calendar_server_cb): Fixed
function prototype.
svn path=/trunk/; revision=7571
Diffstat (limited to 'calendar/gui/calendar-summary.c')
-rw-r--r-- | calendar/gui/calendar-summary.c | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/calendar/gui/calendar-summary.c b/calendar/gui/calendar-summary.c index 08ad225a43..76db68463e 100644 --- a/calendar/gui/calendar-summary.c +++ b/calendar/gui/calendar-summary.c @@ -1,9 +1,10 @@ /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ /* calendar-summary.c * - * Authors: Iain Holmes <iain@helixcode.com> + * Authors: Iain Holmes <iain@ximian.com> * * Copyright (C) 2000 Helix Code, Inc. + * Copyright (C) 2000 Ximian, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -40,6 +41,7 @@ #include "cal-util/cal-component.h" #include "cal-util/timeutil.h" +#include "alarm.h" #include "calendar-model.h" #include "calendar-summary.h" @@ -49,7 +51,6 @@ typedef struct { ExecutiveSummaryHtmlView *view; BonoboPropertyControl *property_control; CalClient *client; - gboolean cal_loaded; GtkWidget *show_appointments; GtkWidget *show_tasks; @@ -77,12 +78,15 @@ static BonoboGenericFactory *factory; #define CALENDAR_SUMMARY_ID "OAFIID:GNOME_Evolution_Calendar_Summary_ComponentFactory" static gboolean -generate_html_summary (CalSummary *summary) +generate_html_summary (gpointer data) { + CalSummary *summary; time_t t, day_begin, day_end; struct tm *timeptr; GList *uids, *l; char *ret_html, *tmp, *datestr; + + summary = data; t = time (NULL); day_begin = time_day_begin (t); @@ -279,33 +283,33 @@ obj_removed_cb (CalClient *client, summary->idle = g_idle_add (generate_html_summary, summary); } + static void -cal_loaded_cb (CalClient *client, - CalClientLoadStatus status, +cal_opened_cb (CalClient *client, + CalClientOpenStatus status, CalSummary *summary) { switch (status) { - case CAL_CLIENT_LOAD_SUCCESS: - summary->cal_loaded = TRUE; - + case CAL_CLIENT_OPEN_SUCCESS: if (summary->idle != 0) return; summary->idle = g_idle_add (generate_html_summary, summary); break; - case CAL_CLIENT_LOAD_ERROR: + case CAL_CLIENT_OPEN_ERROR: executive_summary_html_view_set_html (summary->view, _("<b>Error loading calendar</b>")); break; - case CAL_CLIENT_LOAD_IN_USE: - executive_summary_html_view_set_html (summary->view, - _("<b>Error loading calendar:<br>Calendar in use.")); - + case CAL_CLIENT_OPEN_NOT_FOUND: + /* We did not use only_if_exists when opening the calendar, so + * this should not happen. + */ + g_assert_not_reached (); break; - case CAL_CLIENT_LOAD_METHOD_NOT_SUPPORTED: + case CAL_CLIENT_OPEN_METHOD_NOT_SUPPORTED: executive_summary_html_view_set_html (summary->view, _("<b>Error loading calendar:<br>Method not supported")); break; @@ -314,13 +318,17 @@ cal_loaded_cb (CalClient *client, break; } } + static void alarm_fn (gpointer alarm_id, time_t old_t, - CalSummary *summary) + gpointer data) { + CalSummary *summary; time_t t, day_end; + summary = data; + /* Remove the old alarm, and start a new one for the next midnight */ alarm_remove (alarm_id); @@ -464,10 +472,10 @@ property_dialog_changed (GtkWidget *widget, bonobo_property_control_changed (summary->property_control, NULL); } -static void +static BonoboControl * property_dialog (BonoboPropertyControl *property_control, int page_num, - gpointer user_data) + void *user_data) { BonoboControl *control; CalSummary *summary = (CalSummary *) user_data; @@ -530,7 +538,7 @@ create_summary_view (ExecutiveSummaryComponentFactory *_factory, BonoboPropertyControl *property_control; BonoboEventSource *event_source; CalSummary *summary; - char *html, *file; + char *file; time_t t, day_end; file = g_concat_dir_and_file (evolution_dir, "local/Calendar/calendar.ics"); @@ -539,11 +547,10 @@ create_summary_view (ExecutiveSummaryComponentFactory *_factory, component = executive_summary_component_new (); summary = g_new (CalSummary, 1); - summary->component = component; + summary->component = EXECUTIVE_SUMMARY_COMPONENT (component); summary->icon = g_strdup ("evolution-calendar.png"); summary->title = g_strdup ("Things to do"); summary->client = cal_client_new (); - summary->cal_loaded = FALSE; summary->idle = 0; summary->appointments = TRUE; summary->tasks = TRUE; @@ -552,17 +559,12 @@ create_summary_view (ExecutiveSummaryComponentFactory *_factory, day_end = time_day_end (t); summary->alarm = alarm_add (day_end, alarm_fn, summary, NULL); - /* Check for calendar files */ - if (!g_file_exists (file)) { - cal_client_create_calendar (summary->client, file); - } - /* Load calendar */ - cal_client_load_calendar (summary->client, file); + cal_client_open_calendar (summary->client, file, FALSE); g_free (file); - gtk_signal_connect (GTK_OBJECT (summary->client), "cal-loaded", - GTK_SIGNAL_FUNC (cal_loaded_cb), summary); + gtk_signal_connect (GTK_OBJECT (summary->client), "cal-opened", + GTK_SIGNAL_FUNC (cal_opened_cb), summary); gtk_signal_connect (GTK_OBJECT (summary->client), "obj-updated", GTK_SIGNAL_FUNC (obj_updated_cb), summary); gtk_signal_connect (GTK_OBJECT (summary->client), "obj-removed", @@ -575,7 +577,7 @@ create_summary_view (ExecutiveSummaryComponentFactory *_factory, /* HTML view */ view = executive_summary_html_view_new_full (event_source); - summary->view = view; + summary->view = EXECUTIVE_SUMMARY_HTML_VIEW (view); executive_summary_html_view_set_html (EXECUTIVE_SUMMARY_HTML_VIEW (view), _("Loading Calendar")); |