View | Details | Raw Unified
Collapse All | Expand All

(-) calendar/gui/e-itip-control.c (-55 / +74 lines)
 Lines 660-666   find_attendee (icalcomponent *ical_comp, Link Here 
static void
static void
write_label_piece (EItipControl *itip, ECalComponentDateTime *dt,
write_label_piece (EItipControl *itip, ECalComponentDateTime *dt,
		   char *buffer, int size,
                   GString *buffer,
		   const char *stext, const char *etext,
		   const char *stext, const char *etext,
		   gboolean just_date)
		   gboolean just_date)
{
{
 Lines 685-697   write_label_piece (EItipControl *itip, E Link Here 
		tmp_tm.tm_hour = tmp_tm.tm_min = tmp_tm.tm_sec = 0;
		tmp_tm.tm_hour = tmp_tm.tm_min = tmp_tm.tm_sec = 0;
	if (stext != NULL)
	if (stext != NULL)
		strcat (buffer, stext);
		g_string_append (buffer, stext);
	e_time_format_date_and_time (&tmp_tm,
	e_time_format_date_and_time (&tmp_tm,
				     calendar_config_get_24_hour_format (),
				     calendar_config_get_24_hour_format (),
				     FALSE, FALSE,
				     FALSE, FALSE,
				     time_buf, sizeof (time_buf));
				     time_buf, sizeof (time_buf));
	strcat (buffer, time_buf);
	g_string_append (buffer, time_buf);
	if (!dt->value->is_utc && dt->tzid) {
	if (!dt->value->is_utc && dt->tzid) {
		zone = icalcomponent_get_timezone (priv->top_level, dt->tzid);
		zone = icalcomponent_get_timezone (priv->top_level, dt->tzid);
 Lines 703-723   write_label_piece (EItipControl *itip, E Link Here 
		   UTF-8. But it probably is not translated. */
		   UTF-8. But it probably is not translated. */
		display_name = icaltimezone_get_display_name (zone);
		display_name = icaltimezone_get_display_name (zone);
		if (display_name && *display_name) {
		if (display_name && *display_name) {
			strcat (buffer, " <font size=-1>[");
			g_string_append_len (buffer, " <font size=-1>[", 16);
			/* We check if it is one of our builtin timezone names,
			/* We check if it is one of our builtin timezone names,
			   in which case we call gettext to translate it. */
			   in which case we call gettext to translate it. */
			if (icaltimezone_get_builtin_timezone (display_name)) {
			if (icaltimezone_get_builtin_timezone (display_name)) {
				strcat (buffer, _(display_name));
				g_string_append_printf (buffer, "%s", _(display_name));
			} else {
			} else {
				strcat (buffer, display_name);
				g_string_append_printf (buffer, "%s", display_name);
			}
			}
			strcat (buffer, "]</font>");
			g_string_append_len (buffer, "]</font>", 8);
		}
		}
	}
	}
	if (etext != NULL)
	if (etext != NULL)
		strcat (buffer, etext);
		g_string_append (buffer, etext);
}
}
static const char *
static const char *
 Lines 754-772   get_dayname (struct icalrecurrencetype * Link Here 
static void
static void
write_recurrence_piece (EItipControl *itip, ECalComponent *comp,
write_recurrence_piece (EItipControl *itip, ECalComponent *comp,
			char *buffer, int size)
                        GString *buffer)
{
{
	GSList *rrules;
	GSList *rrules;
	struct icalrecurrencetype *r;
	struct icalrecurrencetype *r;
	int len, i;
	int i;
	strcpy (buffer, "<b>Recurring:</b> ");
	g_string_append_len (buffer, "<b>Recurring:</b> ", 18);
	len = strlen (buffer);
	buffer += len;
	size -= len;
	if (!e_cal_component_has_simple_recurrence (comp)) {
	if (!e_cal_component_has_simple_recurrence (comp)) {
		strcpy (buffer, _("Yes. (Complex Recurrence)"));
		g_string_append_printf (
			buffer, "%s", _("Yes. (Complex Recurrence)"));
		return;
		return;
	}
	}
 Lines 782-788   write_recurrence_piece (EItipControl *it Link Here 
                 Every %d day/days" */
                 Every %d day/days" */
		/* For Translators : 'Every day' is event Recurring every day */
		/* For Translators : 'Every day' is event Recurring every day */
		/* For Translators : 'Every %d days' is event Recurring every %d days. %d is a digit */
		/* For Translators : 'Every %d days' is event Recurring every %d days. %d is a digit */
		sprintf (buffer, ngettext("Every day", "Every %d days", r->interval), r->interval);
		g_string_append_printf (
			buffer, ngettext ("Every day",
			"Every %d days", r->interval),
			r->interval);
		break;
		break;
	case ICAL_WEEKLY_RECURRENCE:
	case ICAL_WEEKLY_RECURRENCE:
 Lines 792-820   write_recurrence_piece (EItipControl *it Link Here 
                         Every %d week/weeks" */
                         Every %d week/weeks" */
			/* For Translators : 'Every week' is event Recurring every week */
			/* For Translators : 'Every week' is event Recurring every week */
			/* For Translators : 'Every %d weeks' is event Recurring every %d weeks. %d is a digit */
			/* For Translators : 'Every %d weeks' is event Recurring every %d weeks. %d is a digit */
			sprintf (buffer, ngettext("Every week", "Every %d weeks", r->interval), r->interval);
			g_string_append_printf (
				buffer, ngettext ("Every week",
				"Every %d weeks", r->interval),
				r->interval);
		} else {
		} else {
			/* For Translators : 'Every week on' is event Recurring every week on (dayname) and (dayname) and (dayname) */
			/* For Translators : 'Every week on' is event Recurring every week on (dayname) and (dayname) and (dayname) */
			/* For Translators : 'Every %d weeks on' is event Recurring: every %d weeks on (dayname) and (dayname). %d is a digit */
			/* For Translators : 'Every %d weeks on' is event Recurring: every %d weeks on (dayname) and (dayname). %d is a digit */
			sprintf (buffer, ngettext("Every week on ", "Every %d weeks on ", r->interval), r->interval);
			g_string_append_printf (
				buffer, ngettext ("Every week on ",
				"Every %d weeks on ", r->interval),
				r->interval);
			for (i = 1; i < 8 && r->by_day[i] != ICAL_RECURRENCE_ARRAY_MAX; i++) {
			for (i = 1; i < 8 && r->by_day[i] != ICAL_RECURRENCE_ARRAY_MAX; i++) {
				if (i > 1)
				if (i > 1)
					strcat (buffer, ", ");
					g_string_append_len (buffer, ", ", 2);
				strcat (buffer, get_dayname (r, i - 1));
				g_string_append (buffer, get_dayname (r, i - 1));
			}
			}
			if (i > 1)
			if (i > 1)
				/* For Translators : 'and' is part of the sentence 'event recurring every week on (dayname) and (dayname)' */
				/* For Translators : 'and' is part of the sentence 'event recurring every week on (dayname) and (dayname)' */
				strcat (buffer, _(" and "));
				g_string_append_printf (buffer, "%s", _(" and "));
			strcat (buffer, get_dayname (r, i - 1));
			g_string_append (buffer, get_dayname (r, i - 1));
		}
		}
		break;
		break;
	case ICAL_MONTHLY_RECURRENCE:
	case ICAL_MONTHLY_RECURRENCE:
		if (r->by_month_day[0] != ICAL_RECURRENCE_ARRAY_MAX) {
		if (r->by_month_day[0] != ICAL_RECURRENCE_ARRAY_MAX) {
			/* For Translators : 'The %s day of' is part of the sentence 'event recurring on the (nth) day of every month.' */
			/* For Translators : 'The %s day of' is part of the sentence 'event recurring on the (nth) day of every month.' */
			sprintf (buffer, _("The %s day of "),
			g_string_append_printf (
				 nth (r->by_month_day[0]));
				buffer, _("The %s day of "),
				nth (r->by_month_day[0]));
		} else {
		} else {
			int pos;
			int pos;
 Lines 828-847   write_recurrence_piece (EItipControl *it Link Here 
			/* For Translators : 'The %s %s of' is part of the sentence 'event recurring on the (nth) (dayname) of every month.'
			/* For Translators : 'The %s %s of' is part of the sentence 'event recurring on the (nth) (dayname) of every month.'
			   eg,third monday of every month */
			   eg,third monday of every month */
			sprintf (buffer, _("The %s %s of "),
			g_string_append_printf (
				 nth (pos), get_dayname (r, 0));
				buffer, _("The %s %s of "),
				nth (pos), get_dayname (r, 0));
		}
		}
		len = strlen (buffer);
		buffer += len;
		size -= len;
              /* For Translators: In this can also be translated as "With the period of %d
              /* For Translators: In this can also be translated as "With the period of %d
                 month/months", where %d is a number. The entire sentence is of the form "Recurring:
                 month/months", where %d is a number. The entire sentence is of the form "Recurring:
                 Every %d month/months" */
                 Every %d month/months" */
		/* For Translators : 'every month' is part of the sentence 'event recurring on the (nth) day of every month.' */
		/* For Translators : 'every month' is part of the sentence 'event recurring on the (nth) day of every month.' */
		/* For Translators : 'every %d months' is part of the sentence 'event recurring on the (nth) day of every %d months.'
		/* For Translators : 'every %d months' is part of the sentence 'event recurring on the (nth) day of every %d months.'
		 %d is a digit */
		 %d is a digit */
		sprintf (buffer, ngettext("every month","every %d months", r->interval), r->interval);
		g_string_append_printf (
			buffer, ngettext ("every month",
			"every %d months", r->interval),
			r->interval);
		break;
		break;
	case ICAL_YEARLY_RECURRENCE:
	case ICAL_YEARLY_RECURRENCE:
 Lines 850-869   write_recurrence_piece (EItipControl *it Link Here 
                 Every %d year/years" */
                 Every %d year/years" */
		/* For Translators : 'Every year' is event Recurring every year */
		/* For Translators : 'Every year' is event Recurring every year */
		/* For Translators : 'Every %d years' is event Recurring every %d years. %d is a digit */
		/* For Translators : 'Every %d years' is event Recurring every %d years. %d is a digit */
		sprintf (buffer, ngettext("Every year", "Every %d years", r->interval), r->interval);
		g_string_append_printf (
			buffer, ngettext ("Every year",
			"Every %d years", r->interval),
			r->interval);
		break;
		break;
	default:
	default:
		g_return_if_reached ();
		g_return_if_reached ();
	}
	}
	len = strlen (buffer);
	buffer += len;
	size -= len;
	if (r->count) {
	if (r->count) {
	      /* For Translators:'a total of %d time' is part of the sentence of the form 'event recurring every day,a total of % time.' %d is a digit*/
	      /* For Translators:'a total of %d time' is part of the sentence of the form 'event recurring every day,a total of % time.' %d is a digit*/
	      /* For Translators:'a total of %d times' is part of the sentence of the form 'event recurring every day,a total of % times.' %d is a digit*/
	      /* For Translators:'a total of %d times' is part of the sentence of the form 'event recurring every day,a total of % times.' %d is a digit*/
		sprintf (buffer, ngettext("a total of %d time", " a total of %d times", r->count), r->count);
		g_string_append_printf (
			buffer, ngettext ("a total of %d time",
			" a total of %d times", r->count), r->count);
	} else if (!icaltime_is_null_time (r->until)) {
	} else if (!icaltime_is_null_time (r->until)) {
		ECalComponentDateTime dt;
		ECalComponentDateTime dt;
 Lines 871-882   write_recurrence_piece (EItipControl *it Link Here 
		dt.value = &r->until;
		dt.value = &r->until;
		dt.tzid = icaltimezone_get_tzid ((icaltimezone *)r->until.zone);
		dt.tzid = icaltimezone_get_tzid ((icaltimezone *)r->until.zone);
		write_label_piece (itip, &dt, buffer, size,
		write_label_piece (itip, &dt, buffer, 
				   /* For Translators : ', ending on' is part of the sentence of the form 'event recurring every day, ending on (date).'*/
				   /* For Translators : ', ending on' is part of the sentence of the form 'event recurring every day, ending on (date).'*/
				   _(", ending on "), NULL, TRUE);
				   _(", ending on "), NULL, TRUE);
	}
	}
	strcat (buffer, "<br>");
	g_string_append_len (buffer, "<br>", 4);
}
}
static void
static void
 Lines 884-930   set_date_label (EItipControl *itip, GtkH Link Here 
		ECalComponent *comp)
		ECalComponent *comp)
{
{
	ECalComponentDateTime datetime;
	ECalComponentDateTime datetime;
	static char buffer[1024];
	GString *buffer;
	gchar *str;
	gchar *str;
	gboolean wrote = FALSE, task_completed = FALSE;
	gboolean wrote = FALSE, task_completed = FALSE;
	ECalComponentVType type;
	ECalComponentVType type;
	buffer = g_string_sized_new (1024);
	type = e_cal_component_get_vtype (comp);
	type = e_cal_component_get_vtype (comp);
	buffer[0] = '\0';
	e_cal_component_get_dtstart (comp, &datetime);
	e_cal_component_get_dtstart (comp, &datetime);
	if (datetime.value) {
	if (datetime.value) {
		/* For Translators : 'starts' is starts:date implying a task starts on what date */
		/* For Translators : 'starts' is starts:date implying a task starts on what date */
		str = g_strdup_printf ("<b>%s:</b>", _("Starts"));
		str = g_strdup_printf ("<b>%s:</b>", _("Starts"));
		write_label_piece (itip, &datetime, buffer, 1024,
		write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE);
				  str,
		gtk_html_write (html, html_stream, buffer->str, buffer->len);
				   "<br>", FALSE);
		gtk_html_write (html, html_stream, buffer, strlen(buffer));
		wrote = TRUE;
		wrote = TRUE;
		g_free (str);
		g_free (str);
	}
	}
	e_cal_component_free_datetime (&datetime);
	e_cal_component_free_datetime (&datetime);
	buffer[0] = '\0';
	/* Reset the buffer. */
	g_string_truncate (buffer, 0);
	e_cal_component_get_dtend (comp, &datetime);
	e_cal_component_get_dtend (comp, &datetime);
	if (datetime.value){
	if (datetime.value){
		/* For Translators : 'ends' is ends:date implying a task ends on what date */
		/* For Translators : 'ends' is ends:date implying a task ends on what date */
		str = g_strdup_printf ("<b>%s:</b>", _("Ends"));
		str = g_strdup_printf ("<b>%s:</b>", _("Ends"));
		write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE);
		write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE);
		gtk_html_write (html, html_stream, buffer, strlen (buffer));
		gtk_html_write (html, html_stream, buffer->str, buffer->len);
		wrote = TRUE;
		wrote = TRUE;
		g_free (str);
		g_free (str);
	}
	}
	e_cal_component_free_datetime (&datetime);
	e_cal_component_free_datetime (&datetime);
	buffer[0] = '\0';
	/* Reset the buffer. */
	g_string_truncate (buffer, 0);
	if (e_cal_component_has_recurrences (comp)) {
	if (e_cal_component_has_recurrences (comp)) {
		write_recurrence_piece (itip, comp, buffer, 1024);
		write_recurrence_piece (itip, comp, buffer);
		gtk_html_write (html, html_stream, buffer, strlen (buffer));
		gtk_html_write (html, html_stream, buffer->str, buffer->len);
		wrote = TRUE;
		wrote = TRUE;
	}
	}
	buffer[0] = '\0';
	/* Reset the buffer. */
	g_string_truncate (buffer, 0);
	datetime.tzid = NULL;
	datetime.tzid = NULL;
	e_cal_component_get_completed (comp, &datetime.value);
	e_cal_component_get_completed (comp, &datetime.value);
	if (type == E_CAL_COMPONENT_TODO && datetime.value) {
	if (type == E_CAL_COMPONENT_TODO && datetime.value) {
 Lines 932-951   set_date_label (EItipControl *itip, GtkH Link Here 
		   timezone. */
		   timezone. */
		str = g_strdup_printf ("<b>%s:</b>", _("Completed"));
		str = g_strdup_printf ("<b>%s:</b>", _("Completed"));
		datetime.value->is_utc = TRUE;
		datetime.value->is_utc = TRUE;
		write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE);
		write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE);
		gtk_html_write (html, html_stream, buffer, strlen (buffer));
		gtk_html_write (html, html_stream, buffer->str, buffer->len);
		wrote = TRUE;
		wrote = TRUE;
		task_completed = TRUE;
		task_completed = TRUE;
		g_free (str);
		g_free (str);
	}
	}
	e_cal_component_free_datetime (&datetime);
	e_cal_component_free_datetime (&datetime);
	buffer[0] = '\0';
	/* Reset the buffer. */
	g_string_truncate (buffer, 0);
	e_cal_component_get_due (comp, &datetime);
	e_cal_component_get_due (comp, &datetime);
	if (type == E_CAL_COMPONENT_TODO && !task_completed && datetime.value) {
	if (type == E_CAL_COMPONENT_TODO && !task_completed && datetime.value) {
		str = g_strdup_printf ("<b>%s:</b>", _("Due"));
		str = g_strdup_printf ("<b>%s:</b>", _("Due"));
		write_label_piece (itip, &datetime, buffer, 1024, str, "<br>", FALSE);
		write_label_piece (itip, &datetime, buffer, str, "<br>", FALSE);
		gtk_html_write (html, html_stream, buffer, strlen (buffer));
		gtk_html_write (html, html_stream, buffer->str, buffer->len);
		wrote = TRUE;
		wrote = TRUE;
		g_free (str);
		g_free (str);
	}
	}
 Lines 954-959   set_date_label (EItipControl *itip, GtkH Link Here 
	if (wrote)
	if (wrote)
		gtk_html_stream_printf (html_stream, "<br>");
		gtk_html_stream_printf (html_stream, "<br>");
	g_string_free (buffer, TRUE);
}
}
static void
static void