From ede8a754351774324424cc1b35f3f9c8806f3935 Mon Sep 17 00:00:00 2001 From: Chenthill Palanisamy Date: Fri, 18 Feb 2005 05:41:06 +0000 Subject: added a boolean variable is_meeting. added a boolean variable 2005-02-18 Chenthill Palanisamy * _EventPagePrivate: added a boolean variable is_meeting. * _TaskPagePrivate: added a boolean variable is_assignment. * gui/dialogs/task-page.h: * gui/dialogs/event-page.h: Added a function to set the is_meeting boolean variable. * gui/dialogs/event-editor.c: (show_meeting): * gui/dialogs/task-editor.c: (show_assignment): Called the function to set the boolean variable. * gui/dialogs/event-page.c: (event_page_init), (event_page_set_meeting), (source_changed_cb): * gui/dialogs/task-page.c: (task_page_init), (task_page_set_assignment), (source_changed_cb): If the source is changed and only if its a group event show the send options frame. * gui/gnome-cal.c: (client_cal_opened_cb): Do not popup the offline error dialog for tasks. svn path=/trunk/; revision=28809 --- calendar/gui/dialogs/event-editor.c | 1 + calendar/gui/dialogs/event-page.c | 11 ++++++++++- calendar/gui/dialogs/event-page.h | 2 +- calendar/gui/dialogs/task-editor.c | 1 + calendar/gui/dialogs/task-page.c | 12 +++++++++++- calendar/gui/dialogs/task-page.h | 1 + calendar/gui/gnome-cal.c | 7 +++---- 7 files changed, 28 insertions(+), 7 deletions(-) (limited to 'calendar/gui') diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c index 2d72dfab06..705b03b9a8 100644 --- a/calendar/gui/dialogs/event-editor.c +++ b/calendar/gui/dialogs/event-editor.c @@ -372,6 +372,7 @@ show_meeting (EventEditor *ee) priv = ee->priv; + event_page_set_meeting (priv->event_page, TRUE); if (!priv->meeting_shown) { comp_editor_append_page (COMP_EDITOR (ee), COMP_EDITOR_PAGE (priv->sched_page), diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c index b421d6ee95..f659ad71fe 100644 --- a/calendar/gui/dialogs/event-page.c +++ b/calendar/gui/dialogs/event-page.c @@ -104,6 +104,7 @@ struct _EventPagePrivate { start timezone is then changed, we updated the end timezone to the same value, since 99% of events start and end in one timezone. */ gboolean sync_timezones; + gboolean is_meeting; }; @@ -178,6 +179,7 @@ event_page_init (EventPage *epage) priv->updating = FALSE; priv->sendoptions_shown = FALSE; + priv->is_meeting = FALSE; priv->sync_timezones = FALSE; } @@ -660,6 +662,13 @@ event_page_show_options (EventPage *page) page->priv->sendoptions_shown = TRUE; } +void +event_page_set_meeting (EventPage *page, gboolean set) +{ + g_return_if_fail (IS_EVENT_PAGE (page)); + + page->priv->is_meeting = set; +} /* fill_widgets handler for the event page */ static gboolean @@ -1676,7 +1685,7 @@ source_changed_cb (GtkWidget *widget, ESource *source, gpointer data) comp_editor_notify_client_changed ( COMP_EDITOR (gtk_widget_get_toplevel (priv->main)), client); - if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS)) + if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS) && priv->is_meeting) event_page_show_options (epage); else event_page_hide_options (epage); diff --git a/calendar/gui/dialogs/event-page.h b/calendar/gui/dialogs/event-page.h index 3659fe5d2d..30b84a1621 100644 --- a/calendar/gui/dialogs/event-page.h +++ b/calendar/gui/dialogs/event-page.h @@ -55,7 +55,7 @@ EventPage *event_page_construct (EventPage *epage); EventPage *event_page_new (void); void event_page_show_options (EventPage *page); void event_page_hide_options (EventPage *page); - +void event_page_set_meeting (EventPage *page, gboolean set); G_END_DECLS diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index f7d56b3671..e0709201fe 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -352,6 +352,7 @@ show_assignment (TaskEditor *te) priv = te->priv; + task_page_set_assignment (priv->task_page, TRUE); if (!priv->assignment_shown) { comp_editor_append_page (COMP_EDITOR (te), COMP_EDITOR_PAGE (priv->meet_page), diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c index f1fd4fea1b..48128c4099 100644 --- a/calendar/gui/dialogs/task-page.c +++ b/calendar/gui/dialogs/task-page.c @@ -78,6 +78,7 @@ struct _TaskPagePrivate { gboolean updating; gboolean sendoptions_shown; + gboolean is_assignment; ESendOptionsDialog *sod; }; @@ -153,6 +154,7 @@ task_page_init (TaskPage *tpage) priv->updating = FALSE; priv->sendoptions_shown = FALSE; + priv->is_assignment = FALSE; } /* Destroy handler for the task page */ @@ -292,6 +294,14 @@ task_page_show_options (TaskPage *page) page->priv->sendoptions_shown = TRUE; } +void +task_page_set_assignment (TaskPage *page, gboolean set) +{ + g_return_if_fail (IS_TASK_PAGE (page)); + + page->priv->is_assignment = set; +} + /* fill_widgets handler for the task page */ static gboolean task_page_fill_widgets (CompEditorPage *page, ECalComponent *comp) @@ -873,7 +883,7 @@ source_changed_cb (GtkWidget *widget, ESource *source, gpointer data) comp_editor_notify_client_changed ( COMP_EDITOR (gtk_widget_get_toplevel (priv->main)), client); - if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS)) + if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS) && priv->is_assignment) task_page_show_options (tpage); else task_page_hide_options (tpage); diff --git a/calendar/gui/dialogs/task-page.h b/calendar/gui/dialogs/task-page.h index 0b2a98a950..9a061a141b 100644 --- a/calendar/gui/dialogs/task-page.h +++ b/calendar/gui/dialogs/task-page.h @@ -54,6 +54,7 @@ TaskPage *task_page_construct (TaskPage *epage); TaskPage *task_page_new (void); void task_page_show_options (TaskPage *page); void task_page_hide_options (TaskPage *page); +void task_page_set_assignment (TaskPage *page, gboolean set); diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index f2805061a9..3a85a4a89f 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -2170,7 +2170,6 @@ client_cal_opened_cb (ECal *ecal, ECalendarStatus status, GnomeCalendar *gcal) ECalSourceType source_type; ESource *source; char *msg; - const char *id; int i; priv = gcal->priv; @@ -2180,11 +2179,9 @@ client_cal_opened_cb (ECal *ecal, ECalendarStatus status, GnomeCalendar *gcal) switch (source_type) { case E_CAL_SOURCE_TYPE_EVENT: - id = "calendar:prompt-no-contents-offline-calendar"; e_calendar_view_set_status_message (E_CALENDAR_VIEW (priv->week_view), NULL); break; case E_CAL_SOURCE_TYPE_TODO: - id = "calendar:prompt-no-contents-offline-tasks"; e_calendar_table_set_status_message (E_CALENDAR_TABLE (priv->todo), NULL); break; default: @@ -2200,7 +2197,9 @@ client_cal_opened_cb (ECal *ecal, ECalendarStatus status, GnomeCalendar *gcal) status = E_CALENDAR_STATUS_OK; break; case E_CALENDAR_STATUS_REPOSITORY_OFFLINE: - e_error_run (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gcal))), id, NULL); + if (source_type == E_CAL_SOURCE_TYPE_EVENT) + e_error_run (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (gcal))), + "calendar:prompt-no-contents-offline-calendar", NULL); default: /* Make sure the source doesn't disappear on us */ g_object_ref (source); -- cgit