aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r--calendar/gui/dialogs/comp-editor-util.c30
-rw-r--r--calendar/gui/dialogs/comp-editor.c4
-rw-r--r--calendar/gui/dialogs/event-page.c3
-rw-r--r--calendar/gui/dialogs/recurrence-page.c2
-rw-r--r--calendar/gui/dialogs/task-editor.c9
-rw-r--r--calendar/gui/dialogs/task-page.c1
6 files changed, 32 insertions, 17 deletions
diff --git a/calendar/gui/dialogs/comp-editor-util.c b/calendar/gui/dialogs/comp-editor-util.c
index 77939beee8..f031f35556 100644
--- a/calendar/gui/dialogs/comp-editor-util.c
+++ b/calendar/gui/dialogs/comp-editor-util.c
@@ -32,6 +32,7 @@
#include <liboaf/liboaf.h>
#include <bonobo/bonobo-control.h>
#include <bonobo/bonobo-widget.h>
+#include <gal/unicode/gunicode.h>
#include <e-destination.h>
#include <e-util/e-time-utils.h>
#include <cal-util/timeutil.h>
@@ -359,8 +360,7 @@ comp_editor_show_contacts_dialog (GNOME_Evolution_Addressbook_SelectNames corba_
/* A simple 'name <email>' parser. Input should be UTF8.
- FIXME: Should probably use camel functions or something.
- Also note that this is broken wrt UTF8 - can't use strchr etc. */
+ FIXME: Should probably use camel functions or something. */
static void
parse_contact_string (const char *value, char **name, char **email)
{
@@ -372,8 +372,8 @@ parse_contact_string (const char *value, char **name, char **email)
return;
}
- lbracket = strchr (value, '<');
- rbracket = strchr (value, '>');
+ lbracket = g_utf8_strchr (value, '<');
+ rbracket = g_utf8_strchr (value, '>');
if (!lbracket || !rbracket || rbracket < lbracket) {
*name = g_strdup (value);
@@ -381,9 +381,9 @@ parse_contact_string (const char *value, char **name, char **email)
return;
}
- name_end = lbracket - 1;
- while (name_end > value && isspace (*name_end))
- name_end--;
+ name_end = g_utf8_prev_char (lbracket);
+ while (name_end > value && g_unichar_isspace (g_utf8_get_char (name_end)))
+ name_end = g_utf8_prev_char (name_end);
tmp_name = g_malloc (name_end - value + 2);
strncpy (tmp_name, value, name_end - value + 1);
@@ -395,8 +395,10 @@ parse_contact_string (const char *value, char **name, char **email)
tmp_email[rbracket - lbracket - 1] = '\0';
*email = tmp_email;
+#if 0
g_print ("Parsed: %s\n Name:'%s'\nEmail:'%s'\n",
value, *name, *email);
+#endif
}
@@ -431,7 +433,9 @@ comp_editor_contacts_to_widget (GtkWidget *contacts_entry,
g_ptr_array_add (dest_array, NULL);
contacts_string = e_destination_exportv ((EDestination**) dest_array->pdata);
+#if 0
g_print ("Destinations: %s\n", contacts_string ? contacts_string : "");
+#endif
bonobo_widget_set_property (BONOBO_WIDGET (contacts_entry),
"destinations", contacts_string, NULL);
@@ -460,7 +464,9 @@ comp_editor_contacts_to_component (GtkWidget *contacts_entry,
bonobo_widget_get_property (BONOBO_WIDGET (contacts_entry),
"destinations", &contacts_string, NULL);
+#if 0
g_print ("Contacts string: %s\n", contacts_string ? contacts_string : "");
+#endif
contact_destv = e_destination_importv (contacts_string);
if (contact_destv) {
@@ -472,16 +478,18 @@ comp_editor_contacts_to_component (GtkWidget *contacts_entry,
t->altrep = NULL;
/* If both name and email are given, use the standard
- 'name <email>' form, otherwise use just the name
+ '"name" <email>' form, otherwise use just the name
or the email address.
FIXME: I'm not sure this is correct syntax etc. */
if (name && name[0] && email && email[0])
- t->value = g_strdup_printf ("%s <%s>",
+ t->value = g_strdup_printf ("\"%s\" <%s>",
name, email);
else if (name && name[0])
- t->value = g_strdup (name);
+ t->value = g_strdup_printf ("\"%s\"",
+ name);
else
- t->value = g_strdup (email);
+ t->value = g_strdup_printf ("<%s>",
+ email);
contact_list = g_slist_prepend (contact_list, t);
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 077bff879c..6b5b78252c 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -1133,7 +1133,7 @@ print_cmd (GtkWidget *widget, gpointer data)
CalComponent *comp;
comp = comp_editor_get_current_comp (editor);
- print_comp (comp, FALSE);
+ print_comp (comp, editor->priv->client, FALSE);
gtk_object_unref (GTK_OBJECT (comp));
}
@@ -1144,7 +1144,7 @@ print_preview_cmd (GtkWidget *widget, gpointer data)
CalComponent *comp;
comp = comp_editor_get_current_comp (editor);
- print_comp (comp, TRUE);
+ print_comp (comp, editor->priv->client, TRUE);
gtk_object_unref (GTK_OBJECT (comp));
}
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index 9c89fbdf53..57fd3ac0ef 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -445,7 +445,9 @@ contacts_changed_cb (BonoboListener *listener,
epage = EVENT_PAGE (data);
priv = epage->priv;
+#if 0
g_print ("In contacts_changed_cb\n");
+#endif
if (!priv->updating)
comp_editor_page_notify_changed (COMP_EDITOR_PAGE (epage));
@@ -1171,7 +1173,6 @@ contacts_clicked_cb (GtkWidget *button, gpointer data)
epage = EVENT_PAGE (data);
priv = epage->priv;
- g_print ("In contacts_clicked_cb\n");
comp_editor_show_contacts_dialog (priv->corba_select_names);
/* FIXME: Currently we aren't getting the changed event from the
diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c
index c76b6dd970..02ce2ed064 100644
--- a/calendar/gui/dialogs/recurrence-page.c
+++ b/calendar/gui/dialogs/recurrence-page.c
@@ -831,7 +831,9 @@ fill_component (RecurrencePage *rpage, CalComponent *comp)
*cdt->value = *dt->value;
cdt->tzid = g_strdup (dt->tzid);
+#if 0
g_print ("Adding exception is_date: %i\n", cdt->value->is_date);
+#endif
list = g_slist_prepend (list, cdt);
}
diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c
index 5db5597e65..863977192c 100644
--- a/calendar/gui/dialogs/task-editor.c
+++ b/calendar/gui/dialogs/task-editor.c
@@ -218,12 +218,17 @@ task_editor_edit_comp (CompEditor *editor, CalComponent *comp)
cal_component_get_attendee_list (comp, &attendees);
if (attendees == NULL) {
- comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->meet_page));
+ if (priv->meeting_shown)
+ comp_editor_remove_page (editor, COMP_EDITOR_PAGE (priv->meet_page));
priv->meeting_shown = FALSE;
- set_menu_sens (te);
} else {
GSList *l;
+ if (!priv->meeting_shown)
+ comp_editor_append_page (COMP_EDITOR (te),
+ COMP_EDITOR_PAGE (priv->meet_page),
+ _("Assignment"));
+
for (l = attendees; l != NULL; l = l->next) {
CalComponentAttendee *ca = l->data;
EMeetingAttendee *ia = E_MEETING_ATTENDEE (e_meeting_attendee_new_from_cal_component_attendee (ca));
diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c
index d60ca5ba5b..084bbcbde8 100644
--- a/calendar/gui/dialogs/task-page.c
+++ b/calendar/gui/dialogs/task-page.c
@@ -754,7 +754,6 @@ contacts_clicked_cb (GtkWidget *button, gpointer data)
tpage = TASK_PAGE (data);
priv = tpage->priv;
- g_print ("In contacts_clicked_cb\n");
comp_editor_show_contacts_dialog (priv->corba_select_names);
/* FIXME: Currently we aren't getting the changed event from the