diff options
author | Milan Crha <mcrha@redhat.com> | 2009-01-19 21:56:42 +0800 |
---|---|---|
committer | Milan Crha <mcrha@src.gnome.org> | 2009-01-19 21:56:42 +0800 |
commit | 2be7cd3b2ab50047820da4a1e873785b53f41acd (patch) | |
tree | 50f07aacdc49a27e040e8470ad57e6fa21bdead5 /plugins/itip-formatter/itip-view.c | |
parent | ae26a9a5fb34beb48e4161c8f145b0fb2d3cb3a9 (diff) | |
download | gsoc2013-evolution-2be7cd3b2ab50047820da4a1e873785b53f41acd.tar gsoc2013-evolution-2be7cd3b2ab50047820da4a1e873785b53f41acd.tar.gz gsoc2013-evolution-2be7cd3b2ab50047820da4a1e873785b53f41acd.tar.bz2 gsoc2013-evolution-2be7cd3b2ab50047820da4a1e873785b53f41acd.tar.lz gsoc2013-evolution-2be7cd3b2ab50047820da4a1e873785b53f41acd.tar.xz gsoc2013-evolution-2be7cd3b2ab50047820da4a1e873785b53f41acd.tar.zst gsoc2013-evolution-2be7cd3b2ab50047820da4a1e873785b53f41acd.zip |
** Fix for bug #225712
2009-01-19 Milan Crha <mcrha@redhat.com>
** Fix for bug #225712
* calendar/gui/dialogs/comp-editor.h: (CompEditorClass::send_comp),
(comp_editor_send_comp): Changed function prototypes.
* calendar/gui/dialogs/comp-editor.c: (real_send_comp), (save_comp_with_send),
(comp_editor_send_comp): Strip alarms based on user's choice.
* calendar/gui/dialogs/send-comp.h: (send_component_dialog):
* calendar/gui/dialogs/send-comp.c: (have_nonprocedural_alarm),
(send_component_dialog): Show option "Send my alarms with this event"
when prompting to send event or not, but only if have any non-procedure
alarms and if it the caller want to know user's opinion. Default is
to strip all alarms. Procedure alarms are always strip out.
* calendar/gui/dialogs/event-editor.c: (event_editor_send_comp):
* calendar/gui/dialogs/task-editor.c: (task_editor_send_comp):
Honor function prototype changes and use new parameter strip_alarms.
* calendar/gui/itip-utils.h: (itip_send_comp):
* calendar/gui/itip-utils.c: (comp_compliant), (itip_send_comp),
(reply_to_calendar_comp):
New parameter to strip all alarms or only procedure alarms.
* calendar/gui/tasks-control.c: (tasks_control_forward_cmd):
* calendar/gui/e-itip-control.c: (send_item), (send_freebusy), (ok_clicked_cb):
* calendar/gui/e-calendar-table.c: (e_calendar_table_on_forward):
* calendar/gui/e-memo-table.c: (e_memo_table_on_forward):
* calendar/gui/e-calendar-view.c: (e_calendar_view_cut_clipboard),
(delete_event), (e_calendar_view_delete_selected_occurrence),
(on_forward):
Always strip alarms when sending component.
* calendar/gui/e-calendar-view.c: (e_calendar_view_add_event),
(e_calendar_view_modify_and_send):
* calendar/gui/e-cal-model-calendar.c: (ecmc_set_value_at):
Strip alarms based on user's choice.
* plugins/itip-formatter/itip-view.h:
* plugins/itip-formatter/itip-view.c: (itip_view_set_show_keep_alarm_check),
(itip_view_get_keep_alarm_check_state),
(itip_view_set_show_inherit_alarm_check),
(itip_view_get_inherit_alarm_check_state): New functions to new
options to either inherit reminder from the incoming event or to
preserve users reminders in already existing event in the calendar.
* plugins/itip-formatter/itip-view.c: (struct _ItipViewPrivate), (alarm_check_toggled_cb),
(itip_view_init): Properly initialize new option's members.
* plugins/itip-formatter/itip-formatter.c: (find_cal_opened_cb), (update_item),
(send_comp_to_attendee), (update_attendee_status), (send_item),
(extract_itip_data), (view_response_cb), (format_itip_object):
Setup new options based on the actual data.
svn path=/trunk/; revision=37097
Diffstat (limited to 'plugins/itip-formatter/itip-view.c')
-rw-r--r-- | plugins/itip-formatter/itip-view.c | 77 |
1 files changed, 75 insertions, 2 deletions
diff --git a/plugins/itip-formatter/itip-view.c b/plugins/itip-formatter/itip-view.c index 92a8460e48..8c36da53d3 100644 --- a/plugins/itip-formatter/itip-view.c +++ b/plugins/itip-formatter/itip-view.c @@ -121,6 +121,8 @@ struct _ItipViewPrivate { GtkWidget *options_box; GtkWidget *free_time_check; + GtkWidget *keep_alarm_check; + GtkWidget *inherit_alarm_check; GtkWidget *button_box; gboolean buttons_sensitive; @@ -947,6 +949,18 @@ recur_toggled_cb (GtkWidget *widget, gpointer data) itip_view_set_mode (view, priv->mode); } +/* + alarm_check_toggled_cb + check1 was changed, so make the second available based on state of the first check. +*/ +static void +alarm_check_toggled_cb (GtkWidget *check1, GtkWidget *check2) +{ + g_return_if_fail (check1 != NULL); + g_return_if_fail (check2 != NULL); + + gtk_widget_set_sensitive (check2, !(GTK_WIDGET_VISIBLE (check1) && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check1)))); +} static void itip_view_init (ItipView *view) @@ -1119,6 +1133,17 @@ itip_view_init (ItipView *view) priv->free_time_check = gtk_check_button_new_with_mnemonic (_("Show time as _free")); gtk_box_pack_start (GTK_BOX (priv->options_box), priv->free_time_check, FALSE, FALSE, 0); + priv->keep_alarm_check = gtk_check_button_new_with_mnemonic (_("_Preserve my reminder")); + /* default value is to keep user's alarms */ + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->priv->keep_alarm_check), TRUE); + gtk_box_pack_start (GTK_BOX (priv->options_box), priv->keep_alarm_check, FALSE, FALSE, 0); + + priv->inherit_alarm_check = gtk_check_button_new_with_mnemonic (_("_Inherit reminder")); + gtk_box_pack_start (GTK_BOX (priv->options_box), priv->inherit_alarm_check, FALSE, FALSE, 0); + + g_signal_connect (priv->keep_alarm_check, "toggled", G_CALLBACK (alarm_check_toggled_cb), priv->inherit_alarm_check); + g_signal_connect (priv->inherit_alarm_check, "toggled", G_CALLBACK (alarm_check_toggled_cb), priv->keep_alarm_check); + /* The buttons for actions */ priv->button_box = gtk_hbutton_box_new (); gtk_button_box_set_layout (GTK_BUTTON_BOX (priv->button_box), GTK_BUTTONBOX_START); @@ -2118,7 +2143,7 @@ itip_view_set_show_recur_check (ItipView *view, gboolean show) if (show) gtk_widget_show (view->priv->recur_check); - else { + else { gtk_widget_hide (view->priv->recur_check); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->priv->recur_check), FALSE); } @@ -2132,7 +2157,7 @@ itip_view_set_show_free_time_check (ItipView *view, gboolean show) if (show) gtk_widget_show (view->priv->free_time_check); - else { + else { gtk_widget_hide (view->priv->free_time_check); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->priv->free_time_check), FALSE); } @@ -2145,3 +2170,51 @@ itip_view_get_free_time_check_state (ItipView *view) return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (view->priv->free_time_check)); } + +void +itip_view_set_show_keep_alarm_check (ItipView *view, gboolean show) +{ + g_return_if_fail (view != NULL); + g_return_if_fail (ITIP_IS_VIEW (view)); + + if (show) + gtk_widget_show (view->priv->keep_alarm_check); + else + gtk_widget_hide (view->priv->keep_alarm_check); + + /* and update state of the second check */ + alarm_check_toggled_cb (view->priv->keep_alarm_check, view->priv->inherit_alarm_check); +} + +gboolean +itip_view_get_keep_alarm_check_state (ItipView *view) +{ + g_return_val_if_fail (view != NULL, FALSE); + + return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (view->priv->keep_alarm_check)); +} + +void +itip_view_set_show_inherit_alarm_check (ItipView *view, gboolean show) +{ + g_return_if_fail (view != NULL); + g_return_if_fail (ITIP_IS_VIEW (view)); + + if (show) + gtk_widget_show (view->priv->inherit_alarm_check); + else { + gtk_widget_hide (view->priv->inherit_alarm_check); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->priv->inherit_alarm_check), FALSE); + } + + /* and update state of the second check */ + alarm_check_toggled_cb (view->priv->inherit_alarm_check, view->priv->keep_alarm_check); +} + +gboolean +itip_view_get_inherit_alarm_check_state (ItipView *view) +{ + g_return_val_if_fail (view != NULL, FALSE); + + return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (view->priv->inherit_alarm_check)); +} |