Add CAL_STATIC_CAPABILITY_NO_THISANDFUTURE and
* cal-util/cal-util.h: Add CAL_STATIC_CAPABILITY_NO_THISANDFUTURE and CAL_STATIC_CAPABILITY_NO_THISANDPRIOR * gui/dialogs/recur-comp.c (recur_component_dialog): Add a CalClient argument. Use cal_client_get_static_capability to decide whether or not to offer THISANDFUTURE and THISANDPRIOR options * gui/dialogs/comp-editor.c (prompt_to_save_changes, save_cmd, save_close_cmd): Pass a CalClient to recur_component_dialog. * gui/e-day-view.c (e_day_view_finish_long_event_resize, e_day_view_finish_resize, e_day_view_on_editing_stopped, e_day_view_on_top_canvas_drag_data_received, e_day_view_on_main_canvas_drag_data_received): Likewise * gui/e-week-view.c (e_week_view_on_editing_stopped): Likewise * gui/calendar-component.c (impl_createControls): set an exception if we fail, so evo won't crash. svn path=/trunk/; revision=23152
This commit is contained in:
@ -1,3 +1,25 @@
|
||||
2003-10-31 Dan Winship <danw@ximian.com>
|
||||
|
||||
* cal-util/cal-util.h: Add CAL_STATIC_CAPABILITY_NO_THISANDFUTURE
|
||||
and CAL_STATIC_CAPABILITY_NO_THISANDPRIOR
|
||||
|
||||
* gui/dialogs/recur-comp.c (recur_component_dialog): Add a
|
||||
CalClient argument. Use cal_client_get_static_capability to decide
|
||||
whether or not to offer THISANDFUTURE and THISANDPRIOR options
|
||||
|
||||
* gui/dialogs/comp-editor.c (prompt_to_save_changes, save_cmd,
|
||||
save_close_cmd): Pass a CalClient to recur_component_dialog.
|
||||
|
||||
* gui/e-day-view.c (e_day_view_finish_long_event_resize,
|
||||
e_day_view_finish_resize, e_day_view_on_editing_stopped,
|
||||
e_day_view_on_top_canvas_drag_data_received,
|
||||
e_day_view_on_main_canvas_drag_data_received): Likewise
|
||||
|
||||
* gui/e-week-view.c (e_week_view_on_editing_stopped): Likewise
|
||||
|
||||
* gui/calendar-component.c (impl_createControls): set an exception
|
||||
if we fail, so evo won't crash.
|
||||
|
||||
2003-10-31 Rodrigo Moya <rodrigo@ximian.com>
|
||||
|
||||
* gui/e-calendar-table.c (e_calendar_table_show_popup_menu): fixed
|
||||
@ -62,11 +84,6 @@
|
||||
|
||||
* gui/e-date-edit-config.[hc]: config manager for e-date-edit
|
||||
|
||||
2003-10-29 Dan Winship <danw@ximian.com>
|
||||
|
||||
* gui/calendar-component.c (impl_createControls): set an exception
|
||||
if we fail, so evo won't crash.
|
||||
|
||||
2003-10-29 JP Rosevear <jpr@ximian.com>
|
||||
|
||||
* gui/dialogs/cal-prefs-dialog.c (update_config): no need to
|
||||
|
@ -115,6 +115,8 @@ gboolean cal_util_event_dates_match (icalcomponent *icalcomp1, icalcomponent *ic
|
||||
#define CAL_STATIC_CAPABILITY_NO_EMAIL_ALARMS "no-email-alarms"
|
||||
#define CAL_STATIC_CAPABILITY_NO_PROCEDURE_ALARMS "no-procedure-alarms"
|
||||
#define CAL_STATIC_CAPABILITY_NO_TASK_ASSIGNMENT "no-task-assignment"
|
||||
#define CAL_STATIC_CAPABILITY_NO_THISANDFUTURE "no-thisandfuture"
|
||||
#define CAL_STATIC_CAPABILITY_NO_THISANDPRIOR "no-thisandprior"
|
||||
#define CAL_STATIC_CAPABILITY_NO_TRANSPARENCY "no-transparency"
|
||||
#define CAL_STATIC_CAPABILITY_ONE_ALARM_ONLY "one-alarm-only"
|
||||
#define CAL_STATIC_CAPABILITY_ORGANIZER_MUST_ATTEND "organizer-must-attend"
|
||||
|
@ -403,7 +403,7 @@ prompt_to_save_changes (CompEditor *editor, gboolean send)
|
||||
switch (save_component_dialog (GTK_WINDOW (editor))) {
|
||||
case GTK_RESPONSE_YES: /* Save */
|
||||
if (cal_component_is_instance (priv->comp))
|
||||
if (!recur_component_dialog (priv->comp, &priv->mod, GTK_WINDOW (editor)))
|
||||
if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor)))
|
||||
return FALSE;
|
||||
|
||||
if (send && save_comp_with_send (editor))
|
||||
@ -1235,7 +1235,7 @@ save_cmd (GtkWidget *widget, gpointer data)
|
||||
commit_all_fields (editor);
|
||||
|
||||
if (cal_component_is_instance (priv->comp))
|
||||
if (!recur_component_dialog (priv->comp, &priv->mod, GTK_WINDOW (editor)))
|
||||
if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor)))
|
||||
return;
|
||||
|
||||
save_comp_with_send (editor);
|
||||
@ -1252,7 +1252,7 @@ save_close_cmd (GtkWidget *widget, gpointer data)
|
||||
commit_all_fields (editor);
|
||||
|
||||
if (cal_component_is_instance (priv->comp))
|
||||
if (!recur_component_dialog (priv->comp, &priv->mod, GTK_WINDOW (editor)))
|
||||
if (!recur_component_dialog (priv->client, priv->comp, &priv->mod, GTK_WINDOW (editor)))
|
||||
return;
|
||||
|
||||
if (save_comp_with_send (editor))
|
||||
|
@ -32,12 +32,13 @@
|
||||
|
||||
|
||||
gboolean
|
||||
recur_component_dialog (CalComponent *comp,
|
||||
recur_component_dialog (CalClient *client,
|
||||
CalComponent *comp,
|
||||
CalObjModType *mod,
|
||||
GtkWindow *parent)
|
||||
{
|
||||
char *str;
|
||||
GtkWidget *dialog, *rb1, *rb2, *rb3, *hbox;
|
||||
GtkWidget *dialog, *rb_this, *rb_prior, *rb_future, *rb_all, *hbox;
|
||||
CalComponentVType vtype;
|
||||
gboolean ret;
|
||||
|
||||
@ -69,23 +70,35 @@ recur_component_dialog (CalComponent *comp,
|
||||
|
||||
hbox = gtk_hbox_new (FALSE, 2);
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox);
|
||||
rb1 = gtk_radio_button_new_with_label (NULL, _("This Instance Only"));
|
||||
gtk_container_add (GTK_CONTAINER (hbox), rb1);
|
||||
rb_this = gtk_radio_button_new_with_label (NULL, _("This Instance Only"));
|
||||
gtk_container_add (GTK_CONTAINER (hbox), rb_this);
|
||||
|
||||
rb2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (rb1), _("This and Future Instances"));
|
||||
gtk_container_add (GTK_CONTAINER (hbox), rb2);
|
||||
rb3 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (rb1), _("All Instances"));
|
||||
gtk_container_add (GTK_CONTAINER (hbox), rb3);
|
||||
if (!cal_client_get_static_capability (client, CAL_STATIC_CAPABILITY_NO_THISANDPRIOR)) {
|
||||
rb_prior = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (rb_this), _("This and Prior Instances"));
|
||||
gtk_container_add (GTK_CONTAINER (hbox), rb_prior);
|
||||
} else
|
||||
rb_prior = NULL;
|
||||
|
||||
if (!cal_client_get_static_capability (client, CAL_STATIC_CAPABILITY_NO_THISANDFUTURE)) {
|
||||
rb_future = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (rb_this), _("This and Future Instances"));
|
||||
gtk_container_add (GTK_CONTAINER (hbox), rb_future);
|
||||
} else
|
||||
rb_future = NULL;
|
||||
|
||||
rb_all = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (rb_this), _("All Instances"));
|
||||
gtk_container_add (GTK_CONTAINER (hbox), rb_all);
|
||||
|
||||
gtk_widget_show_all (hbox);
|
||||
|
||||
ret = gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK;
|
||||
|
||||
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rb1)))
|
||||
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rb_this)))
|
||||
*mod = CALOBJ_MOD_THIS;
|
||||
else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rb2)))
|
||||
else if (rb_prior && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rb_prior)))
|
||||
*mod = CALOBJ_MOD_THISANDPRIOR;
|
||||
else if (rb_future && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rb_future)))
|
||||
*mod = CALOBJ_MOD_THISANDFUTURE;
|
||||
else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rb3)))
|
||||
else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (rb_all)))
|
||||
*mod = CALOBJ_MOD_ALL;
|
||||
|
||||
gtk_widget_destroy (dialog);
|
||||
|
@ -22,10 +22,12 @@
|
||||
#define RECUR_COMP_H
|
||||
|
||||
#include <gtk/gtkwindow.h>
|
||||
#include <cal-client/cal-client.h>
|
||||
#include <cal-util/cal-component.h>
|
||||
#include <cal-util/cal-util.h>
|
||||
|
||||
gboolean recur_component_dialog (CalComponent *comp,
|
||||
gboolean recur_component_dialog (CalClient *client,
|
||||
CalComponent *comp,
|
||||
CalObjModType *mod,
|
||||
GtkWindow *parent);
|
||||
|
||||
|
@ -3755,7 +3755,7 @@ e_day_view_finish_long_event_resize (EDayView *day_view)
|
||||
}
|
||||
|
||||
if (cal_component_has_recurrences (comp)) {
|
||||
if (!recur_component_dialog (comp, &mod, NULL)) {
|
||||
if (!recur_component_dialog (client, comp, &mod, NULL)) {
|
||||
gtk_widget_queue_draw (day_view->top_canvas);
|
||||
goto out;
|
||||
}
|
||||
@ -3838,7 +3838,7 @@ e_day_view_finish_resize (EDayView *day_view)
|
||||
day_view->resize_drag_pos = E_CAL_VIEW_POS_NONE;
|
||||
|
||||
if (cal_component_has_recurrences (comp)) {
|
||||
if (!recur_component_dialog (comp, &mod, NULL)) {
|
||||
if (!recur_component_dialog (client, comp, &mod, NULL)) {
|
||||
gtk_widget_queue_draw (day_view->top_canvas);
|
||||
goto out;
|
||||
}
|
||||
@ -5657,6 +5657,7 @@ e_day_view_on_editing_stopped (EDayView *day_view,
|
||||
gchar *text = NULL;
|
||||
CalComponentText summary;
|
||||
CalComponent *comp;
|
||||
CalClient *client;
|
||||
gboolean on_server;
|
||||
|
||||
/* Note: the item we are passed here isn't reliable, so we just stop
|
||||
@ -5703,7 +5704,8 @@ e_day_view_on_editing_stopped (EDayView *day_view,
|
||||
comp = cal_component_new ();
|
||||
cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
|
||||
|
||||
on_server = cal_comp_is_on_server (comp, event->comp_data->client);
|
||||
client = event->comp_data->client;
|
||||
on_server = cal_comp_is_on_server (comp, client);
|
||||
|
||||
if (string_is_empty (text) && !on_server) {
|
||||
const char *uid;
|
||||
@ -5734,24 +5736,24 @@ e_day_view_on_editing_stopped (EDayView *day_view,
|
||||
cal_component_set_summary (comp, &summary);
|
||||
|
||||
if (!on_server) {
|
||||
if (!cal_client_create_object (event->comp_data->client, icalcomp, NULL, NULL))
|
||||
if (!cal_client_create_object (client, icalcomp, NULL, NULL))
|
||||
g_message (G_STRLOC ": Could not create the object!");
|
||||
} else {
|
||||
CalObjModType mod = CALOBJ_MOD_ALL;
|
||||
GtkWindow *toplevel;
|
||||
if (cal_component_has_recurrences (comp)) {
|
||||
if (!recur_component_dialog (comp, &mod, NULL)) {
|
||||
if (!recur_component_dialog (client, comp, &mod, NULL)) {
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
/* FIXME When sending here, what exactly should we send? */
|
||||
toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (day_view)));
|
||||
if (cal_client_modify_object (event->comp_data->client, icalcomp, mod, NULL)) {
|
||||
if (itip_organizer_is_user (comp, event->comp_data->client)
|
||||
&& send_component_dialog (toplevel, event->comp_data->client, comp, FALSE))
|
||||
if (cal_client_modify_object (client, icalcomp, mod, NULL)) {
|
||||
if (itip_organizer_is_user (comp, client)
|
||||
&& send_component_dialog (toplevel, client, comp, FALSE))
|
||||
itip_send_comp (CAL_COMPONENT_METHOD_REQUEST, comp,
|
||||
event->comp_data->client, NULL);
|
||||
client, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6850,7 +6852,7 @@ e_day_view_on_top_canvas_drag_data_received (GtkWidget *widget,
|
||||
gnome_canvas_item_show (event->canvas_item);
|
||||
|
||||
if (cal_component_has_recurrences (comp)) {
|
||||
if (!recur_component_dialog (comp, &mod, NULL))
|
||||
if (!recur_component_dialog (client, comp, &mod, NULL))
|
||||
return;
|
||||
}
|
||||
|
||||
@ -7044,7 +7046,7 @@ e_day_view_on_main_canvas_drag_data_received (GtkWidget *widget,
|
||||
gnome_canvas_item_show (event->canvas_item);
|
||||
|
||||
if (cal_component_has_recurrences (comp)) {
|
||||
if (!recur_component_dialog (comp, &mod, NULL)) {
|
||||
if (!recur_component_dialog (client, comp, &mod, NULL)) {
|
||||
g_object_unref (comp);
|
||||
return;
|
||||
}
|
||||
|
@ -2988,6 +2988,7 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
|
||||
gchar *text = NULL;
|
||||
CalComponent *comp;
|
||||
CalComponentText summary;
|
||||
CalClient *client;
|
||||
const char *uid;
|
||||
gboolean on_server;
|
||||
|
||||
@ -3020,7 +3021,8 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
|
||||
comp = cal_component_new ();
|
||||
cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
|
||||
|
||||
on_server = cal_comp_is_on_server (comp, event->comp_data->client);
|
||||
client = event->comp_data->client;
|
||||
on_server = cal_comp_is_on_server (comp, client);
|
||||
|
||||
if (string_is_empty (text) && !on_server) {
|
||||
const char *uid;
|
||||
@ -3048,25 +3050,25 @@ e_week_view_on_editing_stopped (EWeekView *week_view,
|
||||
cal_component_set_summary (comp, &summary);
|
||||
|
||||
if (!on_server) {
|
||||
if (!cal_client_create_object (event->comp_data->client, icalcomp, NULL, NULL))
|
||||
if (!cal_client_create_object (client, icalcomp, NULL, NULL))
|
||||
g_message (G_STRLOC ": Could not create the object!");
|
||||
} else {
|
||||
CalObjModType mod = CALOBJ_MOD_ALL;
|
||||
GtkWindow *toplevel;
|
||||
|
||||
if (cal_component_has_recurrences (comp)) {
|
||||
if (!recur_component_dialog (comp, &mod, NULL)) {
|
||||
if (!recur_component_dialog (client, comp, &mod, NULL)) {
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
/* FIXME When sending here, what exactly should we send? */
|
||||
toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (week_view)));
|
||||
if (cal_client_modify_object (event->comp_data->client, icalcomp, mod, NULL)) {
|
||||
if (itip_organizer_is_user (comp, event->comp_data->client)
|
||||
&& send_component_dialog (toplevel, event->comp_data->client, comp, FALSE))
|
||||
if (cal_client_modify_object (client, icalcomp, mod, NULL)) {
|
||||
if (itip_organizer_is_user (comp, client)
|
||||
&& send_component_dialog (toplevel, client, comp, FALSE))
|
||||
itip_send_comp (CAL_COMPONENT_METHOD_REQUEST, comp,
|
||||
event->comp_data->client, NULL);
|
||||
client, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user