aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/gui/GNOME_Evolution_Calendar.oaf.in34
-rw-r--r--calendar/gui/GNOME_Evolution_Calendar.oafinfo34
-rw-r--r--calendar/gui/GNOME_Evolution_Calendar_gnomecal.oaf.in34
-rw-r--r--calendar/gui/GNOME_Evolution_Calendar_gnomecal.oafinfo34
-rw-r--r--calendar/gui/Makefile.am7
-rw-r--r--calendar/gui/e-itip-control.c236
-rw-r--r--calendar/gui/e-itip-control.glade54
-rw-r--r--calendar/gui/e-itip-control.h8
-rw-r--r--calendar/gui/e-meeting-edit.c56
-rw-r--r--calendar/gui/evolution-calendar.oafinfo34
-rw-r--r--calendar/gui/main.c3
11 files changed, 480 insertions, 54 deletions
diff --git a/calendar/gui/GNOME_Evolution_Calendar.oaf.in b/calendar/gui/GNOME_Evolution_Calendar.oaf.in
index 25279ccaeb..a772bca77b 100644
--- a/calendar/gui/GNOME_Evolution_Calendar.oaf.in
+++ b/calendar/gui/GNOME_Evolution_Calendar.oaf.in
@@ -1,5 +1,39 @@
<oaf_info>
+<oaf_server iid="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a"
+ type="exe"
+ location="evolution-calendar">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/GenericFactory:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:control:e_itipview:1eef8614-cce4-4398-aed4-f32e920fb6ad"
+ type="factory"
+ location="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/Control:1.0"/>
+ <item value="IDL:Bonobo/PersistStream:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="bonobo:supported_mime_types" type="stringv">
+ <item value="text/calendar"/>
+ <item value="text/x-calendar"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="name" type="string"
+ value="Evolution calendar iTip/iMip viewer"/>
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
<oaf_server iid="OAFIID:evolution-shell-component-factory:evolution-calendar:cba77062-1466-4aac-8ce7-b019eaf2e921"
type="exe"
location="evolution-calendar">
diff --git a/calendar/gui/GNOME_Evolution_Calendar.oafinfo b/calendar/gui/GNOME_Evolution_Calendar.oafinfo
index 25279ccaeb..a772bca77b 100644
--- a/calendar/gui/GNOME_Evolution_Calendar.oafinfo
+++ b/calendar/gui/GNOME_Evolution_Calendar.oafinfo
@@ -1,5 +1,39 @@
<oaf_info>
+<oaf_server iid="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a"
+ type="exe"
+ location="evolution-calendar">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/GenericFactory:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:control:e_itipview:1eef8614-cce4-4398-aed4-f32e920fb6ad"
+ type="factory"
+ location="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/Control:1.0"/>
+ <item value="IDL:Bonobo/PersistStream:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="bonobo:supported_mime_types" type="stringv">
+ <item value="text/calendar"/>
+ <item value="text/x-calendar"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="name" type="string"
+ value="Evolution calendar iTip/iMip viewer"/>
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
<oaf_server iid="OAFIID:evolution-shell-component-factory:evolution-calendar:cba77062-1466-4aac-8ce7-b019eaf2e921"
type="exe"
location="evolution-calendar">
diff --git a/calendar/gui/GNOME_Evolution_Calendar_gnomecal.oaf.in b/calendar/gui/GNOME_Evolution_Calendar_gnomecal.oaf.in
index 25279ccaeb..a772bca77b 100644
--- a/calendar/gui/GNOME_Evolution_Calendar_gnomecal.oaf.in
+++ b/calendar/gui/GNOME_Evolution_Calendar_gnomecal.oaf.in
@@ -1,5 +1,39 @@
<oaf_info>
+<oaf_server iid="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a"
+ type="exe"
+ location="evolution-calendar">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/GenericFactory:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:control:e_itipview:1eef8614-cce4-4398-aed4-f32e920fb6ad"
+ type="factory"
+ location="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/Control:1.0"/>
+ <item value="IDL:Bonobo/PersistStream:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="bonobo:supported_mime_types" type="stringv">
+ <item value="text/calendar"/>
+ <item value="text/x-calendar"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="name" type="string"
+ value="Evolution calendar iTip/iMip viewer"/>
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
<oaf_server iid="OAFIID:evolution-shell-component-factory:evolution-calendar:cba77062-1466-4aac-8ce7-b019eaf2e921"
type="exe"
location="evolution-calendar">
diff --git a/calendar/gui/GNOME_Evolution_Calendar_gnomecal.oafinfo b/calendar/gui/GNOME_Evolution_Calendar_gnomecal.oafinfo
index 25279ccaeb..a772bca77b 100644
--- a/calendar/gui/GNOME_Evolution_Calendar_gnomecal.oafinfo
+++ b/calendar/gui/GNOME_Evolution_Calendar_gnomecal.oafinfo
@@ -1,5 +1,39 @@
<oaf_info>
+<oaf_server iid="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a"
+ type="exe"
+ location="evolution-calendar">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/GenericFactory:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:control:e_itipview:1eef8614-cce4-4398-aed4-f32e920fb6ad"
+ type="factory"
+ location="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/Control:1.0"/>
+ <item value="IDL:Bonobo/PersistStream:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="bonobo:supported_mime_types" type="stringv">
+ <item value="text/calendar"/>
+ <item value="text/x-calendar"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="name" type="string"
+ value="Evolution calendar iTip/iMip viewer"/>
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
<oaf_server iid="OAFIID:evolution-shell-component-factory:evolution-calendar:cba77062-1466-4aac-8ce7-b019eaf2e921"
type="exe"
location="evolution-calendar">
diff --git a/calendar/gui/Makefile.am b/calendar/gui/Makefile.am
index 9731104200..bd32e28ef3 100644
--- a/calendar/gui/Makefile.am
+++ b/calendar/gui/Makefile.am
@@ -40,7 +40,8 @@ gladedir = $(datadir)/evolution/glade
glade_DATA = \
event-editor-dialog.glade \
- e-meeting-dialog.glade
+ e-meeting-dialog.glade \
+ e-itip-control.glade
glade_messages = event-editor-dialog.glade.h
@@ -77,6 +78,8 @@ evolution_calendar_SOURCES = \
e-week-view.h \
e-meeting-edit.h \
e-meeting-edit.c \
+ e-itip-control.h \
+ e-itip-control.c \
event-editor.c \
event-editor.h \
getdate.y \
@@ -106,7 +109,7 @@ evolution_calendar_LDADD = \
evolution_calendar_LDFLAGS = `gnome-config --libs gdk_pixbuf`
oafdir = $(datadir)/oaf
-oaf_DATA = calendar-control.oafinfo evolution-calendar.oafinfo
+oaf_DATA = calendar-control.oafinfo evolution-calendar.oafinfo
EXTRA_DIST = \
$(glade_DATA) \
diff --git a/calendar/gui/e-itip-control.c b/calendar/gui/e-itip-control.c
new file mode 100644
index 0000000000..7c4dc22a4b
--- /dev/null
+++ b/calendar/gui/e-itip-control.c
@@ -0,0 +1,236 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * e-itip-control.c
+ *
+ * Authors:
+ * Jesse Pavel <jpavel@helixcode.com>
+ *
+ * Copyright 2000, Helix Code, Inc.
+ */
+
+#include <config.h>
+#include <gnome.h>
+#include <bonobo.h>
+#include <glade/glade.h>
+#include <icaltypes.h>
+#include <ical.h>
+
+#include "e-itip-control.h"
+
+/*
+ * Bonobo::PersistStream
+ *
+ * These two functions implement the Bonobo::PersistStream load and
+ * save methods which allow data to be loaded into and out of the
+ * BonoboObject.
+ */
+
+typedef struct _EItipControlPrivate EItipControlPrivate;
+
+struct _EItipControlPrivate {
+ GladeXML *xml;
+ GtkWidget *main_frame;
+ GtkWidget *text_box;
+
+ icalcomponent *main_comp;
+};
+
+
+static void
+control_destroy_cb (GtkObject *object,
+ gpointer data)
+{
+ EItipControlPrivate *priv = data;
+
+ gtk_object_unref (GTK_OBJECT (priv->xml));
+ g_free (priv);
+}
+
+
+static char *
+stream_read (Bonobo_Stream stream)
+{
+ Bonobo_Stream_iobuf *buffer;
+ CORBA_Environment ev;
+ gchar *data = NULL;
+ gint length = 0;
+
+ CORBA_exception_init (&ev);
+ do {
+#define READ_CHUNK_SIZE 65536
+ Bonobo_Stream_read (stream, READ_CHUNK_SIZE,
+ &buffer, &ev);
+
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ CORBA_exception_free (&ev);
+ return NULL;
+ }
+
+ if (buffer->_length <= 0)
+ break;
+
+ data = g_realloc (data,
+ length + buffer->_length);
+
+ memcpy (data + length,
+ buffer->_buffer, buffer->_length);
+
+ length += buffer->_length;
+
+ CORBA_free (buffer);
+ } while (1);
+
+ CORBA_free (buffer);
+ CORBA_exception_free (&ev);
+
+ if (data == NULL)
+ data = g_strdup("");
+
+ return data;
+} /* stream_read */
+
+/*
+ * This function implements the Bonobo::PersistStream:load method.
+ */
+static void
+pstream_load (BonoboPersistStream *ps, const Bonobo_Stream stream,
+ Bonobo_Persist_ContentType type, void *data,
+ CORBA_Environment *ev)
+{
+ EItipControlPrivate *priv = data;
+ gchar *vcalendar;
+ gint pos, length;
+
+ if (type && g_strcasecmp (type, "text/calendar") != 0 &&
+ g_strcasecmp (type, "text/x-calendar") != 0) {
+ CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
+ ex_Bonobo_Persist_WrongDataType, NULL);
+ return;
+ }
+
+ if ((vcalendar = stream_read (stream)) == NULL) {
+ CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
+ ex_Bonobo_Persist_FileNotFound, NULL);
+ return;
+ }
+
+ /* Do something with the data, here. */
+ pos = 0;
+ length = strlen (vcalendar);
+
+ if (length > 0)
+ gtk_editable_delete_text (GTK_EDITABLE (priv->text_box), 0, length);
+
+ gtk_editable_insert_text (GTK_EDITABLE (priv->text_box),
+ vcalendar,
+ length,
+ &pos);
+
+
+ g_free (vcalendar);
+
+} /* pstream_load */
+
+/*
+ * This function implements the Bonobo::PersistStream:save method.
+ */
+static void
+pstream_save (BonoboPersistStream *ps, const Bonobo_Stream stream,
+ Bonobo_Persist_ContentType type, void *data,
+ CORBA_Environment *ev)
+{
+ EItipControlPrivate *priv = data;
+ gchar *vcalendar;
+ int length;
+
+ if (type && g_strcasecmp (type, "text/calendar") != 0 &&
+ g_strcasecmp (type, "text/x-calendar") != 0) {
+ CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
+ ex_Bonobo_Persist_WrongDataType, NULL);
+ return;
+ }
+
+ /* Put something into vcalendar here. */
+ length = gtk_text_get_length (GTK_TEXT (priv->text_box));
+ vcalendar = gtk_editable_get_chars (GTK_EDITABLE (priv->text_box), 0, -1);
+
+ bonobo_stream_client_write (stream, vcalendar, length, ev);
+ g_free (vcalendar);
+} /* pstream_save */
+
+static CORBA_long
+pstream_get_max_size (BonoboPersistStream *ps, void *data,
+ CORBA_Environment *ev)
+{
+ EItipControlPrivate *priv = data;
+ gint length;
+
+ length = gtk_text_get_length (GTK_TEXT (priv->text_box));
+
+ return length;
+}
+
+static Bonobo_Persist_ContentTypeList *
+pstream_get_content_types (BonoboPersistStream *ps, void *closure,
+ CORBA_Environment *ev)
+{
+ return bonobo_persist_generate_content_types (2, "text/calendar", "text/x-calendar");
+}
+
+static BonoboObject *
+e_itip_control_factory (BonoboGenericFactory *Factory, void *closure)
+{
+ BonoboControl *control;
+ BonoboPersistStream *stream;
+ EItipControlPrivate *priv;
+
+ priv = g_new0 (EItipControlPrivate, 1);
+
+ priv->xml = glade_xml_new (EVOLUTION_GLADEDIR "/" "e-itip-control.glade", "main_frame");
+
+ /* Create the control. */
+ priv->main_frame = glade_xml_get_widget (priv->xml, "main_frame");
+ priv->text_box = glade_xml_get_widget (priv->xml, "text_box");
+ gtk_text_set_editable (GTK_TEXT (priv->text_box), FALSE);
+
+ gtk_signal_connect (GTK_OBJECT (priv->main_frame), "destroy",
+ GTK_SIGNAL_FUNC (control_destroy_cb), priv);
+
+ gtk_widget_show (priv->text_box);
+ gtk_widget_show (priv->main_frame);
+
+ control = bonobo_control_new (priv->main_frame);
+
+ stream = bonobo_persist_stream_new (pstream_load, pstream_save,
+ pstream_get_max_size,
+ pstream_get_content_types,
+ priv);
+
+ if (stream == NULL) {
+ bonobo_object_unref (BONOBO_OBJECT (control));
+ return NULL;
+ }
+
+ bonobo_object_add_interface (BONOBO_OBJECT (control),
+ BONOBO_OBJECT (stream));
+
+ return BONOBO_OBJECT (control);
+}
+
+void
+e_itip_control_factory_init (void)
+{
+ static BonoboGenericFactory *factory = NULL;
+
+ if (factory != NULL)
+ return;
+
+ factory =
+ bonobo_generic_factory_new (
+ "OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a",
+ e_itip_control_factory, NULL);
+
+ if (factory == NULL)
+ g_error ("I could not register an iTip control factory.");
+}
+
diff --git a/calendar/gui/e-itip-control.glade b/calendar/gui/e-itip-control.glade
new file mode 100644
index 0000000000..4f40977c90
--- /dev/null
+++ b/calendar/gui/e-itip-control.glade
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<GTK-Interface>
+
+<project>
+ <name>e-itip-control</name>
+ <program_name>e-itip-control</program_name>
+ <directory></directory>
+ <source_directory>src</source_directory>
+ <pixmaps_directory>pixmaps</pixmaps_directory>
+ <language>C</language>
+ <gnome_support>True</gnome_support>
+ <gettext_support>True</gettext_support>
+</project>
+
+<widget>
+ <class>GtkWindow</class>
+ <name>window1</name>
+ <visible>False</visible>
+ <title>window1</title>
+ <type>GTK_WINDOW_TOPLEVEL</type>
+ <position>GTK_WIN_POS_NONE</position>
+ <modal>False</modal>
+ <allow_shrink>False</allow_shrink>
+ <allow_grow>True</allow_grow>
+ <auto_shrink>False</auto_shrink>
+
+ <widget>
+ <class>GtkFrame</class>
+ <name>main_frame</name>
+ <border_width>4</border_width>
+ <label>Testing iTip control</label>
+ <label_xalign>0.11</label_xalign>
+ <shadow_type>GTK_SHADOW_ETCHED_IN</shadow_type>
+
+ <widget>
+ <class>GtkScrolledWindow</class>
+ <name>scrolledwindow1</name>
+ <hscrollbar_policy>GTK_POLICY_NEVER</hscrollbar_policy>
+ <vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
+ <hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
+ <vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
+
+ <widget>
+ <class>GtkText</class>
+ <name>text_box</name>
+ <can_focus>True</can_focus>
+ <editable>False</editable>
+ <text></text>
+ </widget>
+ </widget>
+ </widget>
+</widget>
+
+</GTK-Interface>
diff --git a/calendar/gui/e-itip-control.h b/calendar/gui/e-itip-control.h
new file mode 100644
index 0000000000..467f0578ef
--- /dev/null
+++ b/calendar/gui/e-itip-control.h
@@ -0,0 +1,8 @@
+#ifndef __E_ITIP_CONTROL_H__
+#define __E_ITIP_CONTROL_H__
+
+#include <bonobo/bonobo-control.h>
+
+void e_itip_control_factory_init (void);
+
+#endif /* __E_ITIP_CONTROL_H__ */
diff --git a/calendar/gui/e-meeting-edit.c b/calendar/gui/e-meeting-edit.c
index d8df270eff..6ae266174d 100644
--- a/calendar/gui/e-meeting-edit.c
+++ b/calendar/gui/e-meeting-edit.c
@@ -28,7 +28,6 @@
#define E_MEETING_GLADE_XML "e-meeting-dialog.glade"
-#define E_MEETING_DEBUG
typedef struct _EMeetingEditorPrivate EMeetingEditorPrivate;
@@ -105,10 +104,6 @@ window_delete_cb (GtkWidget *widget,
priv = (EMeetingEditorPrivate *) ((EMeetingEditor *)data)->priv;
-#ifdef E_MEETING_DEBUG
- g_printerr ("e-meeting-edit.c: The main window received a delete event.\n");
-#endif
-
if (priv->dirty == TRUE) {
/* FIXME: notify the event editor that our data has changed.
For now, I'll just display a dialog box. */
@@ -121,9 +116,6 @@ window_delete_cb (GtkWidget *widget,
prop = icalcomponent_get_first_property (priv->vevent, ICAL_ORGANIZER_PROPERTY);
text = gtk_entry_get_text (GTK_ENTRY (priv->organizer_entry));
-#ifdef E_MEETING_DEBUG
- g_print ("e-meeting-edit.c: The organizer entry is %s.\n", text);
-#endif
if (strlen (text) > 0) {
gchar buffer[200];
g_snprintf (buffer, 190, "MAILTO:%s", text);
@@ -155,10 +147,6 @@ window_destroy_cb (GtkWidget *widget,
{
EMeetingEditorPrivate *priv;
-#ifdef E_MEETING_DEBUG
- g_printerr ("e-meeting-edit.c: The main window received a destroy event.\n");
-#endif
-
priv = (EMeetingEditorPrivate *) ((EMeetingEditor *)data)->priv;
gtk_main_quit ();
@@ -202,9 +190,6 @@ put_property_in_list (icalproperty *prop, gint rownum, gpointer data)
param = get_icalparam_by_type (prop, ICAL_ROLE_PARAMETER);
if (param == NULL) {
-#ifdef E_MEETING_DEBUG
- g_print ("e-meeting-edit.c: within put_param...(), param is NULL.\n");
-#endif
param = icalparameter_new_role (ICAL_ROLE_REQPARTICIPANT);
icalproperty_add_parameter (prop, param);
}
@@ -212,9 +197,6 @@ put_property_in_list (icalproperty *prop, gint rownum, gpointer data)
enumval = icalparameter_get_role (param);
if (enumval < 0 || enumval > 4)
enumval = 4;
-#ifdef E_MEETING_DEBUG
- g_print ("e-meeting-edit.c: the role value is %d.\n", enumval);
-#endif
row_text[ROLE_COL] = role_values [enumval];
@@ -229,11 +211,6 @@ put_property_in_list (icalproperty *prop, gint rownum, gpointer data)
else
row_text[RSVP_COL] = "N";
-#ifdef E_MEETING_DEBUG
- g_print ("e-meeting-edit.c: the RSVP is %c.\n", row_text[RSVP_COL][0]);
-#endif
-
-
param = get_icalparam_by_type (prop, ICAL_PARTSTAT_PARAMETER);
if (param == NULL) {
param = icalparameter_new_partstat (ICAL_PARTSTAT_NEEDSACTION);
@@ -354,9 +331,6 @@ edit_attendee (icalproperty *prop, gpointer data)
param = NULL;
text = gtk_entry_get_text (GTK_ENTRY(priv->role_entry));
-#ifdef E_MEETING_DEBUG
- g_print ("e-meeting-edit.c: the role entry text is %s.\n", text);
-#endif
for (cntr = 0; cntr < 5; cntr++) {
if (strncmp (text, role_values[cntr], 3) == 0) {
@@ -396,10 +370,6 @@ add_button_clicked_cb (GtkWidget *widget, gpointer data)
icalproperty *prop;
icalparameter *param;
-#ifdef E_MEETING_DEBUG
- g_printerr ("e-meeting-edit.c: the add button was clicked.\n");
-#endif
-
priv = (EMeetingEditorPrivate *) ((EMeetingEditor *)data)->priv;
prop = icalproperty_new (ICAL_ATTENDEE_PROPERTY);
@@ -411,20 +381,12 @@ add_button_clicked_cb (GtkWidget *widget, gpointer data)
icalproperty_add_parameter (prop, param);
if (edit_attendee (prop, data) == TRUE) {
-#ifdef E_MEETING_DEBUG
- g_print ("e-meeting-edit.c: After edit_attendee()");
-#endif
-
/* Let's add this property to our component and to the CList. */
icalcomponent_add_property (priv->vevent, prop);
/* The -1 indicates that we should add a new row. */
put_property_in_list (prop, -1, data);
-#ifdef E_MEETING_DEBUG
- g_print ("e-meeting-edit.c: After put_property_in_list()");
-#endif
-
priv->dirty = TRUE;
}
else {
@@ -498,6 +460,11 @@ edit_button_clicked_cb (GtkWidget *widget, gpointer data)
icalproperty_remove_parameter (prop, ICAL_ROLE_PARAMETER);
icalproperty_remove_parameter (prop, ICAL_RSVP_PARAMETER);
+
+ param = get_icalparam_by_type (prop, ICAL_ROLE_PARAMETER);
+ if (param != NULL)
+ g_print ("e-meeting-edit.c: param should be NULL, but it isn't.\n");
+
icalproperty_remove_parameter (prop, ICAL_PARTSTAT_PARAMETER);
param = icalparameter_new_clone (get_icalparam_by_type (new_prop, ICAL_ROLE_PARAMETER));
@@ -652,10 +619,6 @@ e_meeting_edit (EMeetingEditor *editor)
if (prop != NULL) {
gchar *buffer;
-#ifdef E_MEETING_DEBUG
- g_print ("e-meeting-edit.c: The organizer property is not null.\n");
-#endif
-
value = icalproperty_get_value (prop);
buffer = g_strdup (icalvalue_as_ical_string (value));
if (buffer != NULL) {
@@ -671,11 +634,6 @@ e_meeting_edit (EMeetingEditor *editor)
}
}
-#ifdef E_MEETING_DEBUG
- else {
- g_print ("e-meeting-edit.c: the organizer property was NULL.\n");
- }
-#endif
priv->changed_signal_id = gtk_signal_connect (GTK_OBJECT (priv->organizer_entry), "changed",
GTK_SIGNAL_FUNC (organizer_changed_cb), editor);
@@ -695,10 +653,6 @@ e_meeting_edit (EMeetingEditor *editor)
gtk_main ();
-#ifdef E_MEETING_DEBUG
- g_printerr ("e-meeting-edit.c: We've terminated the subsidiary gtk_main().\n");
-#endif
-
if (priv->meeting_window != NULL)
gtk_widget_destroy (priv->meeting_window);
diff --git a/calendar/gui/evolution-calendar.oafinfo b/calendar/gui/evolution-calendar.oafinfo
index 25279ccaeb..a772bca77b 100644
--- a/calendar/gui/evolution-calendar.oafinfo
+++ b/calendar/gui/evolution-calendar.oafinfo
@@ -1,5 +1,39 @@
<oaf_info>
+<oaf_server iid="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a"
+ type="exe"
+ location="evolution-calendar">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:GNOME/GenericFactory:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
+<oaf_server iid="OAFIID:control:e_itipview:1eef8614-cce4-4398-aed4-f32e920fb6ad"
+ type="factory"
+ location="OAFIID:control-factory:e_itipview:10441fcf-9a4f-4bf9-a026-d50b5462d45a">
+
+ <oaf_attribute name="repo_ids" type="stringv">
+ <item value="IDL:Bonobo/Control:1.0"/>
+ <item value="IDL:Bonobo/PersistStream:1.0"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="bonobo:supported_mime_types" type="stringv">
+ <item value="text/calendar"/>
+ <item value="text/x-calendar"/>
+ </oaf_attribute>
+
+ <oaf_attribute name="name" type="string"
+ value="Evolution calendar iTip/iMip viewer"/>
+ <oaf_attribute name="description" type="string"
+ value="Factory for the calendar iTip view control"/>
+
+</oaf_server>
+
<oaf_server iid="OAFIID:evolution-shell-component-factory:evolution-calendar:cba77062-1466-4aac-8ce7-b019eaf2e921"
type="exe"
location="evolution-calendar">
diff --git a/calendar/gui/main.c b/calendar/gui/main.c
index 4474a64d8b..3016d9cb70 100644
--- a/calendar/gui/main.c
+++ b/calendar/gui/main.c
@@ -40,7 +40,7 @@
#include <gui/calendar-commands.h>
#include "component-factory.h"
#include "control-factory.h"
-
+#include "e-itip-control.h"
static void
init_bonobo (int *argc, char **argv)
@@ -75,6 +75,7 @@ main (int argc, char **argv)
control_factory_init ();
component_factory_init ();
+ e_itip_control_factory_init ();
bonobo_main ();
fprintf (stderr, "main(): Out of bonobo_main(), we are dying cleanly. Have a nice day.\n");