aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/dialogs/event-editor.c1
-rw-r--r--calendar/gui/dialogs/event-page.c11
-rw-r--r--calendar/gui/dialogs/event-page.h2
-rw-r--r--calendar/gui/dialogs/task-editor.c1
-rw-r--r--calendar/gui/dialogs/task-page.c12
-rw-r--r--calendar/gui/dialogs/task-page.h1
-rw-r--r--calendar/gui/gnome-cal.c7
7 files changed, 28 insertions, 7 deletions
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);