aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog10
-rw-r--r--calendar/gui/calendar-component.c5
-rw-r--r--calendar/gui/gnome-cal.c86
3 files changed, 37 insertions, 64 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 73ab017f4b..0efffee750 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,13 @@
+2003-10-23 <jpr@ximian.com>
+
+ * gui/gnome-cal.c (gnome_calendar_get_current_view_widget): just
+ uses the views array and the current view type
+ (setup_widgets): ditto
+ (set_view): ditto
+ (backend_died_cb): ditto
+ (gnome_calendar_get_calendar_model): ditto
+ (gnome_calendar_update_config_settings): ditto
+
2003-10-23 Rodrigo Moya <rodrigo@ximian.com>
* gui/e-day-view.c: accept also text/calendar for D&D.
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c
index 0ea1cf29e8..d617cd5e80 100644
--- a/calendar/gui/calendar-component.c
+++ b/calendar/gui/calendar-component.c
@@ -47,6 +47,8 @@ struct _CalendarComponentPrivate {
GConfClient *gconf_client;
ESourceList *source_list;
+
+ GnomeCalendar *calendar;
};
@@ -155,6 +157,7 @@ impl_createControls (PortableServer_Servant servant,
BonoboControl *sidebar_control;
BonoboControl *view_control;
+ /* Create sidebar selector */
selector = e_source_selector_new (calendar_component->priv->source_list);
gtk_widget_show (selector);
@@ -168,6 +171,8 @@ impl_createControls (PortableServer_Servant servant,
sidebar_control = bonobo_control_new (selector_scrolled_window);
+ /* Create main calendar view */
+
view_control = control_factory_new_control ();
g_signal_connect_object (selector, "selection_changed",
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 19f9a59415..b576365172 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -430,31 +430,10 @@ GtkWidget*
gnome_calendar_get_current_view_widget (GnomeCalendar *gcal)
{
GnomeCalendarPrivate *priv;
- GtkWidget *retval = NULL;
priv = gcal->priv;
- switch (priv->current_view_type) {
- case GNOME_CAL_DAY_VIEW:
- retval = priv->day_view;
- break;
- case GNOME_CAL_WORK_WEEK_VIEW:
- retval = priv->work_week_view;
- break;
- case GNOME_CAL_WEEK_VIEW:
- retval = priv->week_view;
- break;
- case GNOME_CAL_MONTH_VIEW:
- retval = priv->month_view;
- break;
- case GNOME_CAL_LIST_VIEW:
- retval = priv->list_view;
- break;
- default:
- g_assert_not_reached ();
- }
-
- return retval;
+ return GTK_WIDGET (priv->views[priv->current_view_type]);
}
/* Gets the focus location based on who is the focused widget within the
@@ -851,7 +830,8 @@ setup_widgets (GnomeCalendar *gcal)
GtkWidget *w;
gchar *filename;
ETable *etable;
-
+ int i;
+
priv = gcal->priv;
priv->search_bar = cal_search_bar_new ();
@@ -928,10 +908,6 @@ setup_widgets (GnomeCalendar *gcal)
/* The Day View. */
priv->day_view = e_day_view_new ();
- e_cal_view_set_calendar (E_CAL_VIEW (priv->day_view), gcal);
- gtk_widget_show (priv->day_view);
- gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
- priv->day_view, gtk_label_new (""));
g_signal_connect (priv->day_view, "selection_changed",
G_CALLBACK (view_selection_changed_cb), gcal);
@@ -943,20 +919,12 @@ setup_widgets (GnomeCalendar *gcal)
TRUE);
e_day_view_set_days_shown (E_DAY_VIEW (priv->work_week_view), 5);
e_cal_view_set_calendar (E_CAL_VIEW (priv->work_week_view), gcal);
- gtk_widget_show (priv->work_week_view);
- gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
- priv->work_week_view, gtk_label_new (""));
- g_signal_connect (priv->work_week_view, "selection_changed",
- G_CALLBACK (view_selection_changed_cb), gcal);
connect_day_view_focus (gcal, E_DAY_VIEW (priv->work_week_view));
/* The Week View. */
priv->week_view = e_week_view_new ();
e_cal_view_set_calendar (E_CAL_VIEW (priv->week_view), gcal);
- gtk_widget_show (priv->week_view);
- gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
- priv->week_view, gtk_label_new (""));
g_signal_connect (priv->week_view, "selection_changed",
G_CALLBACK (view_selection_changed_cb), gcal);
@@ -966,9 +934,6 @@ setup_widgets (GnomeCalendar *gcal)
priv->month_view = e_week_view_new ();
e_cal_view_set_calendar (E_CAL_VIEW (priv->month_view), gcal);
e_week_view_set_multi_week_view (E_WEEK_VIEW (priv->month_view), TRUE);
- gtk_widget_show (priv->month_view);
- gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
- priv->month_view, gtk_label_new (""));
g_signal_connect (priv->month_view, "selection_changed",
G_CALLBACK (view_selection_changed_cb), gcal);
@@ -980,9 +945,6 @@ setup_widgets (GnomeCalendar *gcal)
g_free (filename);
e_cal_view_set_calendar (E_CAL_VIEW (priv->list_view), gcal);
- gtk_widget_show (priv->list_view);
- gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
- priv->list_view, gtk_label_new (""));
connect_list_view_focus (gcal, E_CAL_LIST_VIEW (priv->list_view));
@@ -992,6 +954,13 @@ setup_widgets (GnomeCalendar *gcal)
priv->views[GNOME_CAL_MONTH_VIEW] = E_CAL_VIEW (priv->month_view);
priv->views[GNOME_CAL_LIST_VIEW] = E_CAL_VIEW (priv->list_view);
+ for (i = 0; i < GNOME_CAL_LAST_VIEW; i++) {
+ gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
+ GTK_WIDGET (priv->views[i]), gtk_label_new (""));
+
+ gtk_widget_show (GTK_WIDGET (priv->views[i]));
+ }
+
gnome_calendar_update_config_settings (gcal, TRUE);
}
@@ -1393,7 +1362,6 @@ set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type,
{
GnomeCalendarPrivate *priv;
gboolean round_selection;
- GtkWidget *focus_widget;
const char *view_id;
static gboolean updating = FALSE;
@@ -1403,12 +1371,10 @@ set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type,
priv = gcal->priv;
round_selection = FALSE;
- focus_widget = NULL;
switch (view_type) {
case GNOME_CAL_DAY_VIEW:
view_id = "Day_View";
- focus_widget = priv->day_view;
if (!range_selected)
e_day_view_set_days_shown (E_DAY_VIEW (priv->day_view), 1);
@@ -1417,18 +1383,15 @@ set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type,
case GNOME_CAL_WORK_WEEK_VIEW:
view_id = "Work_Week_View";
- focus_widget = priv->work_week_view;
break;
case GNOME_CAL_WEEK_VIEW:
view_id = "Week_View";
- focus_widget = priv->week_view;
round_selection = TRUE;
break;
case GNOME_CAL_MONTH_VIEW:
view_id = "Month_View";
- focus_widget = priv->month_view;
if (!range_selected)
e_week_view_set_weeks_shown (E_WEEK_VIEW (priv->month_view), 5);
@@ -1438,7 +1401,6 @@ set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type,
case GNOME_CAL_LIST_VIEW:
view_id = "List_View";
- focus_widget = priv->list_view;
break;
default:
@@ -1450,8 +1412,6 @@ set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type,
priv->current_view_type = view_type;
priv->range_selected = range_selected;
- g_assert (focus_widget != NULL);
-
calendar_config_set_default_view (view_type);
updating = TRUE;
@@ -1461,7 +1421,7 @@ set_view (GnomeCalendar *gcal, GnomeCalendarViewType view_type,
updating = FALSE;
if (grab_focus)
- gtk_widget_grab_focus (focus_widget);
+ gtk_widget_grab_focus (GTK_WIDGET (priv->views[view_type]));
gnome_calendar_set_pane_positions (gcal);
@@ -1944,6 +1904,7 @@ backend_died_cb (CalClient *client, gpointer data)
gcal = GNOME_CALENDAR (data);
priv = gcal->priv;
+ /* FIXME This doesn't remove the calendar from the list or anything */
uristr = get_uri_without_password (cal_client_get_uri (client));
if (client == priv->task_pad_client) {
message = g_strdup_printf (_("The task backend for\n%s\n has crashed. "
@@ -1952,14 +1913,15 @@ backend_died_cb (CalClient *client, gpointer data)
uristr);
e_calendar_table_set_status_message (E_CALENDAR_TABLE (priv->todo), NULL);
} else {
+ int i;
+
message = g_strdup_printf (_("The calendar backend for\n%s\n has crashed. "
"You will have to restart Evolution in order "
"to use it again"),
uristr);
- e_cal_view_set_status_message (E_CAL_VIEW (priv->day_view), NULL);
- e_cal_view_set_status_message (E_CAL_VIEW (priv->work_week_view), NULL);
- e_cal_view_set_status_message (E_CAL_VIEW (priv->week_view), NULL);
- e_cal_view_set_status_message (E_CAL_VIEW (priv->month_view), NULL);
+
+ for (i = 0; i < GNOME_CAL_LAST_VIEW; i++)
+ e_cal_view_set_status_message (priv->views[i], NULL);
}
gnome_error_dialog_parented (message, GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gcal))));
@@ -2048,8 +2010,7 @@ gnome_calendar_get_calendar_model (GnomeCalendar *gcal)
priv = gcal->priv;
- return e_cal_view_get_model (
- gnome_calendar_get_current_view_widget (gcal));
+ return e_cal_view_get_model (priv->views[priv->current_view_type]);
}
/**
@@ -2268,7 +2229,8 @@ gnome_calendar_update_config_settings (GnomeCalendar *gcal,
gboolean use_24_hour, show_event_end, compress_weekend;
char *location;
GList *l;
-
+ int i;
+
g_return_if_fail (GNOME_IS_CALENDAR (gcal));
priv = gcal->priv;
@@ -2359,11 +2321,8 @@ gnome_calendar_update_config_settings (GnomeCalendar *gcal,
priv->zone, NULL);
}
- e_cal_view_set_timezone (E_CAL_VIEW (priv->day_view), priv->zone);
- e_cal_view_set_timezone (E_CAL_VIEW (priv->work_week_view), priv->zone);
- e_cal_view_set_timezone (E_CAL_VIEW (priv->week_view), priv->zone);
- e_cal_view_set_timezone (E_CAL_VIEW (priv->month_view), priv->zone);
- e_cal_view_set_timezone (E_CAL_VIEW (priv->list_view), priv->zone);
+ for (i = 0; i < GNOME_CAL_LAST_VIEW; i++)
+ e_cal_view_set_timezone (E_CAL_VIEW (priv->views[i]), priv->zone);
if (initializing) {
priv->hpane_pos = calendar_config_get_hpane_pos ();
@@ -2378,7 +2337,6 @@ gnome_calendar_update_config_settings (GnomeCalendar *gcal,
gnome_calendar_notify_dates_shown_changed (gcal);
}
-
void
gnome_calendar_set_selected_time_range (GnomeCalendar *gcal,
time_t start_time,