diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 15 | ||||
-rw-r--r-- | calendar/gui/alarm-notify/alarm-notify-dialog.c | 67 | ||||
-rw-r--r-- | calendar/gui/alarm-notify/alarm-notify.glade | 4 | ||||
-rw-r--r-- | calendar/gui/comp-editor-factory.c | 9 |
4 files changed, 75 insertions, 20 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index b1843f6cfc..5c5211afad 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,17 @@ +2005-08-12 Viren.L <lviren@novell.com> + + Fixes #310338 + * gui/alarm-notify-dialog.c:(notified_alarms_dialog_new), + (edit_pressed_cb),(snooze_pressed_cb),(dialog_response_cb): + Get the widget and connected "pressed" signal. + Removed AN_ALARM_EDIT and AN_ALARM_SNOOZE enums. + Removed check of these enums in dialog_response_cb and + moved the code to it's associated call backs. + * gui/alarm-notify/alarm-notify.glade: + Changed the button name to button-edit and button-snooze. + * gui/comp-editor-factory.c: (edit_existing): + Added CompEditorFlags and used to invoke event_editor_new. + 2005-08-11 Carsten Guenther <carsten.guenther@scalix.com> * gui/dialogs/comp-editor.c: (get_attachment_list), @@ -7,7 +21,6 @@ (set_attachment_list): Fixed how mime filename gets extracted from attachments pathname. - 2005-08-10 Tor Lillqvist <tml@novell.com> * importers/Makefile.am: Use privsolib instead of privlib (they diff --git a/calendar/gui/alarm-notify/alarm-notify-dialog.c b/calendar/gui/alarm-notify/alarm-notify-dialog.c index 3b81bad8f1..6c7f4b3d1f 100644 --- a/calendar/gui/alarm-notify/alarm-notify-dialog.c +++ b/calendar/gui/alarm-notify/alarm-notify-dialog.c @@ -27,6 +27,7 @@ #include <gtk/gtkdialog.h> #include <gtk/gtkimage.h> #include <gtk/gtklabel.h> +#include <gtk/gtkbutton.h> #include <gtk/gtkspinbutton.h> #include <gtk/gtksignal.h> #include <gtk/gtkscrolledwindow.h> @@ -81,11 +82,6 @@ typedef struct { } AlarmNotify; -enum { - AN_RESPONSE_EDIT = 0, - AN_RESPONSE_SNOOZE = 1 -}; - static void @@ -94,7 +90,11 @@ tree_selection_changed_cb (GtkTreeSelection *selection, gpointer data); static void fill_in_labels (AlarmNotify *an, const gchar *summary, const gchar *description, const gchar *location, time_t occur_start, time_t occur_end); +static void +edit_pressed_cb (GtkButton *button, gpointer user_data); +static void +snooze_pressed_cb (GtkButton *button, gpointer user_data); AlarmNotify *an = NULL; @@ -120,7 +120,6 @@ an_update_minutes_label (GtkSpinButton *sb, gpointer data) static void dialog_response_cb (GtkDialog *dialog, guint response_id, gpointer user_data) { - int snooze_timeout; AlarmNotify *an = user_data; GtkTreeIter iter; GtkTreeModel *model = NULL; @@ -133,22 +132,52 @@ dialog_response_cb (GtkDialog *dialog, guint response_id, gpointer user_data) g_return_if_fail (funcinfo); switch (response_id) { - case AN_RESPONSE_EDIT: - (* funcinfo->func) (ALARM_NOTIFY_EDIT, -1, funcinfo->func_data); - break; - case AN_RESPONSE_SNOOZE: - snooze_timeout = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (an->snooze_time)); - (* funcinfo->func) (ALARM_NOTIFY_SNOOZE, snooze_timeout, funcinfo->func_data); - break; case GTK_RESPONSE_CLOSE: case GTK_RESPONSE_DELETE_EVENT: (* funcinfo->func) (ALARM_NOTIFY_CLOSE, -1, funcinfo->func_data); break; } - + return; } +static void +edit_pressed_cb (GtkButton *button, gpointer user_data) +{ + AlarmNotify *an = user_data; + AlarmFuncInfo *funcinfo = NULL; + GtkTreeIter iter; + GtkTreeModel *model = NULL; + GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (an->treeview)); + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) + gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1); + + g_return_if_fail (funcinfo); + + (* funcinfo->func) (ALARM_NOTIFY_EDIT, -1, funcinfo->func_data); +} + +static void +snooze_pressed_cb (GtkButton *button, gpointer user_data) +{ + int snooze_timeout; + AlarmNotify *an = user_data; + GtkTreeIter iter; + GtkTreeModel *model = NULL; + AlarmFuncInfo *funcinfo = NULL; + GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (an->treeview)); + + if (gtk_tree_selection_get_selected (selection, &model, &iter)) + gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1); + + g_return_if_fail (funcinfo); + + snooze_timeout = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (an->snooze_time)); + (* funcinfo->func) (ALARM_NOTIFY_SNOOZE, snooze_timeout, funcinfo->func_data); + +} + static void dialog_destroyed_cb (GtkWidget *dialog, gpointer user_data) { @@ -166,6 +195,8 @@ dialog_destroyed_cb (GtkWidget *dialog, gpointer user_data) AlarmNotificationsDialog * notified_alarms_dialog_new (void) { + GtkWidget *edit_btn; + GtkWidget *snooze_btn; GtkWidget *image; char *icon_path; GList *icon_list; @@ -201,9 +232,11 @@ notified_alarms_dialog_new (void) an->location = glade_xml_get_widget (an->xml, "location-label"); an->treeview = glade_xml_get_widget (an->xml, "appointments-treeview"); an->scrolledwindow = glade_xml_get_widget (an->xml, "treeview-scrolledwindow"); + snooze_btn = glade_xml_get_widget (an->xml, "snooze-button"); + edit_btn = glade_xml_get_widget (an->xml, "edit-button"); if (!(an->dialog && an->scrolledwindow && an->treeview && an->snooze_time - && an->description && an->location)) { + && an->description && an->location && edit_btn && snooze_btn)) { g_message ("alarm_notify_dialog(): Could not find all widgets in Glade file!"); g_object_unref (an->xml); g_free (an); @@ -232,7 +265,9 @@ notified_alarms_dialog_new (void) icon_path = e_icon_factory_get_icon_filename ("stock_alarm", E_ICON_SIZE_DIALOG); gtk_image_set_from_file (GTK_IMAGE (image), icon_path); g_free (icon_path); - + + g_signal_connect (edit_btn, "pressed", G_CALLBACK (edit_pressed_cb), an); + g_signal_connect (snooze_btn, "pressed", G_CALLBACK (snooze_pressed_cb), an); g_signal_connect (G_OBJECT (an->dialog), "response", G_CALLBACK (dialog_response_cb), an); g_signal_connect (G_OBJECT (an->dialog), "destroy", G_CALLBACK (dialog_destroyed_cb), an); diff --git a/calendar/gui/alarm-notify/alarm-notify.glade b/calendar/gui/alarm-notify/alarm-notify.glade index c459f789e1..a258714bb9 100644 --- a/calendar/gui/alarm-notify/alarm-notify.glade +++ b/calendar/gui/alarm-notify/alarm-notify.glade @@ -326,7 +326,7 @@ <property name="spacing">5</property> <child> - <widget class="GtkButton" id="button4"> + <widget class="GtkButton" id="snooze-button"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> @@ -405,7 +405,7 @@ </child> <child> - <widget class="GtkButton" id="button3"> + <widget class="GtkButton" id="edit-button"> <property name="visible">True</property> <property name="can_default">True</property> <property name="can_focus">True</property> diff --git a/calendar/gui/comp-editor-factory.c b/calendar/gui/comp-editor-factory.c index 62d24f4467..ea6507ad06 100644 --- a/calendar/gui/comp-editor-factory.c +++ b/calendar/gui/comp-editor-factory.c @@ -245,6 +245,7 @@ edit_existing (OpenClient *oc, const char *uid) icalcomponent *icalcomp; CompEditor *editor; ECalComponentVType vtype; + CompEditorFlags flags; g_assert (oc->open); @@ -269,7 +270,13 @@ edit_existing (OpenClient *oc, const char *uid) switch (vtype) { case E_CAL_COMPONENT_EVENT: - editor = COMP_EDITOR (event_editor_new (oc->client, e_cal_component_has_attendees (comp))); + if (e_cal_component_has_attendees (comp)) + flags |= COMP_EDITOR_MEETING; + + if (itip_organizer_is_user (comp, oc->client)) + flags |= COMP_EDITOR_USER_ORG; + + editor = COMP_EDITOR (event_editor_new (oc->client, flags)); break; case E_CAL_COMPONENT_TODO: |