[evolution-patches] patch for bug# 310338 [calendar - alarms]
- From: viren <lviren novell com>
- To: evolution-patches lists ximian com
- Subject: [evolution-patches] patch for bug# 310338 [calendar - alarms]
- Date: Fri, 12 Aug 2005 17:41:55 +0530
Hi,
Attached patch fixes bug
http://bugzilla.gnome.org/show_bug.cgi?id=310338
Thanks,
Viren
Index: gui/alarm-notify/alarm-notify-dialog.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-notify-dialog.c,v
retrieving revision 1.34
diff -u -p -r1.34 alarm-notify-dialog.c
--- gui/alarm-notify/alarm-notify-dialog.c 9 May 2005 09:10:38 -0000 1.34
+++ gui/alarm-notify/alarm-notify-dialog.c 12 Aug 2005 12:10:23 -0000
@@ -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 (GtkTreeSelect
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 *
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, g
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,
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);
Index: gui/alarm-notify/alarm-notify.glade
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-notify.glade,v
retrieving revision 1.11
diff -u -p -r1.11 alarm-notify.glade
--- gui/alarm-notify/alarm-notify.glade 9 May 2005 09:10:38 -0000 1.11
+++ gui/alarm-notify/alarm-notify.glade 12 Aug 2005 12:10:24 -0000
@@ -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>
Index: gui/comp-editor-factory.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/comp-editor-factory.c,v
retrieving revision 1.43
diff -u -p -r1.43 comp-editor-factory.c
--- gui/comp-editor-factory.c 17 Jan 2005 13:39:19 -0000 1.43
+++ gui/comp-editor-factory.c 12 Aug 2005 12:10:24 -0000
@@ -245,6 +245,7 @@ edit_existing (OpenClient *oc, const cha
icalcomponent *icalcomp;
CompEditor *editor;
ECalComponentVType vtype;
+ CompEditorFlags flags;
g_assert (oc->open);
@@ -267,13 +268,20 @@ edit_existing (OpenClient *oc, const cha
vtype = e_cal_component_get_vtype (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;
+
+
switch (vtype) {
case E_CAL_COMPONENT_EVENT:
- editor = COMP_EDITOR (event_editor_new (oc->client, e_cal_component_has_attendees (comp)));
+ editor = COMP_EDITOR (event_editor_new (oc->client, flags));
break;
case E_CAL_COMPONENT_TODO:
- editor = COMP_EDITOR (task_editor_new (oc->client, e_cal_component_has_attendees (comp)));
+ editor = COMP_EDITOR (task_editor_new (oc->client, flags));
break;
default:
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/calendar/ChangeLog,v
retrieving revision 1.2792
diff -u -p -r1.2792 ChangeLog
--- ChangeLog 9 Aug 2005 22:46:27 -0000 1.2792
+++ ChangeLog 12 Aug 2005 12:10:28 -0000
@@ -1,3 +1,18 @@
+2005-08-12 Viren.L <lviren novell com>
+
+ * 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.
+
+ Fixes #310338
+
2005-08-10 Tor Lillqvist <tml novell com>
* importers/Makefile.am: Use privsolib instead of privlib (they
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]