diff options
author | Chenthill Palanisamy <pchen@src.gnome.org> | 2005-08-12 21:55:51 +0800 |
---|---|---|
committer | Chenthill Palanisamy <pchen@src.gnome.org> | 2005-08-12 21:55:51 +0800 |
commit | fe93bc962abd19cda49da538d3a73944e4eec065 (patch) | |
tree | 056251edf2eedd3033535e2a97293cb795e11ecb /calendar/gui | |
parent | 94940da704bacc6d18ab1674a4f473beacdf2b03 (diff) | |
download | gsoc2013-evolution-fe93bc962abd19cda49da538d3a73944e4eec065.tar gsoc2013-evolution-fe93bc962abd19cda49da538d3a73944e4eec065.tar.gz gsoc2013-evolution-fe93bc962abd19cda49da538d3a73944e4eec065.tar.bz2 gsoc2013-evolution-fe93bc962abd19cda49da538d3a73944e4eec065.tar.lz gsoc2013-evolution-fe93bc962abd19cda49da538d3a73944e4eec065.tar.xz gsoc2013-evolution-fe93bc962abd19cda49da538d3a73944e4eec065.tar.zst gsoc2013-evolution-fe93bc962abd19cda49da538d3a73944e4eec065.zip |
Fixes #310338
svn path=/trunk/; revision=30097
Diffstat (limited to 'calendar/gui')
-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 |
3 files changed, 61 insertions, 19 deletions
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: |