~vcs-imports/evolution/+git/evolution:calendar-xfb

Last commit made on 2012-11-24
Get this branch:
git clone -b calendar-xfb https://git.launchpad.net/~vcs-imports/evolution/+git/evolution

Branch merges

Branch information

Name:
calendar-xfb
Repository:
lp:~vcs-imports/evolution/+git/evolution

Recent commits

72e2c77... by Christian Hilberg <email address hidden>

removed XFB base64 decoding (t.b.d. in backends)

* removed the XFB data base64 decoding from
  Evolution, which potentially is backend-specific
* we require the backends to deliver decoded
  UTF-8 text for XFB data (UTF-8 enforcement is
  kept here, just in case)

821e211... by Christian Hilberg <email address hidden>

removed code dupe from libedataserver

* since we're actually linking to E-D-S already, we can use
  e_util_utf8_data_make_valid() right away without dupe'ing
  it

ae03f3b... by Christian Hilberg <email address hidden>

EMeetingTimeSelector: removed unneeded string allocation

9148e9b... by Christian Hilberg <email address hidden>

comment cleanup

73c366c... by Christian Hilberg <email address hidden>

removed unneeded runtime warning

c715d68... by Christian Hilberg <email address hidden>

EMeetingTimeSelector: added XFB tooltip to the freebusy canvas

* the busy periods in the scheduling page of the meeting
  time selector are no individual GtkWidgets, so we add
  the tooltip to the canvas they're painted into and let
  the tooltip callback function decide whether or not to
  show a tooltip (only shown if the busy period we're
  hovering over actually carries XFB information)
* there is intentionally no formatting or (translatable)
  string additions nor styling involved to restrict the tooltip
  to the absolute minimum, in order not to be confusing
  or overloaded

d4905bc... by Christian Hilberg <email address hidden>

EMeetingStore: added XFB detail extration/storing (heals build)

* extract X-SUMMARY and X-LOCATION XFB details from a
  vfreebusy ical property (which is part of the ical
  component we get from the backends when querying
  free/busy information), either of which may be absent
* the values we get will be validated for UTF-8 conformance
  (possibly being forced into) and length limited before
  being stored into the EMeetingAttendee alongside the
  other busy period details

a5717f6... by Christian Hilberg <email address hidden>

EMeetingAttendee: added XFB detail storing (breaks build)

* added XFB details (summary, location) to the free/busy
  data
* the data is stored as part of each EMeetingFreeBusyPeriod,
  which are in turn stored in a GArray for each attendee
* since this array can get re-sorted while adding more busy
  periods (and thus will the start addresses of the
  EMeetingFreeBusyPeriod data segmets), earlier plans of
  keeping XFB data in a hash table separate from the GArray
  were dropped, since we cannot reliably use GArray indices
  or EMeetingFreeBusyPeriod start addresses as references
  into a separate data structure to get to the XFB data
  (which may not be carried by every EMeetingFreeBusyPeriod,
  but is optional)
* XFB data is not fixed-length, so EMeetingXfbData (part of
  EMeetingFreeBusyPeriod) just keeps pointers to the XFB data,
  which in turn introduces the need for a GArray clearing
  function (which gets registered with the GArray and takes
  care of freeing XFB strings, if the EMeetingFreeBusyPeriod
  has any)
* e_meeting_attendee_add_busy_period() now takes XFB data string
  arguments, each of which may be NULL (this follows the scheme
  of the other arguments to this function, i.e. adding each
  busy period detail as a separate argument)

0cc2d86... by Christian Hilberg <email address hidden>

added helper functions for XFB data (type)

* since EMeetingXfbData will be part of the freebusy
  GArray data (EMeetingFreeBusyPeriod), it gets allocated
  when EMeetingFreeBusyPeriod is, we just need to
  clear/set it (hence no new()/free(), but clear()/set())
* e_meeting_xfb_utf8_string_new_from_ical() takes care
  of UTF-8 validation and length limitation of the
  summary/location strings we get since these will be
  displayed as tooltips for busy periods

0d6af1c... by Christian Hilberg <email address hidden>

added data types for XFB handling

* EMeetingXfbData currently can hold summary (subject)
  and location data for free/busy objects
* the Kolab groupware server optionally sends this data
  as X-SUMMARY and X-LOCATION ical properties with the
  vfreebusy ical object as freebusy request answer
  (http://wiki.kolab.org/Free_Busy#Kolab_Object_Storage_Format)
* Exchange has a very similar capability of attaching
  this data to its freebusy answer, which trivially maps
  to the above
  (http://msdn.microsoft.com/en-us/library/aa563496%28v=exchg.140%29.aspx)