OBS User unknown 2009-02-09 11:46:14 +00:00 committed by Git OBS Bridge
parent 8a3412e6ae
commit 7f96199b98
46 changed files with 643 additions and 6638 deletions

View File

@ -1,15 +0,0 @@
Index: e-util/e-config.c
===================================================================
--- e-util/e-config.c (revision 36811)
+++ e-util/e-config.c (working copy)
@@ -122,6 +122,10 @@ ep_finalise(GObject *o)
}
while ( (wn = (struct _widget_node *)e_dlist_remhead(&p->widgets)) ) {
+ /* disconnect the gtk_widget_destroyed function from the widget */
+ if (wn->widget)
+ g_signal_handlers_disconnect_matched (wn->widget, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, &wn->widget);
+
g_free(wn);
}

View File

@ -1,105 +0,0 @@
Index: calendar/gui/gnome-cal.c
===================================================================
--- calendar/gui/gnome-cal.c (revision 36783)
+++ calendar/gui/gnome-cal.c (working copy)
@@ -194,6 +194,9 @@ struct _GnomeCalendarPrivate {
/* We should know which calendar has been used to create object, so store it here
before emitting "user_created" signal and make it NULL just after the emit. */
ECal *user_created_cal;
+
+ /* used in update_todo_view, to prevent interleaving when called in separate thread */
+ GMutex *todo_update_lock;
};
/* Signal IDs */
@@ -885,6 +888,8 @@ update_query_async (struct _date_query_m
real_sexp = adjust_e_cal_view_sexp (gcal, priv->sexp);
if (!real_sexp) {
+ g_object_unref (msg->gcal);
+ g_slice_free (struct _date_query_msg, msg);
return; /* No time range is set, so don't start a query */
}
@@ -1304,18 +1309,30 @@ timezone_changed_cb (GConfClient *client
set_timezone (calendar);
}
+struct _mupdate_todo_msg {
+ Message header;
+ GnomeCalendar *gcal;
+};
+
static void
-update_todo_view (GnomeCalendar *gcal)
+update_todo_view_async (struct _mupdate_todo_msg *msg)
{
+ GnomeCalendar *gcal;
GnomeCalendarPrivate *priv;
ECalModel *model;
char *sexp = NULL;
+ g_return_if_fail (msg != NULL);
+
+ gcal = msg->gcal;
priv = gcal->priv;
+ g_mutex_lock (priv->todo_update_lock);
+
/* Set the query on the task pad */
if (priv->todo_sexp) {
g_free (priv->todo_sexp);
+ priv->todo_sexp = NULL;
}
model = e_calendar_table_get_model (E_CALENDAR_TABLE (priv->todo));
@@ -1330,6 +1347,22 @@ update_todo_view (GnomeCalendar *gcal)
e_cal_model_set_search_query (model, priv->todo_sexp);
}
+ g_mutex_unlock (priv->todo_update_lock);
+
+ g_object_unref (msg->gcal);
+ g_slice_free (struct _mupdate_todo_msg, msg);
+}
+
+static void
+update_todo_view (GnomeCalendar *gcal)
+{
+ struct _mupdate_todo_msg *msg;
+
+ msg = g_slice_new0 (struct _mupdate_todo_msg);
+ msg->header.func = (MessageFunc) update_todo_view_async;
+ msg->gcal = g_object_ref (gcal);
+
+ message_push ((Message *) msg);
}
static void
@@ -1661,7 +1694,7 @@ setup_widgets (GnomeCalendar *gcal)
"TaskPad", NULL);
e_calendar_table_load_state (E_CALENDAR_TABLE (priv->todo), filename);
- update_todo_view (gcal);
+ /* update_todo_view (gcal); */
g_free (filename);
etable = e_calendar_table_get_table (E_CALENDAR_TABLE (priv->todo));
@@ -1828,6 +1861,8 @@ gnome_calendar_init (GnomeCalendar *gcal
e_categories_register_change_listener (G_CALLBACK (categories_changed_cb), gcal);
+ priv->todo_update_lock = g_mutex_new ();
+
priv->current_view_type = GNOME_CAL_DAY_VIEW;
priv->range_selected = FALSE;
priv->lview_select_daten_range = TRUE;
@@ -2004,6 +2039,8 @@ gnome_calendar_destroy (GtkObject *objec
g_signal_handlers_disconnect_by_func (cal_model,
G_CALLBACK (view_done_cb), gcal);
+ g_mutex_free (priv->todo_update_lock);
+
g_free (priv);
gcal->priv = NULL;
}

View File

@ -1,270 +0,0 @@
Index: calendar/gui/alarm-notify/alarm-notify-dialog.c
===================================================================
--- calendar/gui/alarm-notify/alarm-notify-dialog.c (revision 36738)
+++ calendar/gui/alarm-notify/alarm-notify-dialog.c (working copy)
@@ -67,6 +67,7 @@ typedef struct {
GtkWidget *snooze_time_min;
GtkWidget *snooze_time_hrs;
GtkWidget *snooze_btn;
+ GtkWidget *dismiss_btn;
GtkWidget *minutes_label;
GtkWidget *hrs_label;
GtkWidget *description;
@@ -191,7 +192,30 @@ snooze_pressed_cb (GtkButton *button, gp
if (!snooze_timeout)
snooze_timeout = DEFAULT_SNOOZE_MINS;
(* funcinfo->func) (ALARM_NOTIFY_SNOOZE, snooze_timeout, funcinfo->func_data);
+}
+
+static void
+dismiss_pressed_cb (GtkButton *button, gpointer user_data)
+{
+ AlarmNotify *an = user_data;
+ GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (an->treeview));
+
+ g_return_if_fail (model != NULL);
+ if (gtk_tree_model_iter_n_children (model, NULL) <= 1) {
+ gtk_dialog_response (GTK_DIALOG (an->dialog), GTK_RESPONSE_CLOSE);
+ } else {
+ GtkTreeIter iter;
+ 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);
+
+ (* funcinfo->func) (ALARM_NOTIFY_DISMISS, -1, funcinfo->func_data);
+ }
}
static void
@@ -256,10 +280,11 @@ notified_alarms_dialog_new (void)
an->scrolledwindow = glade_xml_get_widget (an->xml, "treeview-scrolledwindow");
snooze_btn = glade_xml_get_widget (an->xml, "snooze-button");
an->snooze_btn = snooze_btn;
+ an->dismiss_btn = glade_xml_get_widget (an->xml, "dismiss-button");
edit_btn = glade_xml_get_widget (an->xml, "edit-button");
if (!(an->dialog && an->scrolledwindow && an->treeview && an->snooze_time_min && an->snooze_time_hrs
- && an->description && an->location && edit_btn && snooze_btn)) {
+ && an->description && an->location && edit_btn && snooze_btn && an->dismiss_btn)) {
g_message ("alarm_notify_dialog(): Could not find all widgets in Glade file!");
g_object_unref (an->xml);
g_free (an);
@@ -292,6 +317,7 @@ notified_alarms_dialog_new (void)
g_signal_connect (edit_btn, "clicked", G_CALLBACK (edit_pressed_cb), an);
g_signal_connect (snooze_btn, "clicked", G_CALLBACK (snooze_pressed_cb), an);
+ g_signal_connect (an->dismiss_btn, "clicked", G_CALLBACK (dismiss_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: calendar/gui/alarm-notify/alarm-notify-dialog.h
===================================================================
--- calendar/gui/alarm-notify/alarm-notify-dialog.h (revision 36738)
+++ calendar/gui/alarm-notify/alarm-notify-dialog.h (working copy)
@@ -32,7 +32,8 @@
typedef enum {
ALARM_NOTIFY_CLOSE,
ALARM_NOTIFY_SNOOZE,
- ALARM_NOTIFY_EDIT
+ ALARM_NOTIFY_EDIT,
+ ALARM_NOTIFY_DISMISS
} AlarmNotifyResult;
typedef struct _AlarmNotificationsDialog AlarmNotificationsDialog;
Index: calendar/gui/alarm-notify/alarm-queue.c
===================================================================
--- calendar/gui/alarm-notify/alarm-queue.c (revision 36738)
+++ calendar/gui/alarm-notify/alarm-queue.c (working copy)
@@ -1248,6 +1248,13 @@ notify_dialog_cb (AlarmNotifyResult resu
break;
+ case ALARM_NOTIFY_DISMISS:
+ if (alarm_notifications_dialog) {
+ GtkTreeModel *model = gtk_tree_view_get_model (GTK_TREE_VIEW (alarm_notifications_dialog->treeview));
+ gtk_list_store_remove (GTK_LIST_STORE (model), &tray_data->iter);
+ }
+ break;
+
case ALARM_NOTIFY_CLOSE:
d(printf("%s:%d (notify_dialog_cb) - Dialog close\n",__FILE__, __LINE__));
if (alarm_notifications_dialog) {
@@ -1268,7 +1275,7 @@ notify_dialog_cb (AlarmNotifyResult resu
/* Task to remove the tray icons */
tray_list_remove_icons ();
- }
+ }
break;
Index: calendar/gui/alarm-notify/alarm-notify.glade
===================================================================
--- calendar/gui/alarm-notify/alarm-notify.glade (revision 36738)
+++ calendar/gui/alarm-notify/alarm-notify.glade (working copy)
@@ -37,11 +37,73 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
- <property name="label">gtk-close</property>
- <property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-7</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment4">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox9">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image6">
+ <property name="visible">True</property>
+ <property name="stock">gtk-close</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label19">
+ <property name="visible">True</property>
+ <property name="label">Dismiss _all</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
</widget>
</child>
</widget>
@@ -527,6 +589,84 @@
<property name="fill">False</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkButton" id="dismiss-button">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+
+ <child>
+ <widget class="GtkAlignment" id="alignment5">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+
+ <child>
+ <widget class="GtkHBox" id="hbox10">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+
+ <child>
+ <widget class="GtkImage" id="image7">
+ <property name="visible">True</property>
+ <property name="stock">gtk-apply</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label20">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Dismiss</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>

View File

@ -1,57 +0,0 @@
Index: calendar/gui/e-calendar-table.c
===================================================================
--- calendar/gui/e-calendar-table.c (revision 36811)
+++ calendar/gui/e-calendar-table.c (working copy)
@@ -432,7 +432,7 @@ query_tooltip_cb (GtkWidget *widget, gin
e_cal_component_free_datetime (&dtstart);
e_cal_component_free_datetime (&dtdue);
- tmp = e_calendar_view_get_attendees_status_info (new_comp);
+ tmp = e_calendar_view_get_attendees_status_info (new_comp, comp->client);
if (tmp) {
l = gtk_label_new (tmp);
gtk_misc_set_alignment (GTK_MISC (l), 0.0, 0.5);
Index: calendar/gui/e-calendar-view.c
===================================================================
--- calendar/gui/e-calendar-view.c (revision 36811)
+++ calendar/gui/e-calendar-view.c (working copy)
@@ -2137,7 +2137,7 @@ e_calendar_view_move_tip (GtkWidget *wid
* Free returned pointer with g_free.
**/
char *
-e_calendar_view_get_attendees_status_info (ECalComponent *comp)
+e_calendar_view_get_attendees_status_info (ECalComponent *comp, ECal *client)
{
struct _values {
icalparameter_partstat status;
@@ -2158,7 +2158,7 @@ e_calendar_view_get_attendees_status_inf
char *res = NULL;
int i;
- if (!comp || !e_cal_component_has_attendees (comp))
+ if (!comp || !e_cal_component_has_attendees (comp) || !itip_organizer_is_user (comp, client))
return NULL;
e_cal_component_get_attendee_list (comp, &attendees);
@@ -2354,7 +2354,7 @@ e_calendar_view_get_tooltips (ECalendarV
g_free (tmp2);
g_free (tmp1);
- tmp = e_calendar_view_get_attendees_status_info (newcomp);
+ tmp = e_calendar_view_get_attendees_status_info (newcomp, pevent->comp_data->client);
if (tmp) {
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start ((GtkBox *)hbox, gtk_label_new (tmp), FALSE, FALSE, 0);
Index: calendar/gui/e-calendar-view.h
===================================================================
--- calendar/gui/e-calendar-view.h (revision 36811)
+++ calendar/gui/e-calendar-view.h (working copy)
@@ -175,7 +175,7 @@ gboolean e_calendar_view_get_tooltips (E
void e_calendar_view_move_tip (GtkWidget *widget, int x, int y);
const gchar *e_calendar_view_get_icalcomponent_summary (ECal *ecal, icalcomponent *icalcomp, gboolean *free_text);
-char *e_calendar_view_get_attendees_status_info (ECalComponent *comp);
+char *e_calendar_view_get_attendees_status_info (ECalComponent *comp, ECal *client);
void draw_curved_rectangle (cairo_t *cr,
double x0,

View File

@ -1,58 +0,0 @@
Index: calendar/gui/itip-utils.c
===================================================================
--- calendar/gui/itip-utils.c (revision 37007)
+++ calendar/gui/itip-utils.c (working copy)
@@ -83,13 +83,13 @@ itip_addresses_get_default (void)
}
gboolean
-itip_organizer_is_user (ECalComponent *comp, ECal *client)
+itip_organizer_is_user_ex (ECalComponent *comp, ECal *client, gboolean skip_cap_test)
{
ECalComponentOrganizer organizer;
const char *strip;
gboolean user_org = FALSE;
- if (!e_cal_component_has_organizer (comp) || e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_NO_ORGANIZER))
+ if (!e_cal_component_has_organizer (comp) || (!skip_cap_test && e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_NO_ORGANIZER)))
return FALSE;
e_cal_component_get_organizer (comp, &organizer);
@@ -117,6 +117,12 @@ itip_organizer_is_user (ECalComponent *c
}
gboolean
+itip_organizer_is_user (ECalComponent *comp, ECal *client)
+{
+ return itip_organizer_is_user_ex (comp, client, FALSE);
+}
+
+gboolean
itip_sentby_is_user (ECalComponent *comp)
{
ECalComponentOrganizer organizer;
Index: calendar/gui/itip-utils.h
===================================================================
--- calendar/gui/itip-utils.h (revision 37007)
+++ calendar/gui/itip-utils.h (working copy)
@@ -51,6 +51,7 @@ EAccountList *itip_addresses_get (void);
EAccount *itip_addresses_get_default (void);
gboolean itip_organizer_is_user (ECalComponent *comp, ECal *client);
+gboolean itip_organizer_is_user_ex (ECalComponent *comp, ECal *client, gboolean skip_cap_test);
gboolean itip_sentby_is_user (ECalComponent *comp);
const gchar *itip_strip_mailto (const gchar *address);
Index: calendar/gui/e-calendar-view.c
===================================================================
--- calendar/gui/e-calendar-view.c (revision 37007)
+++ calendar/gui/e-calendar-view.c (working copy)
@@ -2234,7 +2234,7 @@ e_calendar_view_get_attendees_status_inf
char *res = NULL;
int i;
- if (!comp || !e_cal_component_has_attendees (comp) || !itip_organizer_is_user (comp, client))
+ if (!comp || !e_cal_component_has_attendees (comp) || !itip_organizer_is_user_ex (comp, client, TRUE))
return NULL;
e_cal_component_get_attendee_list (comp, &attendees);

View File

@ -1,91 +0,0 @@
--- plugins/exchange-operations/exchange-account-setup.c 2008/12/02 05:51:59 36824
+++ plugins/exchange-operations/exchange-account-setup.c 2008/12/02 12:23:33 36825
@@ -613,6 +613,30 @@
update_mailbox_param_in_url (target->account, E_ACCOUNT_TRANSPORT_URL, mailbox);
}
+static void
+want_mailbox_toggled (GtkWidget *toggle, EConfig *config)
+{
+ GtkWidget *entry;
+
+ g_return_if_fail (toggle != NULL);
+ g_return_if_fail (config != NULL);
+
+ entry = g_object_get_data (G_OBJECT (toggle), "mailbox-entry");
+ if (entry) {
+ gboolean is_active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle));
+ EMConfigTargetAccount *target;
+ const char *mailbox;
+
+ gtk_widget_set_sensitive (entry, is_active);
+
+ target = (EMConfigTargetAccount *)config->target;
+ mailbox = gtk_entry_get_text (GTK_ENTRY (entry));
+
+ update_mailbox_param_in_url (target->account, E_ACCOUNT_SOURCE_URL, is_active ? mailbox : NULL);
+ update_mailbox_param_in_url (target->account, E_ACCOUNT_TRANSPORT_URL, is_active ? mailbox : NULL);
+ }
+}
+
static char *
construct_owa_url (CamelURL *url)
{
@@ -645,8 +669,8 @@
{
EMConfigTargetAccount *target_account;
const char *source_url;
- char *owa_url = NULL, *mailbox_name;
- GtkWidget *owa_entry, *mailbox_entry;
+ char *owa_url = NULL, *mailbox_name, *username;
+ GtkWidget *owa_entry, *mailbox_entry, *want_mailbox_check;
CamelURL *url;
int row;
GtkWidget *hbox, *label, *button;
@@ -679,6 +703,7 @@
owa_url = g_strdup (camel_url_get_param(url, "owa_url"));
mailbox_name = g_strdup (camel_url_get_param (url, "mailbox"));
+ username = g_strdup (url->user);
/* if the host is null, then user+other info is dropped silently, force it to be kept */
if (url->host == NULL) {
@@ -740,6 +765,19 @@
owa_editor_entry_changed (owa_entry, data->config);
row++;
+ want_mailbox_check = gtk_check_button_new_with_mnemonic (_("S_pecify the mailbox name"));
+ gtk_widget_show (want_mailbox_check);
+ gtk_table_attach (GTK_TABLE (data->parent), want_mailbox_check, 1, 2, row, row+1, GTK_FILL, GTK_FILL, 0, 0);
+ if (!username || !*username || !mailbox_name || !*mailbox_name ||
+ g_ascii_strcasecmp (username, mailbox_name) == 0 ||
+ (strchr (username, '/') && g_ascii_strcasecmp (strchr (username, '/') + 1, mailbox_name) == 0)) {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (want_mailbox_check), FALSE);
+ } else {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (want_mailbox_check), TRUE);
+ }
+ g_signal_connect (want_mailbox_check, "toggled", G_CALLBACK (want_mailbox_toggled), data->config);
+
+ row++;
label = gtk_label_new_with_mnemonic (_("_Mailbox:"));
gtk_widget_show (label);
@@ -750,14 +788,18 @@
gtk_label_set_mnemonic_widget (GTK_LABEL (label), mailbox_entry);
+ gtk_widget_set_sensitive (mailbox_entry, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (want_mailbox_check)));
+
g_signal_connect (mailbox_entry, "changed", G_CALLBACK (mailbox_editor_entry_changed), data->config);
g_object_set_data (G_OBJECT (button), "mailbox-entry", mailbox_entry);
+ g_object_set_data (G_OBJECT (want_mailbox_check), "mailbox-entry", mailbox_entry);
gtk_table_attach (GTK_TABLE (data->parent), label, 0, 1, row, row+1, 0, 0, 0, 0);
gtk_table_attach (GTK_TABLE (data->parent), mailbox_entry, 1, 2, row, row+1, GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0);
g_free (owa_url);
g_free (mailbox_name);
+ g_free (username);
return hbox;
}

View File

@ -1,60 +0,0 @@
Index: composer/e-msg-composer.c
===================================================================
--- composer/e-msg-composer.c (revision 36891)
+++ composer/e-msg-composer.c (working copy)
@@ -67,6 +67,7 @@
#include "e-util/e-plugin-ui.h"
#include "e-util/e-util-private.h"
#include "e-util/e-util.h"
+#include "e-util/e-mktemp.h"
#include <mail/em-event.h>
#include "e-signature-combo-box.h"
@@ -2454,6 +2455,7 @@ msg_composer_paste_clipboard (GtkhtmlEdi
EMsgComposer *composer;
GtkWidget *parent;
GtkWidget *widget;
+ GtkClipboard *clipboard;
composer = E_MSG_COMPOSER (editor);
widget = gtk_window_get_focus (GTK_WINDOW (editor));
@@ -2464,8 +2466,37 @@ msg_composer_paste_clipboard (GtkhtmlEdi
return;
}
- /* Chain up to parent's paste_clipboard() method. */
- GTKHTML_EDITOR_CLASS (parent_class)->paste_clipboard (editor);
+ clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
+ if (clipboard && gtk_clipboard_wait_is_image_available (clipboard)) {
+ GdkPixbuf *pixbuf;
+
+ pixbuf = gtk_clipboard_wait_for_image (clipboard);
+ if (pixbuf) {
+ char *tmpl = g_strconcat (_("Image"), "-XXXXXX", NULL);
+ char *filename = e_mktemp (tmpl);
+
+ g_free (tmpl);
+
+ if (filename && gdk_pixbuf_save (pixbuf, filename, "png", NULL, NULL)) {
+ if (gtkhtml_editor_get_html_mode (editor)) {
+ char *uri = g_strconcat ("file://", filename, NULL);
+ /* this loads image async, thus cannot remove file from this */
+ gtkhtml_editor_insert_image (editor, uri);
+ g_free (uri);
+ } else {
+ /* this loads image immediately, remove file from cache to free up disk space */
+ e_attachment_bar_attach (E_ATTACHMENT_BAR (composer->priv->attachment_bar), filename, "image/png");
+ g_remove (filename);
+ }
+ }
+
+ g_free (filename);
+ g_object_unref (pixbuf);
+ }
+ } else {
+ /* Chain up to parent's paste_clipboard() method. */
+ GTKHTML_EDITOR_CLASS (parent_class)->paste_clipboard (editor);
+ }
}
static void

View File

@ -1,51 +0,0 @@
--- plugins/mail-notification/mail-notification.c
+++ plugins/mail-notification/mail-notification.c
@@ -56,6 +56,7 @@
static gboolean enabled = FALSE;
static GtkWidget *get_cfg_widget (void);
+static GStaticMutex mlock = G_STATIC_MUTEX_INIT;
/**
* each part should "implement" its own "public" functions:
@@ -441,6 +442,24 @@ popup_menu_status (GtkStatusIcon *status_icon, guint button, guint activate_time
g_object_unref (menu);
}
+static void
+notifyActionCallback (NotifyNotification *n, gchar *label, gpointer a)
+{
+ g_static_mutex_lock (&mlock);
+
+ gtk_status_icon_set_visible (status_icon, FALSE);
+ g_object_unref (status_icon);
+
+ if (blink_timeout_id) {
+ g_source_remove (blink_timeout_id);
+ blink_timeout_id = 0;
+ }
+
+ status_icon = NULL;
+ status_count = 0;
+ g_static_mutex_unlock (&mlock);
+}
+
static void
new_notify_status (EMEventTargetFolder *t)
{
@@ -487,6 +506,7 @@ new_notify_status (EMEventTargetFolder *t)
notify_notification_set_urgency (notify, NOTIFY_URGENCY_NORMAL);
notify_notification_set_timeout (notify, NOTIFY_EXPIRES_DEFAULT);
+ notify_notification_add_action(notify, "default", "Default", notifyActionCallback, NULL, NULL);
g_timeout_add (500, notification_callback, notify);
}
}
@@ -835,7 +855,6 @@ void org_gnome_mail_read_notify (EPlugin *ep, EMEventTargetMessage *t);
int e_plugin_lib_enable (EPluginLib *ep, int enable);
GtkWidget *e_plugin_lib_get_configure_widget (EPlugin *epl);
-static GStaticMutex mlock = G_STATIC_MUTEX_INIT;
void
org_gnome_mail_new_notify (EPlugin *ep, EMEventTargetFolder *t)

View File

@ -1,33 +0,0 @@
--- calendar/gui/e-meeting-list-view.c
+++ calendar/gui/e-meeting-list-view.c
@@ -471,6 +471,21 @@ status_edited_cb (GtkCellRenderer *renderer, const gchar *path, const gchar *tex
}
static void
+ense_update (GtkWidget *w, gpointer data1, gpointer user_data)
+{
+ gtk_cell_editable_editing_done ((GtkCellEditable *)w);
+}
+
+static void
+editing_started_cb (GtkCellRenderer *renderer,
+ GtkCellEditable *editable,
+ gchar *path,
+ gpointer user_data)
+{
+ g_signal_connect (editable, "updated", G_CALLBACK(ense_update), NULL);
+}
+
+static void
build_table (EMeetingListView *lview)
{
GtkCellRenderer *renderer;
@@ -501,6 +516,8 @@ build_table (EMeetingListView *lview)
g_object_set_data (G_OBJECT (col), "mtg-store-col", GINT_TO_POINTER (E_MEETING_STORE_ATTENDEE_COL));
g_signal_connect (renderer, "cell_edited", G_CALLBACK (attendee_edited_cb), view);
g_signal_connect (renderer, "editing-canceled", G_CALLBACK (attendee_editing_canceled_cb), view);
+ g_signal_connect (renderer, "editing-started", G_CALLBACK (editing_started_cb), view);
+
g_hash_table_insert (edit_table, GINT_TO_POINTER (E_MEETING_STORE_ATTENDEE_COL), renderer);
renderer = e_cell_renderer_combo_new ();

View File

@ -1,496 +0,0 @@
Index: calendar/gui/e-day-view-main-item.c
===================================================================
--- calendar/gui/e-day-view-main-item.c (revision 36947)
+++ calendar/gui/e-day-view-main-item.c (working copy)
@@ -940,146 +940,18 @@
if (day_view->resize_drag_pos != E_CALENDAR_VIEW_POS_NONE
&& day_view->resize_event_day == day
&& day_view->resize_event_num == event_num) {
- resize_flag = TRUE;
+ /* If the item is being resized, don't resized it.
+ I have removed code which are resized the meeting.
+ It will block the resize or move the meeting in
+ calendar UI from attendee side.*/
if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_TOP_EDGE)
bar_y1 = item_y + 1;
- else if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_BOTTOM_EDGE) {
+ else if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_BOTTOM_EDGE)
bar_y2 = item_y + item_h - 1;
-
- end_minute = event->end_minute;
-
- end_hour = end_minute / 60;
- end_minute = end_minute % 60;
-
- e_day_view_convert_time_to_display (day_view, end_hour,
- &end_display_hour,
- &end_resize_suffix,
- &end_suffix_width);
-
- cairo_save (cr);
- cairo_rectangle (cr, item_x + E_DAY_VIEW_BAR_WIDTH + 1.75, item_y + 2.75,
- item_w - E_DAY_VIEW_BAR_WIDTH - 4.5,
- item_h - 5.5);
- cairo_clip (cr);
- cairo_new_path (cr);
-
- if (e_calendar_view_get_use_24_hour_format (E_CALENDAR_VIEW (day_view))) {
- cairo_translate (cr, item_x + item_w - E_DAY_VIEW_BAR_WIDTH - 32, item_y + item_h - 8);
- end_resize_time = g_strdup_printf ("%2i:%02i",
- end_display_hour, end_minute);
-
- } else {
- cairo_translate (cr, item_x + item_w - E_DAY_VIEW_BAR_WIDTH - 48, item_y + item_h - 8);
- end_resize_time = g_strdup_printf ("%2i:%02i%s",
- end_display_hour, end_minute,
- end_resize_suffix);
- }
- cairo_set_font_size (cr, 14);
- if ((red/cc > 0.7) || (green/cc > 0.7) || (blue/cc > 0.7 ))
- cairo_set_source_rgb (cr, 0, 0, 0);
- else
- cairo_set_source_rgb (cr, 1, 1, 1);
- cairo_set_font_options (cr, font_options);
- cairo_show_text (cr, end_resize_time);
- cairo_close_path (cr);
- cairo_restore (cr);
- }
}
- if (bar_y2 > scroll_flag)
- event->end_minute += day_view->mins_per_row;
- else if (bar_y2 < scroll_flag)
- event->end_minute -= day_view->mins_per_row;
-
- if (!short_event)
- {
- if (event->start_minute % day_view->mins_per_row != 0
- || (day_view->show_event_end_times
- && event->end_minute % day_view->mins_per_row != 0)) {
- offset = day_view->first_hour_shown * 60
- + day_view->first_minute_shown;
- show_span = TRUE;
- } else {
- offset = 0;
- }
- start_minute = offset + event->start_minute;
- end_minute = offset + event->end_minute;
-
- format_time = (((end_minute - start_minute)/day_view->mins_per_row) >= 2) ? TRUE : FALSE;
-
- start_hour = start_minute / 60;
- start_minute = start_minute % 60;
-
- end_hour = end_minute / 60;
- end_minute = end_minute % 60;
-
- e_day_view_convert_time_to_display (day_view, start_hour,
- &start_display_hour,
- &start_suffix,
- &start_suffix_width);
- e_day_view_convert_time_to_display (day_view, end_hour,
- &end_display_hour,
- &end_suffix,
- &end_suffix_width);
-
- if (e_calendar_view_get_use_24_hour_format (E_CALENDAR_VIEW (day_view))) {
- if (day_view->show_event_end_times && show_span) {
- /* 24 hour format with end time. */
- text = g_strdup_printf
- ("%2i:%02i-%2i:%02i",
- start_display_hour, start_minute,
- end_display_hour, end_minute);
- } else {
- if (format_time) {
- /* 24 hour format without end time. */
- text = g_strdup_printf
- ("%2i:%02i",
- start_display_hour, start_minute);
- }
- }
- } else {
- if (day_view->show_event_end_times && show_span) {
- /* 12 hour format with end time. */
- text = g_strdup_printf
- ("%2i:%02i%s-%2i:%02i%s",
- start_display_hour, start_minute,
- start_suffix,
- end_display_hour, end_minute, end_suffix);
- } else {
- /* 12 hour format without end time. */
- text = g_strdup_printf
- ("%2i:%02i%s",
- start_display_hour, start_minute,
- start_suffix);
- }
- }
-
- cairo_save (cr);
- cairo_rectangle (cr, item_x + E_DAY_VIEW_BAR_WIDTH + 1.75, item_y + 2.75,
- item_w - E_DAY_VIEW_BAR_WIDTH - 4.5,
- 14);
- cairo_clip (cr);
- cairo_new_path (cr);
- if (resize_flag)
- cairo_move_to (cr, item_x + E_DAY_VIEW_BAR_WIDTH + 10, item_y + 13);
- else
- cairo_move_to (cr, item_x + E_DAY_VIEW_BAR_WIDTH + 14, item_y + 13);
- if ((red/cc > 0.7) || (green/cc > 0.7) || (blue/cc > 0.7 ))
- cairo_set_source_rgb (cr, 0, 0, 0);
- else
- cairo_set_source_rgb (cr, 1, 1, 1);
- cairo_set_font_size (cr, 14.0);
- cairo_set_font_options (cr, font_options);
- cairo_show_text (cr, text);
- cairo_close_path (cr);
- cairo_restore (cr);
- }
-
- if (font_options)
- cairo_font_options_destroy (font_options);
-
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
@@ -1115,188 +987,181 @@
&day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR]);
/* Draw the reminder & recurrence icons, if needed. */
- if (!resize_flag) {
- num_icons = 0;
- draw_reminder_icon = FALSE;
- draw_recurrence_icon = FALSE;
- draw_timezone_icon = FALSE;
- draw_meeting_icon = FALSE;
- draw_attach_icon = FALSE;
- icon_x = item_x + E_DAY_VIEW_BAR_WIDTH + E_DAY_VIEW_ICON_X_PAD;
- icon_y = item_y + E_DAY_VIEW_EVENT_BORDER_HEIGHT
- + E_DAY_VIEW_ICON_Y_PAD;
+ num_icons = 0;
+ draw_reminder_icon = FALSE;
+ draw_recurrence_icon = FALSE;
+ draw_timezone_icon = FALSE;
+ draw_meeting_icon = FALSE;
+ draw_attach_icon = FALSE;
+ icon_x = item_x + E_DAY_VIEW_BAR_WIDTH + E_DAY_VIEW_ICON_X_PAD;
+ icon_y = item_y + E_DAY_VIEW_EVENT_BORDER_HEIGHT
+ + E_DAY_VIEW_ICON_Y_PAD;
- if (e_cal_component_has_alarms (comp)) {
- draw_reminder_icon = TRUE;
- num_icons++;
- }
+ if (e_cal_component_has_alarms (comp)) {
+ draw_reminder_icon = TRUE;
+ num_icons++;
+ }
- if (e_cal_component_has_recurrences (comp) || e_cal_component_is_instance (comp)) {
- draw_recurrence_icon = TRUE;
- num_icons++;
- }
- if (e_cal_component_has_attachments (comp)) {
- draw_attach_icon = TRUE;
- num_icons++;
- }
- /* If the DTSTART or DTEND are in a different timezone to our current
- timezone, we display the timezone icon. */
- if (event->different_timezone) {
- draw_timezone_icon = TRUE;
- num_icons++;
- }
+ if (e_cal_component_has_recurrences (comp) || e_cal_component_is_instance (comp)) {
+ draw_recurrence_icon = TRUE;
+ num_icons++;
+ }
+ if (e_cal_component_has_attachments (comp)) {
+ draw_attach_icon = TRUE;
+ num_icons++;
+ }
+ /* If the DTSTART or DTEND are in a different timezone to our current
+ timezone, we display the timezone icon. */
+ if (event->different_timezone) {
+ draw_timezone_icon = TRUE;
+ num_icons++;
+ }
- if (e_cal_component_has_organizer (comp)) {
- draw_meeting_icon = TRUE;
- num_icons++;
- }
+ if (e_cal_component_has_organizer (comp)) {
+ draw_meeting_icon = TRUE;
+ num_icons++;
+ }
- num_icons += cal_comp_util_get_n_icons (comp);
- e_cal_component_get_categories_list (comp, &categories_list);
+ num_icons += cal_comp_util_get_n_icons (comp);
+ e_cal_component_get_categories_list (comp, &categories_list);
- if (num_icons != 0) {
- if (item_h >= (E_DAY_VIEW_ICON_HEIGHT + E_DAY_VIEW_ICON_Y_PAD)
- * num_icons) {
- icon_x_inc = 0;
- icon_y_inc = E_DAY_VIEW_ICON_HEIGHT
- + E_DAY_VIEW_ICON_Y_PAD;
- } else {
- icon_x_inc = E_DAY_VIEW_ICON_WIDTH
- + E_DAY_VIEW_ICON_X_PAD;
- icon_y_inc = 0;
- }
+ if (num_icons != 0) {
+ if (item_h >= (E_DAY_VIEW_ICON_HEIGHT + E_DAY_VIEW_ICON_Y_PAD)
+ * num_icons) {
+ icon_x_inc = 0;
+ icon_y_inc = E_DAY_VIEW_ICON_HEIGHT
+ + E_DAY_VIEW_ICON_Y_PAD;
+ } else {
+ icon_x_inc = E_DAY_VIEW_ICON_WIDTH
+ + E_DAY_VIEW_ICON_X_PAD;
+ icon_y_inc = 0;
+ }
- if (draw_reminder_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ if (draw_reminder_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- cairo_save (cr);
- cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
- cairo_clip (cr);
- cairo_new_path (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->reminder_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_close_path (cr);
- cairo_restore (cr);
+ cairo_save (cr);
+ cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->reminder_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_close_path (cr);
+ cairo_restore (cr);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
+ if (draw_recurrence_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- if (draw_recurrence_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ cairo_save (cr);
+ cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->recurrence_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_close_path (cr);
+ cairo_restore (cr);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
+ if (draw_attach_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- cairo_save (cr);
- cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
- cairo_clip (cr);
- cairo_new_path (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->recurrence_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_close_path (cr);
- cairo_restore (cr);
+ cairo_save (cr);
+ cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->attach_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_close_path (cr);
+ cairo_restore (cr);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
+ if (draw_timezone_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
- if (draw_attach_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ cairo_save (cr);
+ cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->timezone_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_close_path (cr);
+ cairo_restore (cr);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
- cairo_save (cr);
- cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
- cairo_clip (cr);
- cairo_new_path (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->attach_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_close_path (cr);
- cairo_restore (cr);
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
- if (draw_timezone_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ if (draw_meeting_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- cairo_save (cr);
- cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
- cairo_clip (cr);
- cairo_new_path (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->timezone_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_close_path (cr);
- cairo_restore (cr);
+ cairo_save (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->meeting_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_restore (cr);
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
+ /* draw categories icons */
+ for (elem = categories_list; elem; elem = elem->next) {
+ char *category;
+ GdkPixmap *pixmap = NULL;
+ GdkBitmap *mask = NULL;
- if (draw_meeting_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ category = (char *) elem->data;
+ if (!e_categories_config_get_icon_for (category, &pixmap, &mask))
+ continue;
- cairo_save (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->meeting_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_restore (cr);
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
+ gdk_gc_set_clip_origin (gc, icon_x, icon_y);
+ if (mask != NULL)
+ gdk_gc_set_clip_mask (gc, mask);
+ gdk_draw_drawable (drawable, gc,
+ pixmap,
+ 0, 0, icon_x, icon_y,
+ MIN (E_DAY_VIEW_ICON_WIDTH,
+ max_icon_w),
+ MIN (E_DAY_VIEW_ICON_HEIGHT,
+ max_icon_h));
- /* draw categories icons */
- for (elem = categories_list; elem; elem = elem->next) {
- char *category;
- GdkPixmap *pixmap = NULL;
- GdkBitmap *mask = NULL;
+ g_object_unref (pixmap);
+ if (mask != NULL)
+ g_object_unref (mask);
- category = (char *) elem->data;
- if (!e_categories_config_get_icon_for (category, &pixmap, &mask))
- continue;
-
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
-
- gdk_gc_set_clip_origin (gc, icon_x, icon_y);
- if (mask != NULL)
- gdk_gc_set_clip_mask (gc, mask);
- gdk_draw_drawable (drawable, gc,
- pixmap,
- 0, 0, icon_x, icon_y,
- MIN (E_DAY_VIEW_ICON_WIDTH,
- max_icon_w),
- MIN (E_DAY_VIEW_ICON_HEIGHT,
- max_icon_h));
-
- g_object_unref (pixmap);
- if (mask != NULL)
- g_object_unref (mask);
-
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
-
- gdk_gc_set_clip_mask (gc, NULL);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
}
- /* free memory */
- e_cal_component_free_categories_list (categories_list);
+ gdk_gc_set_clip_mask (gc, NULL);
}
- g_free (text);
+ /* free memory */
+ e_cal_component_free_categories_list (categories_list);
+
g_object_unref (comp);
cairo_destroy (cr);
}

View File

@ -1,15 +0,0 @@
Index: plugins/groupwise-features/mail-retract.c
===================================================================
--- plugins/groupwise-features/mail-retract.c (revision 36818)
+++ plugins/groupwise-features/mail-retract.c (working copy)
@@ -104,8 +104,8 @@
/* for translation*/
if (!first) {
- popup_items[0].label = _(popup_items[0].label);
- popup_items[0].user_data = g_strdup((char *) g_ptr_array_index(uids, 0));
+ popup_items[1].label = _(popup_items[1].label);
+ popup_items[1].user_data = g_strdup((char *) g_ptr_array_index(uids, 0));
}
first++;

View File

@ -1,96 +0,0 @@
--- plugins/bogo-junk-plugin/Makefile.am
+++ plugins/bogo-junk-plugin/Makefile.am
@@ -1,5 +1,6 @@
INCLUDES = \
-I$(top_srcdir) \
+ -DWELCOME_MESSAGE=\""$(privdatadir)/default/C/mail/local/Inbox"\" \
$(EVOLUTION_MAIL_CFLAGS)
@EVO_PLUGIN_RULE@
--- plugins/bogo-junk-plugin/bf-junk-filter.c
+++ plugins/bogo-junk-plugin/bf-junk-filter.c
@@ -40,6 +40,8 @@
#include "mail/em-config.h"
#include <mail/em-junk-hook.h>
#include <camel/camel-data-wrapper.h>
+#include <camel/camel-mime-message.h>
+#include <camel/camel-mime-parser.h>
#include <camel/camel-stream-fs.h>
#include <camel/camel-debug.h>
#include <gconf/gconf-client.h>
@@ -69,6 +71,7 @@ void *em_junk_bf_validate_binary (EPlugin *ep, EMJunkHookTarget *target);
void em_junk_bf_report_junk (EPlugin *ep, EMJunkHookTarget *target);
void em_junk_bf_report_non_junk (EPlugin *ep, EMJunkHookTarget *target);
void em_junk_bf_commit_reports (EPlugin *ep, EMJunkHookTarget *target);
+static gint pipe_to_bogofilter (CamelMimeMessage *msg, gchar **argv, GError **error);
/* eplugin stuff */
int e_plugin_lib_enable (EPluginLib *ep, int enable);
@@ -78,6 +81,37 @@ int e_plugin_lib_enable (EPluginLib *ep, int enable);
static gboolean em_junk_bf_unicode = TRUE;
+static void
+init_db ()
+{
+ CamelStream *stream = camel_stream_fs_new_with_name (WELCOME_MESSAGE, O_RDONLY, 0);
+ CamelMimeParser *parser = camel_mime_parser_new ();
+ CamelMimeMessage *msg = camel_mime_message_new ();
+ gchar *argv[] = {
+ em_junk_bf_binary,
+ "-n",
+ NULL,
+ NULL
+ };
+
+ camel_mime_parser_init_with_stream (parser, stream);
+ camel_mime_parser_scan_from (parser, FALSE);
+ camel_object_unref (stream);
+
+ camel_mime_part_construct_from_parser ((CamelMimePart *) msg, parser);
+ camel_object_unref (parser);
+
+ d(fprintf (stderr, "Initing the bogofilter DB with Welcome message\n"));
+
+ if (em_junk_bf_unicode) {
+ argv[2] = "--unicode=yes";
+ }
+
+ pipe_to_bogofilter (msg, argv, NULL);
+ camel_object_unref (msg);
+
+}
+
static gint
pipe_to_bogofilter (CamelMimeMessage *msg, gchar **argv, GError **error)
{
@@ -88,7 +122,9 @@ pipe_to_bogofilter (CamelMimeMessage *msg, gchar **argv, GError **error)
gint status;
gint waitres;
gint res;
+ static gboolean only_once = FALSE;
+retry:
if (camel_debug_start ("junk")) {
int i;
@@ -153,8 +189,17 @@ pipe_to_bogofilter (CamelMimeMessage *msg, gchar **argv, GError **error)
res = BOGOFILTER_ERROR;
}
- if (res < 0 || res > 2)
+ if (res < 0 || res > 2) {
+ if (!only_once) {
+ /* Create wordlist.db */
+ only_once = TRUE;
+ init_db();
+
+ goto retry;
+ }
g_set_error (error, EM_JUNK_ERROR, res, _("Pipe to Bogofilter failed, error code: %d."), res);
+
+ }
return res;
}

View File

@ -1,26 +0,0 @@
--- calendar/gui/dialogs/comp-editor.c
+++ calendar/gui/dialogs/comp-editor.c
@@ -1771,6 +1771,14 @@ comp_editor_class_init (CompEditorClass *class)
G_TYPE_NONE, 0);
}
+static void
+on_classification_changed (GtkRadioAction *action, GtkRadioAction *current, gpointer *data)
+{
+ CompEditor *editor = COMP_EDITOR (data);
+
+ comp_editor_set_changed (editor, TRUE);
+}
+
static void
comp_editor_init (CompEditor *editor)
{
@@ -1820,7 +1828,7 @@ comp_editor_init (CompEditor *editor)
action_group, classification_radio_entries,
G_N_ELEMENTS (classification_radio_entries),
E_CAL_COMPONENT_CLASS_PUBLIC,
- NULL, NULL); /* no callback */
+ G_CALLBACK (on_classification_changed), editor); /* no callback */
action = e_attachment_bar_recent_action_new (
E_ATTACHMENT_BAR (priv->attachment_bar),
"attach-recent", _("Recent _Documents"));

View File

@ -1,65 +0,0 @@
Index: calendar/gui/dialogs/comp-editor.c
===================================================================
--- calendar/gui/dialogs/comp-editor.c (revision 36884)
+++ calendar/gui/dialogs/comp-editor.c (working copy)
@@ -1102,6 +1102,24 @@
g_object_unref (comp);
}
+static gboolean
+remove_event_dialog (ECal *client,
+ ECalComponent *comp,
+ GtkWindow *parent)
+{
+ GtkWidget *dialog;
+ gboolean ret;
+
+ g_return_val_if_fail (E_IS_CAL_COMPONENT (comp), TRUE);
+
+ dialog = gtk_message_dialog_new (parent, 0, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", _("Keep original item?"));
+ gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
+ ret = gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_YES;
+ gtk_widget_destroy (dialog);
+
+ return ret;
+}
+
static void
action_save_cb (GtkAction *action,
CompEditor *editor)
@@ -1153,9 +1171,33 @@
if (!text.value)
if (!send_component_prompt_subject ((GtkWindow *) editor, priv->client, priv->comp))
return;
- if (save_comp_with_send (editor))
- close_dialog (editor);
+ if (save_comp_with_send (editor)) {
+ CompEditorFlags flags;
+ gboolean delegate;
+
+ flags = comp_editor_get_flags (editor);
+ delegate = flags & COMP_EDITOR_DELEGATE;
+
+ if (delegate && !remove_event_dialog (priv->client, priv->comp, GTK_WINDOW (editor))) {
+ const char *uid = NULL;
+ GError *error = NULL;
+
+ e_cal_component_get_uid (priv->comp, &uid);
+
+ if (e_cal_component_is_instance (priv->comp) || e_cal_component_has_recurrences (priv->comp)) {
+ gchar *rid;
+ rid = e_cal_component_get_recurid_as_string (priv->comp);
+ e_cal_remove_object_with_mod (priv->client, uid, rid, priv->mod, &error);
+ g_free (rid);
+ } else
+ e_cal_remove_object (priv->client, uid, &error);
+
+ g_clear_error (&error);
+ }
+ }
+
+ close_dialog (editor);
}
static void

View File

@ -1,441 +0,0 @@
Index: calendar/gui/e-day-view.c
===================================================================
--- calendar/gui/e-day-view.c (revision 35721)
+++ calendar/gui/e-day-view.c (working copy)
@@ -186,8 +186,6 @@ static void e_day_view_top_scroll (EDayV
static void e_day_view_update_top_scroll (EDayView *day_view, gboolean scroll_to_top);
-static gboolean e_day_view_check_if_new_event_fits (EDayView *day_view);
-
static void e_day_view_on_canvas_realized (GtkWidget *widget,
EDayView *day_view);
@@ -953,6 +951,10 @@ e_day_view_init (EDayView *day_view)
/*
* Scrollbar.
*/
+ day_view->mc_hscrollbar = gtk_hscrollbar_new (GTK_LAYOUT (day_view->main_canvas)->hadjustment);
+ gtk_table_attach (GTK_TABLE (day_view), day_view->mc_hscrollbar, 1, 2, 2, 3, GTK_FILL, 0, 0, 0);
+ gtk_widget_show (day_view->mc_hscrollbar);
+
day_view->tc_vscrollbar = gtk_vscrollbar_new (GTK_LAYOUT (day_view->top_canvas)->vadjustment);
gtk_table_attach (GTK_TABLE (day_view), day_view->tc_vscrollbar,
2, 3, 0, 1, 0, GTK_FILL, 0, 0);
@@ -1423,28 +1425,19 @@ e_day_view_style_set (GtkWidget *widget,
pango_font_metrics_unref (font_metrics);
}
-/* This recalculates the sizes of each column. */
static void
-e_day_view_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
+e_day_view_recalc_main_canvas_size (EDayView *day_view)
{
- EDayView *day_view;
gint day, scroll_y;
gboolean need_reshape;
-#if 0
- g_print ("In e_day_view_size_allocate\n");
-#endif
- day_view = E_DAY_VIEW (widget);
-
- (*GTK_WIDGET_CLASS (e_day_view_parent_class)->size_allocate) (widget, allocation);
-
- e_day_view_recalc_cell_sizes (day_view);
-
/* Set the scroll region of the top canvas */
e_day_view_update_top_scroll (day_view, TRUE);
need_reshape = e_day_view_update_scroll_regions (day_view);
+ e_day_view_recalc_cell_sizes (day_view);
+
/* Scroll to the start of the working day, if this is the initial
allocation. */
if (day_view->scroll_to_work_day) {
@@ -1465,6 +1458,17 @@ e_day_view_size_allocate (GtkWidget *wid
}
}
+/* This recalculates the sizes of each column. */
+static void
+e_day_view_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
+{
+#if 0
+ g_print ("In e_day_view_size_allocate\n");
+#endif
+ (*GTK_WIDGET_CLASS (e_day_view_parent_class)->size_allocate) (widget, allocation);
+
+ e_day_view_recalc_main_canvas_size (E_DAY_VIEW (widget));
+}
static void
e_day_view_recalc_cell_sizes (EDayView *day_view)
@@ -1491,6 +1495,8 @@ e_day_view_recalc_cell_sizes (EDayView *
get divided evenly. Note that we use one more element than the
number of columns, to make it easy to get the column widths. */
width = day_view->main_canvas->allocation.width;
+ if (day_view->days_shown == 1)
+ width = MAX (width, day_view->max_cols * (E_DAY_VIEW_MIN_DAY_COL_WIDTH + E_DAY_VIEW_GAP_WIDTH) - E_DAY_VIEW_MIN_DAY_COL_WIDTH - 1);
width /= day_view->days_shown;
offset = 0;
for (day = 0; day <= day_view->days_shown; day++) {
@@ -2638,12 +2644,21 @@ e_day_view_update_scroll_regions (EDayVi
gnome_canvas_get_scroll_region (GNOME_CANVAS (day_view->main_canvas),
NULL, NULL, &old_x2, &old_y2);
new_x2 = day_view->main_canvas->allocation.width - 1;
+
+ if (day_view->days_shown == 1)
+ new_x2 = MAX (new_x2, day_view->max_cols * (E_DAY_VIEW_MIN_DAY_COL_WIDTH + E_DAY_VIEW_GAP_WIDTH) - E_DAY_VIEW_MIN_DAY_COL_WIDTH - 1);
+
if (old_x2 != new_x2 || old_y2 != new_y2) {
need_reshape = TRUE;
gnome_canvas_set_scroll_region (GNOME_CANVAS (day_view->main_canvas),
0, 0, new_x2, new_y2);
}
+ if (new_x2 <= day_view->main_canvas->allocation.width - 1)
+ gtk_widget_hide (day_view->mc_hscrollbar);
+ else
+ gtk_widget_show (day_view->mc_hscrollbar);
+
return need_reshape;
}
@@ -4232,13 +4247,13 @@ e_day_view_add_event (ECalComponent *com
return TRUE;
}
-
/* This lays out the short (less than 1 day) events in the columns.
Any long events are simply skipped. */
void
e_day_view_check_layout (EDayView *day_view)
{
gint day, rows_in_top_display;
+ gint max_cols = -1;
/* Don't bother if we aren't visible. */
if (!GTK_WIDGET_VISIBLE (day_view))
@@ -4248,11 +4263,17 @@ e_day_view_check_layout (EDayView *day_v
e_day_view_ensure_events_sorted (day_view);
for (day = 0; day < day_view->days_shown; day++) {
- if (day_view->need_layout[day])
- e_day_view_layout_day_events (day_view->events[day],
+ if (day_view->need_layout[day]) {
+ gint cols;
+
+ cols = e_day_view_layout_day_events (day_view->events[day],
day_view->rows,
day_view->mins_per_row,
- day_view->cols_per_row[day]);
+ day_view->cols_per_row[day],
+ day_view->days_shown == 1 ? -1 : E_DAY_VIEW_MULTI_DAY_MAX_COLUMNS);
+
+ max_cols = MAX (cols, max_cols);
+ }
if (day_view->need_layout[day]
|| day_view->need_reshape[day]) {
@@ -4278,13 +4299,17 @@ e_day_view_check_layout (EDayView *day_v
}
}
-
if (day_view->long_events_need_layout
|| day_view->long_events_need_reshape)
e_day_view_reshape_long_events (day_view);
day_view->long_events_need_layout = FALSE;
day_view->long_events_need_reshape = FALSE;
+
+ if (max_cols != -1 && max_cols != day_view->max_cols) {
+ day_view->max_cols = max_cols;
+ e_day_view_recalc_main_canvas_size (day_view);
+ }
}
@@ -4826,13 +4851,6 @@ e_day_view_do_key_press (GtkWidget *widg
if (day_view->selection_start_day == -1)
return FALSE;
- /* Check if there is room for a new event to be typed in. If there
- isn't we don't want to add an event as we will then add a new
- event for every key press. */
- if (!e_day_view_check_if_new_event_fits (day_view)) {
- return FALSE;
- }
-
/* Check if the client is read only */
model = e_calendar_view_get_model (E_CALENDAR_VIEW (day_view));
ecal = e_cal_model_get_default_client (model);
@@ -5543,33 +5561,6 @@ e_day_view_top_scroll (EDayView *day_vie
gtk_adjustment_set_value (adj, new_value);
}
-static gboolean
-e_day_view_check_if_new_event_fits (EDayView *day_view)
-{
- gint day, start_row, end_row, row;
-
- day = day_view->selection_start_day;
- start_row = day_view->selection_start_row;
- end_row = day_view->selection_end_row;
-
- /* Long events always fit, since we keep adding rows to the top
- canvas. */
- if (day != day_view->selection_end_day)
- return TRUE;
- if (start_row == 0 && end_row == day_view->rows)
- return TRUE;
-
- /* If any of the rows already have E_DAY_VIEW_MAX_COLUMNS columns,
- return FALSE. */
- for (row = start_row; row <= end_row; row++) {
- if (day_view->cols_per_row[day][row] >= E_DAY_VIEW_MAX_COLUMNS)
- return FALSE;
- }
-
- return TRUE;
-}
-
-
void
e_day_view_ensure_rows_visible (EDayView *day_view,
gint start_row,
Index: calendar/gui/e-day-view.h
===================================================================
--- calendar/gui/e-day-view.h (revision 35721)
+++ calendar/gui/e-day-view.h (working copy)
@@ -45,8 +45,11 @@ G_BEGIN_DECLS
of a normal event. */
#define E_DAY_VIEW_LONG_EVENT E_DAY_VIEW_MAX_DAYS
-/* The maximum number of columns of appointments within a day. */
-#define E_DAY_VIEW_MAX_COLUMNS 6
+/* The maximum number of columns of appointments within a day in multi-day view. */
+#define E_DAY_VIEW_MULTI_DAY_MAX_COLUMNS 6
+
+/* minimum width of the event in one-day view in pixels */
+#define E_DAY_VIEW_MIN_DAY_COL_WIDTH 60
/* The width of the gap between appointments. This should be at least
E_DAY_VIEW_BAR_WIDTH, since in the top canvas we use this space to draw
@@ -204,6 +207,9 @@ struct _EDayView
/* scrollbar for top_canvas */
GtkWidget *tc_vscrollbar;
+ /* horizontal scrollbar for main_canvas */
+ GtkWidget *mc_hscrollbar;
+
/* The main canvas where the rest of the appointments are shown. */
GtkWidget *main_canvas;
GnomeCanvasItem *main_canvas_item;
@@ -310,6 +316,8 @@ struct _EDayView
Note that there are a maximum of 12 * 24 rows (when a row is 5 mins)
but we don't always have that many rows. */
guint8 cols_per_row[E_DAY_VIEW_MAX_DAYS][12 * 24];
+ /* The maximum number of columns from all rows in cols_per_row */
+ gint max_cols;
/* Sizes of the various time strings. */
gint small_hour_widths[24];
Index: calendar/gui/e-day-view-layout.c
===================================================================
--- calendar/gui/e-day-view-layout.c (revision 35721)
+++ calendar/gui/e-day-view-layout.c (working copy)
@@ -29,6 +29,7 @@
#include <config.h>
#include "e-day-view-layout.h"
+#include "e-util/e-bit-array.h"
static void e_day_view_layout_long_event (EDayViewEvent *event,
guint8 *grid,
@@ -37,13 +38,14 @@ static void e_day_view_layout_long_event
gint *rows_in_top_display);
static void e_day_view_layout_day_event (EDayViewEvent *event,
- guint8 *grid,
+ EBitArray **grid,
guint16 *group_starts,
guint8 *cols_per_row,
gint rows,
- gint mins_per_row);
+ gint mins_per_row,
+ gint max_cols);
static void e_day_view_expand_day_event (EDayViewEvent *event,
- guint8 *grid,
+ EBitArray **grid,
guint8 *cols_per_row,
gint mins_per_row);
static void e_day_view_recalc_cols_per_row (gint rows,
@@ -127,15 +129,17 @@ e_day_view_layout_long_event (EDayViewEv
}
-void
+/* returns maximum number of columns among all rows */
+gint
e_day_view_layout_day_events (GArray *events,
gint rows,
gint mins_per_row,
- guint8 *cols_per_row)
+ guint8 *cols_per_row,
+ gint max_cols)
{
EDayViewEvent *event;
- gint row, event_num;
- guint8 *grid;
+ gint row, event_num, res;
+ EBitArray **grid;
/* This is a temporary array which keeps track of rows which are
connected. When an appointment spans multiple rows then the number
@@ -145,18 +149,20 @@ e_day_view_layout_day_events (GArray
rows. */
guint16 group_starts[12 * 24];
+ /* This is a temporary 2-d grid which is used to place events.
+ Each element is 0 if the position is empty, or 1 if occupied. */
+ grid = g_new0 (EBitArray *, rows);
+
/* Reset the cols_per_row array, and initialize the connected rows so
that all rows are not connected - each row is the start of a new
group. */
for (row = 0; row < rows; row++) {
cols_per_row[row] = 0;
group_starts[row] = row;
- }
-
- /* This is a temporary 2-d grid which is used to place events.
- Each element is 0 if the position is empty, or 1 if occupied. */
- grid = g_new0 (guint8, rows * E_DAY_VIEW_MAX_COLUMNS);
+ /* row doesn't contain any event at the moment */
+ grid [row] = e_bit_array_new (0);
+ }
/* Iterate over the events, finding which rows they cover, and putting
them in the first free column available. Increment the number of
@@ -166,7 +172,7 @@ e_day_view_layout_day_events (GArray
event = &g_array_index (events, EDayViewEvent, event_num);
e_day_view_layout_day_event (event, grid, group_starts,
- cols_per_row, rows, mins_per_row);
+ cols_per_row, rows, mins_per_row, max_cols);
}
/* Recalculate the number of columns needed in each row. */
@@ -180,8 +186,15 @@ e_day_view_layout_day_events (GArray
mins_per_row);
}
- /* Free the grid. */
+ /* Free the grid and compute maximum number of columns used. */
+ res = 0;
+ for (row = 0; row < rows; row++) {
+ res = MAX (res, e_bit_array_bit_count (grid [row]));
+ g_object_unref (grid [row]);
+ }
g_free (grid);
+
+ return res;
}
@@ -190,11 +203,12 @@ e_day_view_layout_day_events (GArray
sure they are all in one group. */
static void
e_day_view_layout_day_event (EDayViewEvent *event,
- guint8 *grid,
+ EBitArray **grid,
guint16 *group_starts,
guint8 *cols_per_row,
gint rows,
- gint mins_per_row)
+ gint mins_per_row,
+ gint max_cols)
{
gint start_row, end_row, free_col, col, row, group_start;
@@ -214,10 +228,11 @@ e_day_view_layout_day_event (EDayViewEve
end_row = CLAMP (end_row, 0, rows - 1);
/* Try each column until we find a free one. */
- for (col = 0; col < E_DAY_VIEW_MAX_COLUMNS; col++) {
+ for (col = 0; max_cols <= 0 || col < max_cols; col++) {
free_col = col;
for (row = start_row; row <= end_row; row++) {
- if (grid[row * E_DAY_VIEW_MAX_COLUMNS + col]) {
+ if (e_bit_array_bit_count (grid [row]) > col &&
+ e_bit_array_value_at (grid [row], col)) {
free_col = -1;
break;
}
@@ -243,7 +258,11 @@ e_day_view_layout_day_event (EDayViewEve
all the events have been layed out. Also make sure all the rows that
the event covers are in one group. */
for (row = start_row; row <= end_row; row++) {
- grid[row * E_DAY_VIEW_MAX_COLUMNS + free_col] = 1;
+ /* resize the array if necessary */
+ if (e_bit_array_bit_count (grid [row]) <= free_col)
+ e_bit_array_insert (grid [row], e_bit_array_bit_count (grid [row]), free_col - e_bit_array_bit_count (grid [row]) + 1);
+
+ e_bit_array_change_one_row (grid [row], free_col, TRUE);
cols_per_row[row]++;
group_starts[row] = group_start;
}
@@ -284,7 +303,7 @@ e_day_view_recalc_cols_per_row (gint
/* Expands the event horizontally to fill any free space. */
static void
e_day_view_expand_day_event (EDayViewEvent *event,
- guint8 *grid,
+ EBitArray **grid,
guint8 *cols_per_row,
gint mins_per_row)
{
@@ -300,7 +319,8 @@ e_day_view_expand_day_event (EDayViewEve
clashed = FALSE;
for (col = event->start_row_or_col + 1; col < cols_per_row[start_row]; col++) {
for (row = start_row; row <= end_row; row++) {
- if (grid[row * E_DAY_VIEW_MAX_COLUMNS + col]) {
+ if (e_bit_array_bit_count (grid [row]) > col &&
+ e_bit_array_value_at (grid [row], col)) {
clashed = TRUE;
break;
}
Index: calendar/gui/e-day-view-layout.h
===================================================================
--- calendar/gui/e-day-view-layout.h (revision 35721)
+++ calendar/gui/e-day-view-layout.h (working copy)
@@ -38,10 +38,11 @@ void e_day_view_layout_long_events (GArr
gint *rows_in_top_display);
-void e_day_view_layout_day_events (GArray *events,
+gint e_day_view_layout_day_events (GArray *events,
gint rows,
gint mins_per_row,
- guint8 *cols_per_row);
+ guint8 *cols_per_row,
+ gint max_cols);
gboolean e_day_view_find_long_event_days (EDayViewEvent *event,
gint days_shown,
Index: calendar/gui/print.c
===================================================================
--- calendar/gui/print.c (revision 35721)
+++ calendar/gui/print.c (working copy)
@@ -1320,7 +1320,7 @@ print_day_details (GtkPrintContext *cont
/* lay out the short events, within the day. */
e_day_view_layout_day_events (pdi.events[0], DAY_VIEW_ROWS,
- DAY_VIEW_MINS_PER_ROW, pdi.cols_per_row);
+ DAY_VIEW_MINS_PER_ROW, pdi.cols_per_row, -1);
/* print the short events. */
if (top > bottom )

View File

@ -1,11 +0,0 @@
--- plugins/groupwise-account-setup/camel-gw-listener.c 2008/11/11 08:14:34 36770
+++ plugins/groupwise-account-setup/camel-gw-listener.c 2008/11/11 10:52:26 36771
@@ -559,7 +559,7 @@
url = camel_url_new (info->source_url, NULL);
- color = g_strdup_printf ("%u", g_random_int_range (0x100000, 0xffffaa));
+ color = g_strdup_printf ("#%06X", g_random_int_range (0x100000, 0xffffaa));
/* The above range is chosen so that the colors are neither too light nor too dark
and appealing in all the themes */

View File

@ -1,152 +0,0 @@
Index: calendar/gui/e-day-view.c
===================================================================
--- calendar/gui/e-day-view.c (revision 36769)
+++ calendar/gui/e-day-view.c (working copy)
@@ -1775,41 +1775,38 @@
return TRUE;
}
-#if 0
-/* Checks if the users participation status is Needs action and shows the summary as bold text*/
+/* Checks if the users participation status is NEEDS-ACTION and shows the summary as bold text */
static void
set_text_as_bold (EDayViewEvent *event)
{
ECalComponent *comp;
- char *address;
- GSList *attendees, *l;
+ GSList *attendees = NULL, *l;
+ gchar *address;
ECalComponentAttendee *at = NULL;
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
address = itip_get_comp_attendee (comp, event->comp_data->client);
e_cal_component_get_attendee_list (comp, &attendees);
-
for (l = attendees; l; l = l->next) {
ECalComponentAttendee *attendee = l->data;
- if (g_str_equal (itip_strip_mailto (attendee->value), address)) {
+ if ((g_str_equal (itip_strip_mailto (attendee->value), address))
+ || (attendee->sentby && g_str_equal (itip_strip_mailto (attendee->sentby), address))) {
at = attendee;
break;
}
}
-
- /* The attendee has not yet accepted the meeting, display the summary as bolded .
- If the attendee is not present, it might have come through a mailing list*/
- if (!at || (at->status == ICAL_PARTSTAT_NEEDSACTION)) {
- gnome_canvas_item_set (event->canvas_item, "bold", TRUE, NULL);
- }
-
e_cal_component_free_attendee_list (attendees);
- g_object_unref (comp);
g_free (address);
+ g_object_unref (comp);
+
+ /* The attendee has not yet accepted the meeting, display the summary as bolded.
+ If the attendee is not present, it might have come through a mailing list.
+ In that case, we never show the meeting as bold even if it is unaccepted. */
+ if (at && (at->status == ICAL_PARTSTAT_NEEDSACTION))
+ gnome_canvas_item_set (event->canvas_item, "bold", TRUE, NULL);
}
-#endif
/* This updates the text shown for an event. If the event start or end do not
lie on a row boundary, the time is displayed before the summary. */
@@ -1859,9 +1856,9 @@
"text", text,
NULL);
-/* if (e_cal_get_static_capability (event->comp_data->client, CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING)
+ if (e_cal_get_static_capability (event->comp_data->client, CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING)
&& e_cal_util_component_has_attendee (event->comp_data->icalcomp))
- set_text_as_bold (event); */
+ set_text_as_bold (event);
if (free_text)
g_free (text);
@@ -1891,9 +1888,9 @@
if (free_text)
g_free ((gchar*)summary);
-/* if (e_cal_get_static_capability (event->comp_data->client, CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING)
+ if (e_cal_get_static_capability (event->comp_data->client, CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING)
&& e_cal_util_component_has_attendee (event->comp_data->icalcomp))
- set_text_as_bold (event); */
+ set_text_as_bold (event);
}
Index: calendar/gui/e-week-view.c
===================================================================
--- calendar/gui/e-week-view.c (revision 36769)
+++ calendar/gui/e-week-view.c (working copy)
@@ -1877,41 +1877,38 @@
return FALSE;
}
-#if 0
-/* Checks if the users participation status is Needs action and shows the summary as bold text*/
+/* Checks if the users participation status is NEEDS-ACTION and shows the summary as bold text */
static void
set_text_as_bold (EWeekViewEvent *event, EWeekViewEventSpan *span)
{
ECalComponent *comp;
- char *address;
- GSList *attendees, *l;
+ GSList *attendees = NULL, *l;
+ gchar *address;
ECalComponentAttendee *at = NULL;
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
address = itip_get_comp_attendee (comp, event->comp_data->client);
e_cal_component_get_attendee_list (comp, &attendees);
-
for (l = attendees; l; l = l->next) {
ECalComponentAttendee *attendee = l->data;
- if (g_str_equal (itip_strip_mailto (attendee->value), address)) {
+ if ((g_str_equal (itip_strip_mailto (attendee->value), address))
+ || (attendee->sentby && g_str_equal (itip_strip_mailto (attendee->sentby), address))) {
at = attendee;
break;
}
}
+ e_cal_component_free_attendee_list (attendees);
+ g_free (address);
+ g_object_unref (comp);
/* The attendee has not yet accepted the meeting, display the summary as bolded.
- If the attendee is not present, it might have come through a mailing list*/
- if (!at || (at->status == ICAL_PARTSTAT_NEEDSACTION)) {
+ If the attendee is not present, it might have come through a mailing list.
+ In that case, we never show the meeting as bold even if it is unaccepted. */
+ if (at && (at->status == ICAL_PARTSTAT_NEEDSACTION))
gnome_canvas_item_set (span->text_item, "bold", TRUE, NULL);
- }
-
- e_cal_component_free_attendee_list (attendees);
- g_object_unref (comp);
- g_free (address);
}
-#endif
/* This calls a given function for each event instance that matches the given
uid. Note that it is safe for the callback to remove the event (since we
@@ -2816,11 +2813,10 @@
if (free_text)
g_free ((gchar*)summary);
-/* Uncomment once the pango fix is in
if (e_cal_get_static_capability (event->comp_data->client, CAL_STATIC_CAPABILITY_HAS_UNACCEPTED_MEETING)
&& e_cal_util_component_has_attendee (event->comp_data->icalcomp)) {
set_text_as_bold (event, span);
- } */
+ }
g_object_set_data (G_OBJECT (span->text_item), "event-num", GINT_TO_POINTER (event_num));
g_signal_connect (span->text_item, "event",
G_CALLBACK (e_week_view_on_text_item_event),

View File

@ -1,48 +0,0 @@
Index: plugins/itip-formatter/itip-formatter.c
===================================================================
--- plugins/itip-formatter/itip-formatter.c (revision 35684)
+++ plugins/itip-formatter/itip-formatter.c (working copy)
@@ -2242,6 +2242,11 @@ format_itip (EPlugin *ep, EMFormatHookTa
classid = g_strdup_printf("itip:///%s", ((EMFormat *) target->format)->part_id->str);
+ /* mark message as containing calendar, thus it will show the icon in message list now on */
+ if (target->format->uid && target->format->folder &&
+ !camel_folder_get_message_user_flag (target->format->folder, target->format->uid, "$has_cal"))
+ camel_folder_set_message_user_flag (target->format->folder, target->format->uid, "$has_cal", TRUE);
+
puri = (struct _itip_puri *)em_format_add_puri(target->format, sizeof(struct _itip_puri), classid, target->part, itip_attachment_frame);
pobj = em_format_html_add_pobject ((EMFormatHTML *) target->format, sizeof (EMFormatHTMLPObject), classid, target->part, format_itip_object);
Index: mail/message-list.c
===================================================================
--- mail/message-list.c (revision 35684)
+++ mail/message-list.c (working copy)
@@ -234,6 +234,7 @@ static struct {
{ "stock_score-highest", NULL },
{ "stock_mail-flag-for-followup", NULL },
{ "stock_mail-flag-for-followup-done", NULL },
+ { "stock_new-meeting", NULL }
};
/* FIXME: junk prefs */
@@ -1339,6 +1340,8 @@ ml_tree_value_at (ETreeModel *etm, ETree
str = camel_message_info_user_tag(msg_info, "follow-up");
return (void *)(str ? str : "");
case COL_ATTACHMENT:
+ if (camel_message_info_user_flag (msg_info, "$has_cal"))
+ return GINT_TO_POINTER (2);
return GINT_TO_POINTER ((camel_message_info_flags(msg_info) & CAMEL_MESSAGE_ATTACHMENTS) != 0);
case COL_FROM:
str = camel_message_info_from (msg_info);
@@ -1733,8 +1736,9 @@ message_list_create_extras (void)
for (i = 0; i < 2; i++)
images [i] = states_pixmaps [i + 6].pixbuf;
+ images [2] = states_pixmaps [18].pixbuf;
- e_table_extras_add_cell (extras, "render_attachment", e_cell_toggle_new (0, 2, images));
+ e_table_extras_add_cell (extras, "render_attachment", e_cell_toggle_new (0, 3, images));
images [1] = states_pixmaps [8].pixbuf;
e_table_extras_add_cell (extras, "render_flagged", e_cell_toggle_new (0, 2, images));

File diff suppressed because it is too large Load Diff

View File

@ -1,76 +0,0 @@
Index: plugins/exchange-operations/org-gnome-exchange-operations.error.xml
===================================================================
--- plugins/exchange-operations/org-gnome-exchange-operations.error.xml (revision 36615)
+++ plugins/exchange-operations/org-gnome-exchange-operations.error.xml (working copy)
@@ -48,6 +48,11 @@
<_secondary>Cannot display folders.</_secondary>
</error>
+ <error id="exchange-settings-offline" type="info">
+ <_primary>Exchange Account is offline.</_primary>
+ <_secondary>Cannot access the "Exchange settings" tab in offline mode.</_secondary>
+ </error>
+
<error id="account-offline-generic" type="info">
<_primary>Exchange Account is offline.</_primary>
<_secondary>Cannot perform the operation.</_secondary>
Index: plugins/exchange-operations/exchange-account-setup.c
===================================================================
--- plugins/exchange-operations/exchange-account-setup.c (revision 36615)
+++ plugins/exchange-operations/exchange-account-setup.c (working copy)
@@ -181,6 +181,7 @@
const char *source_url;
char *message = NULL, *txt = NULL, *oof_message;
gboolean oof_state = FALSE;
+ gint offline_status;
GtkVBox *vbox_settings;
@@ -234,6 +235,14 @@
account = exchange_operations_get_exchange_account ();
+ exchange_config_listener_get_offline_status (exchange_global_config_listener,
+ &offline_status);
+ if (offline_status == OFFLINE_MODE) {
+ e_error_run (NULL, ERROR_DOMAIN ":exchange-settings-offline", NULL);
+
+ return NULL;
+ }
+
oof_data = g_new0 (OOFData, 1);
oof_data->state = FALSE;
@@ -815,7 +824,8 @@
{
if (oof_data->message)
g_free (oof_data->message);
- g_free (oof_data);
+ if (oof_data)
+ g_free (oof_data);
}
void
@@ -824,6 +834,7 @@
EMConfigTargetAccount *target_account;
const char *source_url;
CamelURL *url;
+ gint offline_status;
target_account = (EMConfigTargetAccount *)data->config->target;
source_url = e_account_get_string (target_account->account, E_ACCOUNT_SOURCE_URL);
@@ -844,6 +855,14 @@
}
camel_url_free (url);
+
+ exchange_config_listener_get_offline_status (exchange_global_config_listener,
+ &offline_status);
+
+ if (offline_status == OFFLINE_MODE) {
+ return;
+ }
+
/* Set oof data in exchange account */
set_oof_info ();
destroy_oof_data ();

View File

@ -1,28 +0,0 @@
--- calendar/gui/dialogs/comp-editor.c 2008/11/09 21:25:02 36767
+++ calendar/gui/dialogs/comp-editor.c 2008/11/10 10:29:17 36768
@@ -2903,7 +2903,9 @@
if (e_cal_component_has_attachments (priv->comp)) {
GSList *attachment_list = NULL;
e_cal_component_get_attachment_list (priv->comp, &attachment_list);
+ g_signal_handlers_block_by_func(priv->attachment_bar, G_CALLBACK (attachment_bar_changed_cb), editor);
set_attachment_list (editor, attachment_list);
+ g_signal_handlers_unblock_by_func(priv->attachment_bar, G_CALLBACK (attachment_bar_changed_cb), editor);
g_slist_foreach (attachment_list, (GFunc)g_free, NULL);
g_slist_free (attachment_list);
}
@@ -2916,7 +2918,6 @@
real_edit_comp (CompEditor *editor, ECalComponent *comp)
{
CompEditorPrivate *priv;
- const char *uid;
g_return_if_fail (IS_COMP_EDITOR (editor));
@@ -2935,7 +2936,6 @@
priv->warned = FALSE;
update_window_border (editor, NULL);
- e_cal_component_get_uid (comp, &uid);
fill_widgets (editor);

View File

@ -1,86 +0,0 @@
Index: calendar/gui/e-meeting-store.c
===================================================================
--- calendar/gui/e-meeting-store.c (revision 36995)
+++ calendar/gui/e-meeting-store.c (working copy)
@@ -1017,6 +1017,10 @@
busy_type = E_MEETING_FREE_BUSY_TENTATIVE;
break;
+ case ICAL_FBTYPE_FREE:
+ busy_type = E_MEETING_FREE_BUSY_FREE;
+ break;
+
default:
break;
}
Index: calendar/gui/e-meeting-types.h
===================================================================
--- calendar/gui/e-meeting-types.h (revision 36995)
+++ calendar/gui/e-meeting-types.h (working copy)
@@ -48,11 +48,12 @@
used as for loop counters, so they should start at 0 and be ordered. */
typedef enum
{
- E_MEETING_FREE_BUSY_TENTATIVE = 0,
+ E_MEETING_FREE_BUSY_TENTATIVE = 0,
E_MEETING_FREE_BUSY_OUT_OF_OFFICE = 1,
E_MEETING_FREE_BUSY_BUSY = 2,
+ E_MEETING_FREE_BUSY_FREE = 3,
- E_MEETING_FREE_BUSY_LAST = 3
+ E_MEETING_FREE_BUSY_LAST = 4
} EMeetingFreeBusyType;
/* This is our representation of a time. We use a GDate to store the day,
Index: calendar/gui/e-meeting-attendee.c
===================================================================
--- calendar/gui/e-meeting-attendee.c (revision 36995)
+++ calendar/gui/e-meeting-attendee.c (working copy)
@@ -845,6 +845,10 @@
if (compare_times (&period.start, &period.end) > 0)
return FALSE;
+ /* If the busy_type is FREE, then there is no need to render it in UI */
+ if (busy_type == E_MEETING_FREE_BUSY_FREE)
+ goto done;
+
/* If the busy range is not set elsewhere, track it as best we can */
if (!priv->start_busy_range_set) {
if (!g_date_valid (&priv->busy_periods_start.date)) {
@@ -871,6 +875,7 @@
}
}
}
+
if (!priv->end_busy_range_set) {
if (!g_date_valid (&priv->busy_periods_end.date)) {
priv->busy_periods_end.date = period.end.date;
@@ -898,12 +903,14 @@
}
g_array_append_val (priv->busy_periods, period);
- priv->has_calendar_info = TRUE;
- priv->busy_periods_sorted = FALSE;
period_in_days = g_date_get_julian (&period.end.date) - g_date_get_julian (&period.start.date) + 1;
priv->longest_period_in_days = MAX (priv->longest_period_in_days, period_in_days);
+done:
+ priv->has_calendar_info = TRUE;
+ priv->busy_periods_sorted = FALSE;
+
return TRUE;
}
Index: calendar/gui/e-meeting-time-sel.c
===================================================================
--- calendar/gui/e-meeting-time-sel.c (revision 36995)
+++ calendar/gui/e-meeting-time-sel.c (working copy)
@@ -649,6 +649,7 @@
e_meeting_time_selector_alloc_named_color (mts, "white", &mts->attendee_list_bg_color);
e_meeting_time_selector_alloc_named_color (mts, "snow4", &mts->meeting_time_bg_color);
+ e_meeting_time_selector_alloc_named_color (mts, "snow", &mts->busy_colors[E_MEETING_FREE_BUSY_FREE]);
e_meeting_time_selector_alloc_named_color (mts, "yellow", &mts->busy_colors[E_MEETING_FREE_BUSY_TENTATIVE]);
e_meeting_time_selector_alloc_named_color (mts, "blue", &mts->busy_colors[E_MEETING_FREE_BUSY_BUSY]);
e_meeting_time_selector_alloc_named_color (mts, "orange4", &mts->busy_colors[E_MEETING_FREE_BUSY_OUT_OF_OFFICE]);

View File

@ -1,141 +0,0 @@
--- calendar/gui/e-calendar-table.c 2008-10-20 08:58:33.000000000 +0530
+++ calendar/gui/e-calendar-table.c 2008-11-19 12:56:42.000000000 +0530
@@ -432,6 +432,16 @@ query_tooltip_cb (GtkWidget *widget, gin
e_cal_component_free_datetime (&dtstart);
e_cal_component_free_datetime (&dtdue);
+ tmp = e_calendar_view_get_attendees_status_info (new_comp);
+ if (tmp) {
+ l = gtk_label_new (tmp);
+ gtk_misc_set_alignment (GTK_MISC (l), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (w), l, FALSE, FALSE, 0);
+
+ g_free (tmp);
+ tmp = NULL;
+ }
+
tmp2 = g_string_new ("");
e_cal_component_get_description_list (new_comp, &desc);
for (len = 0, p = desc; p != NULL; p = p->next) {
--- calendar/gui/e-calendar-view.c 2008-11-19 12:02:10.000000000 +0530
+++ calendar/gui/e-calendar-view.c 2008-11-19 12:56:59.000000000 +0530
@@ -2131,6 +2131,83 @@ e_calendar_view_move_tip (GtkWidget *wid
gtk_widget_show (widget);
}
+/**
+ * Returns information about attendees in the component. If no attendees, then returns NULL.
+ * The information is like "Status: Accepted: X Declined: Y ...".
+ * Free returned pointer with g_free.
+ **/
+char *
+e_calendar_view_get_attendees_status_info (ECalComponent *comp)
+{
+ struct _values {
+ icalparameter_partstat status;
+ const char *caption;
+ int count;
+ } values[] = {
+ { ICAL_PARTSTAT_ACCEPTED, N_("Accepted"), 0 },
+ { ICAL_PARTSTAT_DECLINED, N_("Declined"), 0 },
+ { ICAL_PARTSTAT_TENTATIVE, N_("Tentative"), 0 },
+ { ICAL_PARTSTAT_DELEGATED, N_("Delegated"), 0 },
+ { ICAL_PARTSTAT_NEEDSACTION, N_("Needs action"), 0 },
+ { ICAL_PARTSTAT_NONE, N_("Other"), 0 },
+ { ICAL_PARTSTAT_X, NULL, -1 }
+ };
+
+ GSList *attendees = NULL, *a;
+ gboolean have = FALSE;
+ char *res = NULL;
+ int i;
+
+ if (!comp || !e_cal_component_has_attendees (comp))
+ return NULL;
+
+ e_cal_component_get_attendee_list (comp, &attendees);
+
+ for (a = attendees; a; a = a->next) {
+ ECalComponentAttendee *att = a->data;
+
+ if (att && att->cutype == ICAL_CUTYPE_INDIVIDUAL &&
+ (att->role == ICAL_ROLE_CHAIR ||
+ att->role == ICAL_ROLE_REQPARTICIPANT ||
+ att->role == ICAL_ROLE_OPTPARTICIPANT)) {
+ have = TRUE;
+
+ for (i = 0; values[i].count != -1; i++) {
+ if (att->status == values[i].status || values[i].status == ICAL_PARTSTAT_NONE) {
+ values[i].count++;
+ break;
+ }
+ }
+ }
+ }
+
+ if (have) {
+ GString *str = g_string_new ("");
+
+ for (i = 0; values[i].count != -1; i++) {
+ if (values[i].count > 0) {
+ if (str->str && *str->str)
+ g_string_append (str, " ");
+
+ g_string_append_printf (str, "%s: %d", _(values[i].caption), values[i].count);
+ }
+ }
+
+ g_string_prepend (str, ": ");
+
+ /* To Translators: 'Status' here means the state of the attendees, the resulting string will be in a form:
+ Status: Accepted: X Declined: Y ... */
+ g_string_prepend (str, _("Status"));
+
+ res = g_string_free (str, FALSE);
+ }
+
+ if (attendees)
+ e_cal_component_free_attendee_list (attendees);
+
+ return res;
+}
+
/*
* It is expected to show the tooltips in this below format
*
@@ -2138,6 +2215,7 @@ e_calendar_view_move_tip (GtkWidget *wid
* Organiser: NameOfTheUser<email@ofuser.com>
* Location: PlaceOfTheMeeting
* Time : DateAndTime (xx Minutes)
+ * Status: Accepted: X Declined: Y ...
*/
gboolean
@@ -2276,6 +2354,17 @@ e_calendar_view_get_tooltips (ECalendarV
g_free (tmp2);
g_free (tmp1);
+ tmp = e_calendar_view_get_attendees_status_info (newcomp);
+ if (tmp) {
+ hbox = gtk_hbox_new (FALSE, 0);
+ gtk_box_pack_start ((GtkBox *)hbox, gtk_label_new (tmp), FALSE, FALSE, 0);
+ ebox = gtk_event_box_new ();
+ gtk_container_add ((GtkContainer *)ebox, hbox);
+ gtk_box_pack_start ((GtkBox *)box, ebox, FALSE, FALSE, 0);
+
+ g_free (tmp);
+ }
+
pevent->tooltip = gtk_window_new (GTK_WINDOW_POPUP);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type ((GtkFrame *)frame, GTK_SHADOW_IN);
--- calendar/gui/e-calendar-view.h 2008-11-19 12:02:10.000000000 +0530
+++ calendar/gui/e-calendar-view.h 2008-11-19 12:57:07.000000000 +0530
@@ -175,6 +175,7 @@ gboolean e_calendar_view_get_tooltips (E
void e_calendar_view_move_tip (GtkWidget *widget, int x, int y);
const gchar *e_calendar_view_get_icalcomponent_summary (ECal *ecal, icalcomponent *icalcomp, gboolean *free_text);
+char *e_calendar_view_get_attendees_status_info (ECalComponent *comp);
void draw_curved_rectangle (cairo_t *cr,
double x0,

View File

@ -1,97 +0,0 @@
Index: calendar/gui/e-select-names-editable.c
===================================================================
--- calendar/gui/e-select-names-editable.c (revision 36818)
+++ calendar/gui/e-select-names-editable.c (working copy)
@@ -129,7 +129,7 @@
e_select_names_editable_get_emails (ESelectNamesEditable *esne)
{
EDestinationStore *destination_store;
- GList *destinations;
+ GList *destinations, *l;
EDestination *destination;
GList *result = NULL;
@@ -140,25 +140,27 @@
if (!destinations)
return NULL;
- destination = destinations->data;
- if (e_destination_is_evolution_list (destination)) {
- const GList *list_dests, *l;
+ for (l = destinations; l != NULL; l = l->next) {
+ destination = l->data;
+ if (e_destination_is_evolution_list (destination)) {
+ const GList *list_dests, *l;
- list_dests = e_destination_list_get_dests (destination);
- for (l = list_dests; l != NULL; l = g_list_next (l)) {
- result = g_list_append (result, g_strdup (e_destination_get_email (l->data)));
+ list_dests = e_destination_list_get_dests (destination);
+ for (l = list_dests; l != NULL; l = g_list_next (l)) {
+ result = g_list_append (result, g_strdup (e_destination_get_email (l->data)));
+ }
+ } else {
+ /* check if the contact is contact list, it does not contain all the email ids */
+ /* we dont expand it currently, TODO do we need to expand it by getting it from addressbook*/
+ if (e_destination_get_contact (destination) &&
+ e_contact_get (e_destination_get_contact (destination), E_CONTACT_IS_LIST)) {
+ /* If its a contact_list which is not expanded, it wont have a email id,
+ so we can use the name as the email id */
+
+ result = g_list_append (result, g_strdup (e_destination_get_name (destination)));
+ } else
+ result = g_list_append (result, g_strdup (e_destination_get_email (destination)));
}
- } else {
- /* check if the contact is contact list, it does not contain all the email ids */
- /* we dont expand it currently, TODO do we need to expand it by getting it from addressbook*/
- if (e_destination_get_contact (destination) &&
- e_contact_get (e_destination_get_contact (destination), E_CONTACT_IS_LIST)) {
- /* If its a contact_list which is not expanded, it wont have a email id,
- so we can use the name as the email id */
-
- result = g_list_append (result, g_strdup (e_destination_get_name (destination)));
- } else
- result = g_list_append (result, g_strdup (e_destination_get_email (destination)));
}
g_list_free (destinations);
@@ -191,7 +193,7 @@
e_select_names_editable_get_names (ESelectNamesEditable *esne)
{
EDestinationStore *destination_store;
- GList *destinations;
+ GList *destinations, *l;
EDestination *destination;
GList *result = NULL;
@@ -202,18 +204,20 @@
if (!destinations)
return NULL;
- destination = destinations->data;
- if (e_destination_is_evolution_list (destination)) {
- const GList *list_dests, *l;
+ for (l = destinations; l != NULL; l = l->next) {
+ destination = l->data;
+ if (e_destination_is_evolution_list (destination)) {
+ const GList *list_dests, *l;
- list_dests = e_destination_list_get_dests (destination);
- for (l = list_dests; l != NULL; l = g_list_next (l)) {
- result = g_list_append (result, g_strdup (e_destination_get_name (l->data)));
+ list_dests = e_destination_list_get_dests (destination);
+ for (l = list_dests; l != NULL; l = g_list_next (l)) {
+ result = g_list_append (result, g_strdup (e_destination_get_name (l->data)));
+ }
+ } else {
+ result = g_list_append (result, g_strdup (e_destination_get_name (destination)));
}
- } else {
- result = g_list_append (result, g_strdup (e_destination_get_name (destination)));
}
-
+
g_list_free (destinations);
return result;

View File

@ -1,28 +0,0 @@
Index: plugins/groupwise-features/status-track.c
===================================================================
--- plugins/groupwise-features/status-track.c (revision 36806)
+++ plugins/groupwise-features/status-track.c (working copy)
@@ -79,8 +79,6 @@
gchar *boldmsg;
- const char *status = NULL ;
-
int row = 0;
EGwConnection *cnc;
@@ -93,14 +91,6 @@
return ;
}
- status = camel_medium_get_header ( CAMEL_MEDIUM(msg), "X-gw-status-opt") ;
- if (!status) {
- g_print ("Error!! No header\n");
- /* No need to make any call if this header is not available.
- This is the server side identifier for sent-items */
- return ;
- }
-
/*Create the dialog*/
d = (GtkDialog *) gtk_dialog_new ();
gtk_dialog_add_button (d, GTK_STOCK_OK, GTK_RESPONSE_OK);

View File

@ -1,227 +0,0 @@
--- mail//em-format-html-display.c 2008-10-13 14:07:24.000000000 +0530
+++ mail//em-format-html-display.c 2008-12-22 15:19:01.000000000 +0530
@@ -49,6 +49,7 @@
#include <bonobo/bonobo-control-frame.h>
#include <bonobo/bonobo-stream-memory.h>
#include <bonobo/bonobo-widget.h>
+#include <bonobo-activation/bonobo-activation-mime.h>
#include <camel/camel-stream.h>
#include <camel/camel-stream-filter.h>
@@ -188,6 +189,8 @@ static void efhd_format_secure(EMFormat
static void efhd_complete(EMFormat *);
gboolean efhd_mnemonic_show_bar (GtkWidget *widget, gboolean focus, GtkWidget *efhd);
+static gboolean efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobject);
+static gboolean efhd_use_component(const char *mime_type);
static void efhd_builtin_init(EMFormatHTMLDisplayClass *efhc);
enum {
@@ -1303,10 +1306,37 @@ efhd_builtin_init(EMFormatHTMLDisplayCla
}
/* ********************************************************************** */
-
+static void
+efhd_bonobo_unknown(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+{
+ char *classid;
+
+ classid = g_strdup_printf("bonobo-unknown:///em-format-html-display/%s", emf->part_id->str);
+ em_format_html_add_pobject((EMFormatHTML *)emf, sizeof(EMFormatHTMLPObject), classid, part, efhd_bonobo_object);
+ camel_stream_printf(stream, "<object classid=\"%s\" type=\"%s\"></object><br>\n", classid, info->mime_type);
+ g_free(classid);
+}
+
+ /* ********************************************************************** */
static const EMFormatHandler *efhd_find_handler(EMFormat *emf, const char *mime_type)
{
- return ((EMFormatClass *)efhd_parent)->find_handler(emf, mime_type);
+ const EMFormatHandler *handle;
+
+ if ( (handle = ((EMFormatClass *)efhd_parent)->find_handler(emf, mime_type)) == NULL
+ && efhd_use_component(mime_type)
+ && (handle = g_hash_table_lookup(efhd_bonobo_handlers, mime_type)) == NULL) {
+
+ EMFormatHandler *h = g_malloc0(sizeof(*h));
+
+ h->mime_type = g_strdup(mime_type);
+ h->handler = efhd_bonobo_unknown;
+ h->flags = EM_FORMAT_HANDLER_INLINE_DISPOSITION;
+ g_hash_table_insert(efhd_bonobo_handlers, h->mime_type, h);
+
+ handle = h;
+ }
+
+ return handle;
}
static void efhd_format_clone(EMFormat *emf, CamelFolder *folder, const char *uid, CamelMimeMessage *msg, EMFormat *src)
@@ -1956,6 +1986,154 @@ efhd_attachment_frame(EMFormat *emf, Cam
}
}
+static gboolean
+efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobject)
+{
+ CamelDataWrapper *wrapper;
+ Bonobo_ServerInfo *component;
+ GtkWidget *embedded;
+ Bonobo_PersistStream persist;
+ CORBA_Environment ev;
+ CamelStreamMem *cstream;
+ BonoboStream *bstream;
+ BonoboControlFrame *control_frame;
+ Bonobo_PropertyBag prop_bag;
+
+ component = bonobo_activation_get_default_component_for_mime_type (eb->type);
+ if (component == NULL)
+ return FALSE;
+
+ embedded = bonobo_widget_new_control(component->iid, NULL);
+ CORBA_free(component);
+ if (embedded == NULL)
+ return FALSE;
+
+ CORBA_exception_init(&ev);
+
+ control_frame = bonobo_widget_get_control_frame((BonoboWidget *)embedded);
+ prop_bag = bonobo_control_frame_get_control_property_bag(control_frame, NULL);
+ if (prop_bag != CORBA_OBJECT_NIL) {
+ /*
+ * Now we can take care of business. Currently, the only control
+ * that needs something passed to it through a property bag is
+ * the iTip control, and it needs only the From email address,
+ * but perhaps in the future we can generalize this section of code
+ * to pass a bunch of useful things to all embedded controls.
+ */
+ const CamelInternetAddress *from;
+ char *from_address;
+
+ from = camel_mime_message_get_from((CamelMimeMessage *)((EMFormat *)efh)->message);
+ from_address = camel_address_encode((CamelAddress *)from);
+ bonobo_property_bag_client_set_value_string(prop_bag, "from_address", from_address, &ev);
+ g_free(from_address);
+
+ Bonobo_Unknown_unref(prop_bag, &ev);
+ }
+
+ persist = (Bonobo_PersistStream)Bonobo_Unknown_queryInterface(bonobo_widget_get_objref((BonoboWidget *)embedded),
+ "IDL:Bonobo/PersistStream:1.0", &ev);
+ if (persist == CORBA_OBJECT_NIL) {
+ g_object_ref_sink(embedded);
+ CORBA_exception_free(&ev);
+ return FALSE;
+ }
+
+ /* Write the data to a CamelStreamMem... */
+ cstream = (CamelStreamMem *)camel_stream_mem_new();
+ wrapper = camel_medium_get_content_object((CamelMedium *)pobject->part);
+ if (FALSE && !g_ascii_strncasecmp (eb->type, "text/", 5)) {
+ /* do charset conversion, etc */
+ d(printf("performing charset conversion for %s component\n", eb->type));
+ em_format_format_text((EMFormat *)efh, (CamelStream *)cstream, wrapper);
+ } else {
+ camel_data_wrapper_decode_to_stream (wrapper, (CamelStream *) cstream);
+ }
+
+ /* ...convert the CamelStreamMem to a BonoboStreamMem... */
+ bstream = bonobo_stream_mem_create((char *)cstream->buffer->data, cstream->buffer->len, TRUE, FALSE);
+ camel_object_unref(cstream);
+
+ /* ...and hydrate the PersistStream from the BonoboStream. */
+ Bonobo_PersistStream_load(persist,
+ bonobo_object_corba_objref(BONOBO_OBJECT (bstream)),
+ eb->type, &ev);
+ bonobo_object_unref(BONOBO_OBJECT (bstream));
+ Bonobo_Unknown_unref(persist, &ev);
+ CORBA_Object_release(persist, &ev);
+
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ g_object_ref_sink(embedded);
+ CORBA_exception_free(&ev);
+ return FALSE;
+ }
+ CORBA_exception_free(&ev);
+
+ gtk_widget_show(embedded);
+ gtk_container_add(GTK_CONTAINER (eb), embedded);
+
+ return TRUE;
+}
+
+static gboolean
+efhd_check_server_prop(Bonobo_ServerInfo *component, const char *propname, const char *value)
+{
+ CORBA_sequence_CORBA_string stringv;
+ Bonobo_ActivationProperty *prop;
+ int i;
+
+ prop = bonobo_server_info_prop_find(component, propname);
+ if (!prop || prop->v._d != Bonobo_ACTIVATION_P_STRINGV)
+ return FALSE;
+
+ stringv = prop->v._u.value_stringv;
+ for (i = 0; i < stringv._length; i++) {
+ if (!g_ascii_strcasecmp(value, stringv._buffer[i]))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+efhd_use_component(const char *mime_type)
+{
+ GList *components, *iter;
+ Bonobo_ServerInfo *component = NULL;
+
+ /* should this cache it? */
+
+ if (g_ascii_strcasecmp(mime_type, "text/x-vcard") != 0
+ && g_ascii_strcasecmp(mime_type, "text/calendar") != 0) {
+ const char **mime_types;
+ int i;
+
+ mime_types = mail_config_get_allowable_mime_types();
+ for (i = 0; mime_types[i]; i++) {
+ if (!g_ascii_strcasecmp(mime_types[i], mime_type))
+ goto type_ok;
+ }
+ return FALSE;
+ }
+type_ok:
+ components = bonobo_activation_get_all_components_for_mime_type (mime_type);
+ for (iter = components; iter; iter = iter->next) {
+ Bonobo_ServerInfo *comp = iter->data;
+
+ comp = iter->data;
+ if (efhd_check_server_prop(comp, "repo_ids", "IDL:Bonobo/PersistStream:1.0")
+ && efhd_check_server_prop(comp, "bonobo:supported_mime_types", mime_type)) {
+ component = comp;
+ break;
+ }
+ }
+
+ /* FIXME: How should I free the Bonobo_ServerInfo's ? */
+ g_list_free (components);
+
+ return component != NULL;
+}
+
static void
attachment_bar_arrow_clicked(GtkWidget *w, EMFormatHTMLDisplay *efhd)
{
@@ -2329,6 +2507,12 @@ efhd_format_attachment(EMFormat *emf, Ca
if (handle) {
if (info->shown)
handle->handler(emf, stream, part, handle);
+ } else if (efhd_use_component(mime_type)) {
+ g_free(classid); /* messy */
+
+ classid = g_strdup_printf("bonobo-unknown:///em-format-html-display/%s", emf->part_id->str);
+ em_format_html_add_pobject((EMFormatHTML *)emf, sizeof(EMFormatHTMLPObject), classid, part, efhd_bonobo_object);
+ camel_stream_printf(stream, "<object classid=\"%s\" type=\"%s\"></object><br>>\n", classid, mime_type);
}
g_free(classid);

View File

@ -1,13 +0,0 @@
Index: a11y/calendar/ea-cal-view.c
===================================================================
--- a11y/calendar/ea-cal-view.c (revision 36795)
+++ a11y/calendar/ea-cal-view.c (working copy)
@@ -277,7 +277,7 @@
}
g_object_notify (G_OBJECT (ea_cal_view), "accessible-name");
g_signal_emit_by_name (ea_cal_view, "visible_data_changed");
- g_signal_emit_by_name (ea_cal_view, "children_changed", NULL);
+ g_signal_emit_by_name (ea_cal_view, "children_changed", NULL, NULL, NULL);
#ifdef ACC_DEBUG
printf ("AccDebug: cal view date changed\n");
#endif

View File

@ -1,14 +0,0 @@
--- mail/mail-vfolder.c
+++ mail/mail-vfolder.c
@@ -266,6 +266,11 @@ vfolder_adduri_exec (struct _adduri_msg *m)
g_warning("Folder '%s' disappeared while I was adding/remove it to/from my vfolder", m->uri);
return;
}
+ if (strncmp(m->uri, "vfolder:/", 9) == 0 ||
+ strncmp(m->uri, "email://vfolder@local", 21) == 0) {
+ printf("Ignoring loading vfolder as a subfolder \n");
+ return;
+ }
if (folder == NULL)
folder = mail_tool_uri_to_folder (m->uri, 0, &m->base.ex);

View File

@ -1,11 +0,0 @@
--- mail/em-account-editor.c
+++ mail/em-account-editor.c
@@ -2001,7 +2001,7 @@ emae_option_checkspin(EMAccountEditorService *service, CamelURL *url, const char
spin = gtk_spin_button_new((GtkAdjustment *)gtk_adjustment_new(def, min, max, 1, 1, 1), 1, 0);
if (post)
- label = gtk_label_new(post);
+ label = gtk_label_new_with_mnemonic(post);
gtk_box_pack_start((GtkBox *)hbox, check, FALSE, TRUE, 0);
gtk_box_pack_start((GtkBox *)hbox, spin, FALSE, TRUE, 0);
if (label)

View File

@ -1,10 +0,0 @@
--- mail/mail-folder-cache.c
+++ mail/mail-folder-cache.c
@@ -420,6 +420,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
((flags & CAMEL_MESSAGE_DELETED) == 0) &&
(camel_message_info_date_received (info) > last_newmail))
new++;
+ camel_message_info_free (info);
}
}
}

View File

@ -1,66 +0,0 @@
Index: calendar/gui/dialogs/comp-editor.c
===================================================================
--- calendar/gui/dialogs/comp-editor.c (revision 36987)
+++ calendar/gui/dialogs/comp-editor.c (working copy)
@@ -164,6 +164,7 @@
" <toolitem action='close'/>"
" <separator/>"
" <toolitem action='attach'/>"
+" <separator/>"
" </toolbar>"
"</ui>";
Index: calendar/gui/dialogs/event-editor.c
===================================================================
--- calendar/gui/dialogs/event-editor.c (revision 36987)
+++ calendar/gui/dialogs/event-editor.c (working copy)
@@ -79,20 +79,21 @@
" <menu action='options-menu'>"
" <menuitem action='alarms'/>"
" <menuitem action='show-time-busy'/>"
+" <menuitem action='recurrence'/>"
" <menuitem action='all-day-event'/>"
+" <menuitem action='free-busy'/>"
" <menu action='classification-menu'>"
" <menuitem action='classify-public'/>"
" <menuitem action='classify-private'/>"
" <menuitem action='classify-confidential'/>"
" </menu>"
-" <menuitem action='recurrence'/>"
-" <menuitem action='free-busy'/>"
" </menu>"
" </menubar>"
" <toolbar name='main-toolbar'>"
" <toolitem action='alarms'/>"
+" <toolitem action='show-time-busy'/>"
+" <toolitem action='recurrence'/>"
" <toolitem action='all-day-event'/>"
-" <toolitem action='recurrence'/>"
" <toolitem action='free-busy'/>"
" </toolbar>"
"</ui>";
@@ -149,9 +150,15 @@
EventEditor *editor)
{
gboolean active;
+ GtkAction *action_show_busy;
+ CompEditor *comp_editor = COMP_EDITOR (editor);
active = gtk_toggle_action_get_active (action);
event_page_set_all_day_event (editor->priv->event_page, active);
+
+ action_show_busy = comp_editor_get_action (comp_editor, "show-time-busy");
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action_show_busy), !active);
+ event_page_set_show_time_busy (editor->priv->event_page, !active);
}
static void
@@ -223,7 +230,7 @@
FALSE },
{ "show-time-busy",
- NULL,
+ GTK_STOCK_DIALOG_ERROR,
N_("Show Time as _Busy"),
NULL,
N_("Toggles whether to show time as busy"),

View File

@ -1,20 +0,0 @@
Index: calendar/gui/dialogs/comp-editor.c
===================================================================
--- calendar/gui/dialogs/comp-editor.c (revision 36992)
+++ calendar/gui/dialogs/comp-editor.c (working copy)
@@ -2433,6 +2433,7 @@
editor->priv->summary = g_strdup (summary);
show_warning =
+ !(editor->priv->flags & COMP_EDITOR_DELEGATE) &&
!editor->priv->warned &&
editor->priv->existing_org &&
!editor->priv->user_org;
@@ -2482,6 +2483,7 @@
show_warning =
changed && !editor->priv->warned &&
+ !(editor->priv->flags & COMP_EDITOR_DELEGATE) &&
editor->priv->existing_org && !editor->priv->user_org;
if (show_warning) {

View File

@ -1,48 +0,0 @@
Index: calendar/gui/dialogs/memo-editor.c
===================================================================
--- calendar/gui/dialogs/memo-editor.c (revision 36948)
+++ calendar/gui/dialogs/memo-editor.c (revision 36949)
@@ -97,6 +97,21 @@
}
static void
+memo_editor_constructed (GObject *object)
+{
+ MemoEditorPrivate *priv;
+ CompEditor *editor;
+
+ priv = MEMO_EDITOR_GET_PRIVATE (object);
+ editor = COMP_EDITOR (object);
+
+ priv->memo_page = memo_page_new (editor);
+ comp_editor_append_page (
+ editor, COMP_EDITOR_PAGE (priv->memo_page),
+ _("Memo"), TRUE);
+}
+
+static void
memo_editor_class_init (MemoEditorClass *class)
{
GObjectClass *object_class;
@@ -106,6 +121,7 @@
object_class = G_OBJECT_CLASS (class);
object_class->dispose = memo_editor_dispose;
+ object_class->constructed = memo_editor_constructed;
/* TODO Add a help section for memos. */
editor_class = COMP_EDITOR_CLASS (class);
@@ -132,13 +148,6 @@
g_critical ("%s: %s", G_STRFUNC, error->message);
g_error_free (error);
}
-
- me->priv->memo_page = memo_page_new (editor);
- g_object_ref_sink (me->priv->memo_page);
- comp_editor_append_page (
- COMP_EDITOR (me),
- COMP_EDITOR_PAGE (me->priv->memo_page),
- _("Memo"), TRUE);
}
/**

View File

@ -1,13 +0,0 @@
Index: calendar/gui/e-cal-popup.c
===================================================================
--- calendar/gui/e-cal-popup.c (revision 36995)
+++ calendar/gui/e-cal-popup.c (working copy)
@@ -139,7 +139,7 @@
usepath = g_strjoin (NULL, "file://", path, NULL);
wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (part));
- stream = camel_stream_vfs_new_with_uri (path, CAMEL_STREAM_VFS_CREATE);
+ stream = camel_stream_vfs_new_with_uri (usepath, CAMEL_STREAM_VFS_CREATE);
if (usepath != path)
g_free (usepath);

View File

@ -1,97 +0,0 @@
Index: calendar/gui/print.c
===================================================================
--- calendar/gui/print.c (revision 36992)
+++ calendar/gui/print.c (working copy)
@@ -129,9 +129,9 @@
/* The width of the small calendar months, the space from the right edge of
the header rectangle, and the space between the months. */
-#define SMALL_MONTH_WIDTH 80
-#define SMALL_MONTH_PAD 4
-#define SMALL_MONTH_SPACING 12
+#define SMALL_MONTH_WIDTH 100
+#define SMALL_MONTH_PAD 5
+#define SMALL_MONTH_SPACING 20
/* The minimum number of rows we leave space for for the long events in the
day view. */
@@ -502,7 +502,7 @@
*x1 += 2;
*x2 -= 2;
*y2 += 2;
- print_text (context, font, text, alignment, *x1, *x2, *y1, *y1 + size * 1.4);
+ print_text (context, font, text, alignment, *x1, *x2, *y1 + 1.0, *y1 + size * 1.4);
*y1 += size * 1.4;
}
@@ -841,10 +841,10 @@
sprintf (buf, "%d", hour);
print_text (context, font_hour, buf, PANGO_ALIGN_RIGHT,
left, hour_minute_x,
- y - yinc + yinc / 2, y - yinc + yinc / 2 + hour_font_size);
+ y - yinc, y - yinc + hour_font_size);
print_text (context, font_minute, minute, PANGO_ALIGN_LEFT,
hour_minute_x, left + width - 3,
- y - yinc + yinc / 2, y - yinc + yinc / 2 + minute_font_size);
+ y - yinc, y - yinc + minute_font_size);
/* Draw the horizontal line between hours, across the entire
width of the day view. */
@@ -2082,7 +2082,7 @@
/* Print the filled border around the header. */
print_border (context, 0.0, width,
- 0.0, HEADER_HEIGHT + 2.0, 1.0, 0.9);
+ 0.0, HEADER_HEIGHT + 3.5, 1.0, 0.9);
/* Print the 2 mini calendar-months. */
l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH * 2 - SMALL_MONTH_SPACING;
@@ -2167,14 +2167,14 @@
l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH * 2
- SMALL_MONTH_SPACING;
print_month_small (context, gcal, when,
- l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 30,
+ l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 10,
DATE_MONTH | DATE_YEAR, when,
time_add_week_with_zone (when, 1, zone), FALSE);
l += SMALL_MONTH_SPACING + SMALL_MONTH_WIDTH;
print_month_small (context, gcal,
time_add_month_with_zone (when, 1, zone),
- l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 30,
+ l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 10,
DATE_MONTH | DATE_YEAR, when,
time_add_week_with_zone (when, 1, zone), FALSE);
@@ -2200,6 +2200,7 @@
icaltimezone *zone = calendar_config_get_icaltimezone ();
char buf[100];
gdouble width, height;
+ double l;
setup = gtk_print_context_get_page_setup (context);
@@ -2210,17 +2211,19 @@
print_month_summary (context, gcal, date, 0.0, width, HEADER_HEIGHT, height);
/* Print the border around the header. */
- print_border (context, 0.0, width, 0.0, HEADER_HEIGHT, 1.0, 0.9);
+ print_border (context, 0.0, width, 0.0, HEADER_HEIGHT + 10, 1.0, 0.9);
+ l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH;
+
/* Print the 2 mini calendar-months. */
print_month_small (context, gcal,
time_add_month_with_zone (date, 1, zone),
- width - width / 7 + 2, 4,
- width - 8, HEADER_HEIGHT,
+ l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 4,
DATE_MONTH | DATE_YEAR, 0, 0, FALSE);
+
print_month_small (context, gcal,
time_add_month_with_zone (date, -1, zone),
- 8, 4, width / 7 - 2, HEADER_HEIGHT,
+ 8, 4, width / 7 + 20, HEADER_HEIGHT + 4,
DATE_MONTH | DATE_YEAR, 0, 0, FALSE);
/* Print the month, e.g. 'May 2001'. */

12
compiler-warnings.diff Normal file
View File

@ -0,0 +1,12 @@
Index: plugins/mono/mono-plugin.c
===================================================================
--- plugins/mono/mono-plugin.c (revision 37224)
+++ plugins/mono/mono-plugin.c (working copy)
@@ -29,6 +29,7 @@
#include <mono/metadata/appdomain.h>
#include <mono/metadata/assembly.h>
#include <mono/metadata/threads.h>
+#include <mono/metadata/mono-config.h>
#include <mono/jit/jit.h>
#define d(x) (x)

View File

@ -1,111 +0,0 @@
diff -Nupr 1-evo/calendar/ChangeLog 2-evo/calendar/ChangeLog
--- 1-evo/calendar/ChangeLog 2008-10-22 10:27:20.000000000 +0530
+++ 2-evo/calendar/ChangeLog 2008-10-22 09:44:22.000000000 +0530
@@ -534,6 +534,11 @@ License Changes
(gnome_calendar_on_date_navigator_selection_changed): Use a
single model for all the views.
+2008-08-13 Suman Manjunath <msuman@novell.com>
+
+ * gui/dialogs/comp-editor.c (real_send_comp): Don't replace
+ attachment list if backend can CREATE_MESSAGES
+
2008-08-12 Matthew Barnes <mbarnes@redhat.com>
* gui/migration.c:
diff -Nupr 1-evo/calendar/gui/dialogs/comp-editor.c 2-evo/calendar/gui/dialogs/comp-editor.c
--- 1-evo/calendar/gui/dialogs/comp-editor.c 2008-10-22 10:27:20.000000000 +0530
+++ 2-evo/calendar/gui/dialogs/comp-editor.c 2008-10-22 09:44:22.000000000 +0530
@@ -3046,7 +3046,8 @@ real_send_comp (CompEditor *editor, ECal
set_attendees_for_delegation (send_comp, address, method);
}
- if (!e_cal_component_has_attachments (priv->comp)) {
+ if (!e_cal_component_has_attachments (priv->comp)
+ || e_cal_get_static_capability (priv->client, CAL_STATIC_CAPABILITY_CREATE_MESSAGES)) {
if (itip_send_comp (method, send_comp, priv->client,
NULL, NULL, users)) {
g_object_unref (send_comp);
diff -Nupr 1-evo/calendar/gui/itip-utils.c 2-evo/calendar/gui/itip-utils.c
--- 1-evo/calendar/gui/itip-utils.c 2008-10-07 09:00:09.000000000 +0530
+++ 2-evo/calendar/gui/itip-utils.c 2008-10-20 16:04:33.000000000 +0530
@@ -1147,7 +1147,7 @@ itip_send_comp (ECalComponentItipMethod
gchar *subject = NULL;
gboolean retval = FALSE;
- /* check whether backend could handle sending requests/updates */
+ /* check whether backend could handle auto-saving requests/updates */
if (method != E_CAL_COMPONENT_METHOD_PUBLISH && e_cal_get_save_schedules (client))
return TRUE;
@@ -1157,6 +1157,15 @@ itip_send_comp (ECalComponentItipMethod
goto cleanup;
}
+ /* check whether backend could handle sending requests/updates */
+ if (method != E_CAL_COMPONENT_METHOD_PUBLISH && e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_CREATE_MESSAGES)) {
+ if (users) {
+ g_list_foreach (users, (GFunc) g_free, NULL);
+ g_list_free (users);
+ }
+ return TRUE;
+ }
+
/* Tidy up the comp */
comp = comp_compliant (method, send_comp, client, zones);
diff -Nupr 1-evo/plugins/itip-formatter/ChangeLog 2-evo/plugins/itip-formatter/ChangeLog
--- 1-evo/plugins/itip-formatter/ChangeLog 2008-10-20 09:19:46.000000000 +0530
+++ 2-evo/plugins/itip-formatter/ChangeLog 2008-10-20 16:04:33.000000000 +0530
@@ -66,6 +66,12 @@ License Changes
* itip-view.h:
+2008-08-14 Suman Manjunath <msuman@novell.com>
+
+ * itip-formatter.c (update_x), (update_attendee_status): Copy
+ required X-* properties . This might be needed for special cases
+ in certain backends.
+
2008-08-11 Matthew Barnes <mbarnes@redhat.com>
** Fixes part of bug #546892
diff -Nupr 1-evo/plugins/itip-formatter/itip-formatter.c 2-evo/plugins/itip-formatter/itip-formatter.c
--- 1-evo/plugins/itip-formatter/itip-formatter.c 2008-10-20 09:13:02.000000000 +0530
+++ 2-evo/plugins/itip-formatter/itip-formatter.c 2008-10-20 16:04:33.000000000 +0530
@@ -1183,6 +1183,26 @@ remove_delegate (struct _itip_puri *piti
}
+static void
+update_x (ECalComponent *pitip_comp, ECalComponent *comp)
+{
+ icalcomponent *itip_icalcomp = e_cal_component_get_icalcomponent (pitip_comp);
+ icalcomponent *icalcomp = e_cal_component_get_icalcomponent (comp);
+
+ icalproperty *prop = icalcomponent_get_first_property (itip_icalcomp, ICAL_X_PROPERTY);
+ while (prop) {
+ const char *name = icalproperty_get_x_name (prop);
+ if (!g_ascii_strcasecmp (name, "X-EVOLUTION-IS-REPLY")) {
+ icalproperty *new_prop = icalproperty_new_x (icalproperty_get_x (prop));
+ icalproperty_set_x_name (new_prop, "X-EVOLUTION-IS-REPLY");
+ icalcomponent_add_property (icalcomp, new_prop);
+ }
+ prop = icalcomponent_get_next_property (itip_icalcomp, ICAL_X_PROPERTY);
+ }
+
+ e_cal_component_set_icalcomponent (comp, icalcomp);
+}
+
static void
update_attendee_status (struct _itip_puri *pitip)
{
@@ -1283,6 +1303,8 @@ update_attendee_status (struct _itip_pur
}
}
+ update_x (pitip->comp, comp);
+
if (itip_view_get_update (ITIP_VIEW (pitip->view))) {
e_cal_component_commit_sequence (comp);
itip_send_comp (E_CAL_COMPONENT_METHOD_REQUEST, comp, pitip->current_ecal, NULL, NULL, NULL);

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bd27ffd7a86e619cfa1e23b88cdd234040c2324bf54c2361070a200619d37434
size 32617635

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0823c676b04f9094dce87b89907573fb818ff419316ee0e630da69ac0f9f2e8b
size 30219567

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b21d448e1a6f19783b0b368fcb55a7d4c59e3a81fe2641fa155154543d10d59a
size 1227255
oid sha256:c6284072f563e62533642dffe590e32b299a0d5fcd90bcd48a0afe78e3e39b40
size 1356658

View File

@ -1,9 +1,111 @@
-------------------------------------------------------------------
Thu Feb 5 19:21:24 CET 2009 - vuntz@novell.com
- Respinned sharepoint-account-setup.patch and
sp-meetingworkspace-ui.patch so that they actually apply. And
disable them -- something is definitely broken there. Maybe I
didn't respinned them correctly :/
- Also disable sp-tasks-setup.diff,
bnc-449888-handle-no-workspace.patch and
sharepoint-account-setup.patch: the whole sharepoint stuff breaks
the build.
-------------------------------------------------------------------
Thu Feb 5 15:12:24 CET 2009 - sbrabec@suse.cz
- Added support for gnome-patch-translation (bnc#464770).
-------------------------------------------------------------------
Wed Feb 4 15:09:15 IST 2009 - msuman@suse.de
- Update to version 2.25.90:
+ Bugs fixed: bgo#208426, bgo#245156, bgo#246313, bgo#303738,
bgo#310844, bgo#339879, bgo#360813, bgo#489437, bgo#554454,
bgo#555310, bgo#563364, bgo#563867, bgo#565376, bgo#565681,
bgo#566011, bgo#566572, bgo#566599, bgo#566653, bgo#567031,
bgo#567045, bgo#567129, bgo#567148, bgo#567270, bgo#567276,
bgo#567280, bgo#567281, bgo#567282, bgo#567285, bgo#567409,
bgo#567687, bgo#567744, bgo#318003, bgo#342446, bgo#362754,
bgo#442869, bgo#539467, bgo#546637, bgo#559604, bgo#561628,
bgo#562449, bgo#567654, bgo#567824, bgo#347287, bnc#443544,
bnc#458968, bnc#462372, bnc#450554, bnc#470474, bnc#450535,
bnc#463602
+ Some fixes to use newer non-deprecated Gtk+ APIs, headers.
+ Updated translations.
- Disable the Novell ICEDesktop plugin.
- Added:
+ compiler-warnings.diff: Fixes a few compiler warnings
- Dropped these patches already fixed upstream:
+ bgo-559604-tooltip-for-gw.patch
+ bnc-435455-attendees-meeting-resize.patch
+ bnc-439987-classify-sensitivity.patch
+ bnc-440624-six-appts-timeslot.patch
+ bnc-443544-evo-free-busy.patch
+ bnc-456481-evolution-eats-memory.patch
+ bnc-458153-busy-button.patch
+ bnc-458968-warning-on-delegating.patch
+ bnc-462372-open-attachment-event.patch
+ bnc-463599-header-print-issues.patch
+ pst-import.patch
------------------------------------------------------------------
Wed Feb 4 15:09:15 IST 2009 - msuman@suse.de
- Update to version 2.25.90:
+ Bugs fixed: bgo#208426, bgo#245156, bgo#246313, bgo#303738,
bgo#310844, bgo#339879, bgo#360813, bgo#489437, bgo#554454,
bgo#555310, bgo#563364, bgo#563867, bgo#565376, bgo#565681,
bgo#566011, bgo#566572, bgo#566599, bgo#566653, bgo#567031,
bgo#567045, bgo#567129, bgo#567148, bgo#567270, bgo#567276,
bgo#567280, bgo#567281, bgo#567282, bgo#567285, bgo#567409,
bgo#567687, bgo#567744, bgo#318003, bgo#342446, bgo#362754,
bgo#442869, bgo#539467, bgo#546637, bgo#559604, bgo#561628,
bgo#562449, bgo#567654, bgo#567824, bgo#347287, bnc#443544,
bnc#458968, bnc#462372, bnc#450554, bnc#470474, bnc#450535,
bnc#463602
+ Some fixes to use newer non-deprecated Gtk+ APIs, headers.
+ Updated translations.
- Disable the Novell ICEDesktop plugin.
- Added:
+ compiler-warnings.diff: Fixes a few compiler warnings
- Dropped these patches already fixed upstream:
+ bgo-559604-tooltip-for-gw.patch
+ bnc-435455-attendees-meeting-resize.patch
+ bnc-439987-classify-sensitivity.patch
+ bnc-440624-six-appts-timeslot.patch
+ bnc-443544-evo-free-busy.patch
+ bnc-456481-evolution-eats-memory.patch
+ bnc-458153-busy-button.patch
+ bnc-458968-warning-on-delegating.patch
+ bnc-462372-open-attachment-event.patch
+ bnc-463599-header-print-issues.patch
+ pst-import.patch
-------------------------------------------------------------------
Mon Jan 12 15:25:27 EST 2009 - mauro@suse.de
- Translations update.
------------------------------------------------------------------
Mon Jan 12 13:49:48 CET 2009 - pchenthill@suse.de
- + bnc #449899 - sp-process-meetings.diff - show accept/decline
options for sharepoint meetings.
------------------------------------------------------------------
Sun Jan 11 16:40:44 IST 2009 - msuman@suse.de
- Pruning changes from the factory submission:
+ Dropped these patches already fixed upstream:
+ bgo-559604-calendar-tooltip-updated.patch
+ bgo-564248-evo-copy-paste-images.patch
+ bnc-435694-retract-feature-broken.patch
+ bnc-446285-traverse-all-entries.patch
+ bnc-446287-missing-vcf-reader.patch
+ bnc-449952-hotkey-evo-preferences.patch
+ bnc-439998-delete-delegated-events.patch
+ bnc-462349-shared-memo-editor.patch
-------------------------------------------------------------------
Fri Jan 9 00:18:22 CET 2009 - mauro@suse.de
@ -67,6 +169,60 @@ Wed Jan 7 11:27:13 CET 2009 - abharath@suse.de
+ bnc#463587 - [PATCH] evolution --force-shutdown Tries To Kill All
Users.
-------------------------------------------------------------------
Tue Jan 6 13:34:55 IST 2009 - msuman@suse.de
- Update to version 2.25.4:
+ Bugs fixed: bnc#435694, bnc#439998, bnc#446285, bgo#546437,
bgo#546860, bgo#558337, bgo#559153, bgo#559604, bgo#562091,
bgo#562155, bgo#564248, bgo#565628, bgo#565857, bgo#566206
+ Updated translations
-------------------------------------------------------------------
Tue Dec 30 09:36:10 IST 2008 - msuman@suse.de
- Split out the mono stuff into a separate evolution-mono subpackage
-------------------------------------------------------------------
Wed Dec 24 15:24:56 IST 2008 - msuman@suse.de
- Update to version 2.25.3.1:
+ Bugs fixed: bgo#332729, bgo#359745, bgo#386036, bgo#490503,
bgo#503662, bgo#524377, bgo#541121, bgo#552583, bgo#552850,
bgo#554450, bgo#554464, bgo#555276, bgo#556224, bgo#557246,
bgo#557581, bgo#557726, bgo#557818, bgo#558322, bgo#558354,
bgo#559371, bgo#559518, bgo#559604, bgo#559701, bgo#559810,
bgo#560138, bgo#560329, bgo#560882, bgo#561467, bgo#332629,
bgo#332629, bgo#333224, bgo#337082, bgo#348299, bgo#350725,
bgo#352287, bgo#549964, bgo#551599, bgo#552357, bgo#552583,
bgo#552583, bgo#555371, bgo#555663, bgo#556303, bgo#558498,
bgo#560420, bgo#562228, bgo#562990, bgo#563077, bgo#563250,
bgo#563369, bgo#563633, bgo#563669, bgo#563870, bgo#564351,
bnc#434320, bnc#437226, bnc#440007, bnc#440646, bnc#443190,
bnc#446286
+ Updated translations
- Re-based old patches.
- Dropped these patches fixed upstream:
+ bgo-332729-invalid-write-econfig.patch
+ bgo-556224-search-events-offline.patch
+ bgo-558354-alarm-notify-improved.patch
+ bgo-562228-evo-mailbox-field.patch
+ bnc-434320-mail-notify-fix.patch
+ bnc-435452-lose-attendees-busy-search.patch
+ bnc-439733-bogofilter-junk-training.patch
+ bnc-440646-set-color-proxy.patch
+ bnc-440649-display-meeting-bold.patch
+ bnc-441763-diff-meeting-icon.patch
+ bnc-441770-non-intrusive-calendar.patch
+ bnc-442135-exchange-settings-offline.patch
+ bnc-443190-warning-before-editing-appt.patch
+ bnc-443851-calendar-tooltip-info.patch
+ bnc-446286-message-tracking-status.patch
+ bnc-446356-a11y-crash.diff
+ bnc-446390-corrupted-vfolders.patch
+ evo-core-mapi-changes.diff
+ remove-nm-dep.patch
-------------------------------------------------------------------
Thu Dec 4 12:13:42 CET 2008 - abharath@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package evolution (Version 2.24.1.1)
# spec file for package evolution (Version 2.25.90)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -20,7 +20,6 @@
Name: evolution
BuildRequires: bison
BuildRequires: dice-devel
%if %suse_version > 1100
BuildRequires: evoldap2-devel
%else
@ -31,18 +30,18 @@ BuildRequires: fdupes
BuildRequires: gnome-common
BuildRequires: gnome-doc-utils-devel
BuildRequires: gnome-icon-theme-devel
BuildRequires: gnome-patch-translation
BuildRequires: gnome-pilot-devel
BuildRequires: gtk-doc
BuildRequires: gtkhtml2-devel
BuildRequires: intltool
BuildRequires: libgweather-devel >= 2.25.4
BuildRequires: libidl
BuildRequires: libnotify-devel
BuildRequires: libpisock-devel
BuildRequires: libpisync-devel
BuildRequires: libpst-devel
BuildRequires: mono-devel
BuildRequires: mozilla-nss-devel
BuildRequires: ndesk-dbus-glib-devel
BuildRequires: notification-daemon
BuildRequires: nss-shared-helper-devel
BuildRequires: perl-XML-Parser
@ -56,130 +55,53 @@ BuildRequires: update-desktop-files
License: LGPL v2.0 only; LGPL v3 only
Group: Productivity/Networking/Email/Clients
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
%define evolution_base_version 2.24
Version: 2.24.1.1
Release: 10
%define evolution_base_version 2.26
Version: 2.25.90
Release: 1
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
Source0: %{name}-%{version}.tar.bz2
Source0: ftp://ftp.gnome.org/pub/gnome/sources/evolution/2.25/%{name}-%{version}.tar.bz2
Source1: summerdance-about2.png
Source2: ximian-evolution-desktop-files.tar.bz2
Source3: ximian-evolution-pixmaps.tar.bz2
Source4: %{name}-po.tar.gz
Patch4: evolution-desktop.patch
Patch6: remove-nm-dep.patch
# PATCH-NEEDS-REBASE calendar-sendbutton.patch -- It also needs a proper description and a bug number
Patch7: calendar-sendbutton.patch
Patch8: fix-exchange-menuitem.diff
Patch9: fix-sendrecv.diff
# PATCH-FIX-UPSTREAM pst-import.patch abharath@suse.de -- This patch allows you to import PST files into Evolution.
Patch13: pst-import.patch
# PATCH-FIX-OPENSUSE evolution-custom-openldap-includes.patch maw@novell.com -- look for ldap includes in %{_libdir}/evoldap/include
Patch15: evolution-custom-openldap-includes.patch
# PATCH-FEATURE-OPENSUSE evolution-shared-nss-db.patch hpj@novell.com -- Migrate to shared NSS database.
Patch16: evolution-shared-nss-db.patch
# PATCH-FIX-UPSTREAM bgo-558354-alarm-notify-improved.patch bgo#558354 -- "Close" button replaced with a per-item "Dismiss" button.
Patch17: bgo-558354-alarm-notify-improved.patch
# PATCH-FIX-UPSTREAM bnc-435668-hide-accept.patch bnc#435668 -- Meetings In SentItems Should Hide Accept/Decline.
Patch18: bnc-435668-hide-accept.patch
# PATCH-FIX-UPSTREAM bnc-435722-book-uri-long.patch bnc#435722 abharath@suse.de -- Book URI: Spills Into Second Column.
Patch19: bnc-435722-book-uri-long.patch
# PATCH-FIX-UPSTREAM bnc-441763-diff-meeting-icon.patch bnc#441763 -- This patch shows different icons for meetings
Patch20: bnc-441763-diff-meeting-icon.patch
# PATCH-FIX-UPSTREAM bnc-441770-non-intrusive-calendar.patch bnc#441770 -- This patch makes error dialogs non-intrusive.
Patch21: bnc-441770-non-intrusive-calendar.patch
# PATCH-FIX-UPSTREAM bnc-442135-exchange-settings-offline.patch bnc#442135 abharath@suse.de -- This patch fixes wrong error dialogs.
Patch22: bnc-442135-exchange-settings-offline.patch
# PATCH-FIX-UPSTREAM sharepoint-account-setup.patch pchenthill@suse.de -- This patch allows you to connect to sharepoint servers.
Patch23: sharepoint-account-setup.patch
# PATCH-FIX-UPSTREAM bgo-556224-search-events-offline.patch bgo556224 -- Fix has been submitted upstream.
Patch24: bgo-556224-search-events-offline.patch
# PATCH-FIX-OPENSUSE bnc-433448-backup-restore-fails.patch bnc433448 abharath@suse.de -- Not required upstream.
Patch25: bnc-433448-backup-restore-fails.patch
# PATCH-FIX-UPSTREAM bnc-434320-mail-notify-fix.patch bnc434320 sragavan@novell.com -- Fix has been submitted upstream.
Patch26: bnc-434320-mail-notify-fix.patch
# PATCH-FIX-UPSTREAM bnc-440624-six-appts-timeslot.patch bnc440624 bgo246313 -- Fix has been submitted upstream.
Patch27: bnc-440624-six-appts-timeslot.patch
# PATCH-FIX-UPSTREAM bnc-440646-set-color-proxy.patch bnc440646 msuman@suse.de -- Fix is upstream since 2.24.2
Patch28: bnc-440646-set-color-proxy.patch
# PATCH-FIX-UPSTREAM bnc-440649-display-meeting-bold.patch bnc440649 bgo490503 -- Fix is upstream since 2.25.3
Patch29: bnc-440649-display-meeting-bold.patch
# PATCH-FIX-UPSTREAM bnc-443190-warning-before-editing-appt.patch bnc443190 msuman@suse.de -- Fix is upstream since 2.24.2
Patch30: bnc-443190-warning-before-editing-appt.patch
# PATCH-FIX-UPSTREAM bnc-443851-calendar-tooltip-info.patch bnc443851 bgo559604 -- Fix has been submitted upstream.
Patch31: bnc-443851-calendar-tooltip-info.patch
# PATCH-FIX-UPSTREAM bnc-446356-a11y-crash.diff bnc446356 bgo560329 -- Fix is upstream since 2.24.2
Patch32: bnc-446356-a11y-crash.diff
# PATCH-FIX-UPSTREAM bnc-446390-corrupted-vfolders.patch bnc446390 bgo559604 sragavan@novell.com -- Fix has been submitted upstream.
Patch33: bnc-446390-corrupted-vfolders.patch
# PATCH-FIX-UPSTREAM bnc-446286-message-tracking-status.patch bnc446286 abharath@suse.de -- Fix has been submitted upstream.
Patch34: bnc-446286-message-tracking-status.patch
# PATCH-FIX-UPSTREAM bnc-210959-evo-accept-ics.patch bnc210959 pchenthill@novell.com -- Patch yet to be pushed upstream.
Patch35: bnc-210959-evo-accept-ics.patch
# PATCH-FIX-UPSTREAM sp-tasks-setup.diff pchenthill@suse.de -- Patch needs to be upstreamed.
Patch36: sp-tasks-setup.diff
# PATCH-FIX-UPSTREAM bgo-332729-invalid-write-econfig.patch bgo332729 -- Fix has been submitted upstream.
Patch37: bgo-332729-invalid-write-econfig.patch
# PATCH-FIX-UPSTREAM bgo-562228-evo-mailbox-field.patch bgo562228 -- Fix has been submitted upstream.
Patch38: bgo-562228-evo-mailbox-field.patch
# PATCH-FIX-UPSTREAM bnc-435452-lose-attendees-busy-search.patch bnc435452 sragavan@novell.com -- Patch is part of GNOME 2.25.5 release.
Patch39: bnc-435452-lose-attendees-busy-search.patch
# PATCH-FIX-UPSTREAM bnc-439733-bogofilter-junk-training.patch bnc439733 sragavan@novell.com -- Patch is part of GNOME 2.25.5 release.
Patch40: bnc-439733-bogofilter-junk-training.patch
# PATCH-FIX-UPSTREAM sp-meetingworkspace-ui.patch pchenthill@suse.de -- Patch needs to be upstreamed.
Patch41: sp-meetingworkspace-ui.patch
# PATCH-FIX-UPSTREAM bnc-449888-handle-no-workspace.patch bnc449888 pchenthill@suse.de -- Patch needs to be upstreamed.
Patch42: bnc-449888-handle-no-workspace.patch
# PATCH-FIX-UPSTREAM bgo-559153-evo-migration.patch bgo559153 psankar@suse.de -- Patch is part of GNOME 2.25.5 release.
# PATCH-NEEDS-REBASE bgo-559153-evo-migration.patch bgo559153 psankar@suse.de -- Patch is part of GNOME 2.25.5 release.
Patch43: bgo-559153-evo-migration.patch
# PATCH-FIX-UPSTREAM bgo-559604-calendar-tooltip-updated.patch bgo559604 -- Patch is part of GNOME 2.25.5 release.
Patch44: bgo-559604-calendar-tooltip-updated.patch
# PATCH-FIX-UPSTREAM bgo-564248-evo-copy-paste-images.patch bgo564248 -- Patch is part of GNOME 2.25.5 release.
Patch45: bgo-564248-evo-copy-paste-images.patch
# PATCH-FIX-UPSTREAM bnc-435694-retract-feature-broken.patch bnc435694 abharath@suse.de -- Patch is part of GNOME 2.25.5 release.
Patch46: bnc-435694-retract-feature-broken.patch
# PATCH-FIX-UPSTREAM bnc-446285-traverse-all-entries.patch bnc446285 abharath@suse.de -- Patch is part of GNOME 2.25.5 release.
Patch47: bnc-446285-traverse-all-entries.patch
# PATCH-FIX-UPSTREAM bnc-446287-missing-vcf-reader.patch sragavan@novell.com -- Patch is part of GNOME 2.25.5 release.
Patch48: bnc-446287-missing-vcf-reader.patch
# PATCH-FIX-UPSTREAM bnc-449952-hotkey-evo-preferences.patch bnc449952 sragavan@novell.com -- Patch needs to be upstreamed.
Patch49: bnc-449952-hotkey-evo-preferences.patch
# PATCH-FIX-UPSTREAM bnc-443544-evo-free-busy.patch bnc443544 abharath@suse.de -- Patch is part of GNOME 2.25.5 release.
Patch50: bnc-443544-evo-free-busy.patch
# PATCH-FIX-UPSTREAM bnc-435455-attendees-meeting-resize.patch bnc435455 shashish@suse.de -- Patch needs to be upstreamed.
Patch51: bnc-435455-attendees-meeting-resize.patch
# PATCH-FIX-UPSTREAM bnc-439998-delete-delegated-events.patch bnc439998 abharath@suse.de -- Patch is part of GNOME 2.25.5 release.
Patch52: bnc-439998-delete-delegated-events.patch
# PATCH-FIX-SLED bnc-440634-forwarded-hide-accept-decline.patch bnc440634 abharath@suse.de -- Make GW understand folders better.
Patch53: bnc-440634-forwarded-hide-accept-decline.patch
# PATCH-FIX-SLED bnc-445996-address-conflict.patch bnc445996 shashish@suse.de -- Needs to be moved out of glade files.
Patch54: bnc-445996-address-conflict.patch
# PATCH-FIX-UPSTREAM bnc-458153-busy-button.patch bnc458153 shashish@suse.de -- Patch is part of GNOME 2.25.5 release.
Patch55: bnc-458153-busy-button.patch
# PATCH-FIX-UPSTREAM bnc-462349-shared-memo-editor.patch bnc462349 -- Patch is part of GNOME 2.25.5 release.
Patch56: bnc-462349-shared-memo-editor.patch
# PATCH-FIX-UPSTREAM bnc-463599-header-print-issues.patch bnc463599 abharath@suse.de -- Patch needs to be upstreamed.
Patch57: bnc-463599-header-print-issues.patch
# PATCH-FIX-UPSTREAM bnc-439987-classify-sensitivity.patch bnc439987 pchenthill@suse.de -- Patch needs to be upstreamed.
Patch58: bnc-439987-classify-sensitivity.patch
# PATCH-FIX-UPSTREAM bnc-456481-evolution-eats-memory.patch bnc456481 sragavan@novell.com -- Patch needs to be upstreamed.
Patch59: bnc-456481-evolution-eats-memory.patch
# PATCH-FIX-UPSTREAM bnc-462372-open-attachment-event.patch bnc462372 shashish@suse.de -- Patch is part of GNOME 2.25.5 release.
Patch60: bnc-462372-open-attachment-event.patch
# PATCH-FIX-UPSTREAM bnc-458968-warning-on-delegating.patch bnc458968 msuman@suse.de -- Patch is part of GNOME 2.25.5 release.
Patch61: bnc-458968-warning-on-delegating.patch
# PATCH-FIX-UPSTREAM bgo-559604-tooltip-for-gw.patch bgo559604 -- Patch needs to be upstreamed.
Patch62: bgo-559604-tooltip-for-gw.patch
# PATCH-FIX-UPSTREAM evo-core-mapi-changes.diff msuman@suse.de -- Fix is upstream since 2.25.3
Patch100: evo-core-mapi-changes.diff
# PATCH-FIX-UPSTREAM compiler-warnings.diff msuman@suse.de -- Fix for a few compiler warnings, available upstream in 2.25.91
Patch63: compiler-warnings.diff
# PATCH-FIX-SLED sp-process-meetings.diff pchenthill@suse.de -- Fix for bug 449899 (bnc)
Patch101: sp-process-meetings.diff
Url: http://gnome.org/projects/evolution/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: yelp
Recommends: bogofilter
Requires: gtkhtml2 >= 3.10.0
Requires: evolution-data-server >= 2.24.1.1
Requires: gnome-icon-theme >= 2.10.0
Requires: %{name}-lang = %{version}
%gconf_schemas_prereq
@ -287,6 +209,7 @@ Requires: gtkhtml2-devel
Requires: libbonoboui-devel
Requires: libgnome-devel
Requires: libgnomeui-devel
Requires: libgweather-devel >= 2.25.4
Requires: libnotify-devel
Requires: libopenssl-devel
Requires: libxml2-devel
@ -313,6 +236,114 @@ embed the existing ones in other applications.
Authors:
--------
Addressbook
Arturo Esponosa <arturo@nuclecu.unam.mx> (Original Gnomecard author)
Nat Friedman <nat@ximian.com>
Chris Lahey <clahey@ximian.com>
Chris Toshok <toshok@ximian.com>
Jon Trowbridge <trow@ximian.com>
Artwork
Tuomas Kuosmanen <tigert@ximian.com>
Jakub Steiner <jimmac@ximian.com>
Calendar
Seth Alves <seth@ximian.com>
Eric Busboom <eric@softwarestudio.org> (libical author)
Arturo Esponosa <arturo@nuclecu.unam.mx> (Gnomecal contributor)
Damon Chaplin <damon@ximian.com>
Federico Mena-Quintero <federico@ximian.com>
Rodrigo Moya <rodrigo@ximian.com>
Jesse Pavel <jesse@ximian.com>
JP Rosevear <jpr@ximian.com>
Russell Steinthal <rms39@columbia.edu> (Gnomecal maintainer)
Documentation
Kevin Breit <mrproper@ximian.com>
Aaron Weber <aaron@ximian.com>
Mailer
Radek Doulik <rodo@ximian.com>
Larry Ewing <lewing@ximian.com>
Bertrand Guiheneuf <bertrand@ximian.com>
Jason Leach <jleach@ximian.com>
Matt Loper <matt@ximian.com>
Ettore Perazzoli <ettore@ximian.com>
Jeffrey Stedfast <fejj@ximian.com>
Jon Trowbridge <trow@ximian.com>
Peter Williams <peterw@ximian.com>
Dan Winship <danw@ximian.com>
Michael Zucchi <notzed@ximian.com>
Notes
Anders Carlsson <andersca@gnu.org>
Pilot
JP Rosevear <jpr@ximian.com>
Shell
Miguel de Icaza <miguel@ximian.com>
Jason Leach <jleach@ximian.com>
Ettore Perazzoli <ettore@ximian.com>
Translations
Akira TAGOH <tagoh@gnome.gr.jp>
Andraz Tori <andraz.tori1@guest.arnes.si>
Andreas Hyden <a.hyden@cyberpoint.se>
Arjan Scherpenisse <acscherp@wins.uva.nl>
Clara Tattoni <clara.tattoni@libero.it>
Fatih Demir <kabalak@gmx.net>
Gediminas Paulauskas <menesis@delfi.lt>
GNOME PL Team <translators@gnome.pl>
Gustavo Maciel Dias Vieira <gdvieira@zaz.com.br>
Héctor García Alvarez <hector@scouts-es.org>
Jesús Bravo Álvarez <jba@pobox.com>
Keld Simonsen <keld@dkuug.dk>
Kjartan Maraas <kmaraas@gnome.org>
Matthias Warkus <mawa@iname.com>
Spiros Papadimitriou <spapadim+@cs.cmu.edu>
Sung-Hyun Nam <namsh@kldp.org>
Szabolcs BAN <shooby@gnome.hu>
Tiago Antão <tiagoantao@bigfoot.com>
Valek Filippov <frob@df.ru>
Vincent Renardias <vincent@redhat.com>
Yuri Syrota <rasta@renome.rovno.ua>
UI
Anna Dirks <anna@ximian.com>
Widgets
Damon Chaplin <damon@ximian.com>
Miguel de Icaza <miguel@ximian.com>
Chris Lahey <clahey@ximian.com>
Federico Mena-Quintero <federico@ximian.com>
Chris Toshok <toshok@ximian.com>
%package mono-plugins
License: LGPL v2.0 only; LGPL v3 only
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
Group: Productivity/Networking/Email/Clients
Requires: evolution = %{?epoch:}%{version}-%{release}
# Dice support is disabled
#BuildRequires: dice-devel
BuildRequires: evolution-sharp
BuildRequires: gconf-sharp2
BuildRequires: glib-sharp2
BuildRequires: gnome-sharp2
BuildRequires: gtk-sharp2
BuildRequires: mono-devel
BuildRequires: ndesk-dbus-glib-devel
%description mono-plugins
Evolution consists of modular components (at the moment: mailer,
calendar, and address book) that should make daily life easier. Because
of the modular design, it is possible to plug new components into
Evolution or embed the existing ones in other applications.
Authors:
--------
Addressbook
@ -401,62 +432,32 @@ Authors:
%lang_package
%prep
%setup -q -a4
gnome-patch-translation-prepare
%patch4
%patch6
# %patch7
%patch8
%patch9
%patch13
%patch15 -p1
%patch16 -p1
%patch17
%patch18
%patch19
%patch20
%patch21
%patch22
%patch23 -p1
%patch24
# Disable: breaks the build
#%patch23 -p1
%patch25
%patch26
%patch27
%patch28
%patch29
%patch30
%patch31
%patch32
%patch33
%patch34
%patch35
%patch36 -p1
%patch37
%patch38
%patch39
%patch40
%patch41 -p1
%patch42 -p1
%patch43
%patch44
%patch45
%patch46
%patch47
%patch48
%patch49
%patch50
%patch51
%patch52
# Disable: breaks the build
#%patch36 -p1
# Disable: breaks the build
#%patch41 -p1
# Disable: breaks the build
#%patch42 -p1
###%patch43
%patch53
%patch54
%patch55
%patch56
%patch57
%patch58
%patch59
%patch60
%patch61
%patch62
%patch100 -p1
%patch101 -p1
%patch63
# Disable: breaks the build
#%patch101 -p1
gnome-patch-translation-update
%build
autoreconf -f -i
@ -473,13 +474,16 @@ export FFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fstack-protector"
%endif
--with-pisock \
--enable-pilot-conduits=yes \
--with-krb5=/usr \
--with-static-ldap=no \
--with-krb4=%{_prefix} \
--with-krb5=%{_prefix} \
--enable-nss=yes \
--enable-smime=yes \
--enable-exchange=yes \
--enable-ipv6=yes \
--enable-default-binary=yes \
--enable-mono=yes \
--enable-icedesktop=yes
--enable-icedesktop=no \
--disable-static
# Processing the files in help uses _lots_ of memory, so running that part in parallel is bad.
pushd help
%{__make}
@ -487,9 +491,11 @@ popd
%{__make} %{?jobs:-j%jobs}
%install
%{__make} DESTDIR=$RPM_BUILD_ROOT install
%{makeinstall}
# Remove the libtool archive files
%{__rm} $RPM_BUILD_ROOT/%{_libdir}/evolution/*/*.la
%{__rm} $RPM_BUILD_ROOT/%{_libdir}/evolution/*/*/*.la
%{__cp} %{SOURCE1} $RPM_BUILD_ROOT/%{_datadir}/evolution/%evolution_base_version/images/about-box.png
%suse_update_desktop_file -G "Mail and Calendar" -D "evolution-%evolution_base_version" evolution Core-Office
for xml in $RPM_BUILD_ROOT/%{_datadir}/gnome/help/evolution-*/*/evolution-*.xml; do
meinproc --check --cache `echo $xml | sed 's/xml$/cache.bz2/'` $xml || :
done
@ -499,6 +505,7 @@ done
%suse_update_desktop_file -G "Address Book" -D "evolution-%evolution_base_version/evolution-%evolution_base_version.xml?usage-contact" evolution-addressbook
%suse_update_desktop_file -G "Schedule Manager" -D "evolution-%evolution_base_version/evolution-%evolution_base_version.xml?usage-calendar" evolution-calendar
%suse_update_desktop_file -G "Task List" -D "evolution-%evolution_base_version/evolution-%evolution_base_version.xml?usage-calendar-todo" evolution-tasklist
%suse_update_desktop_file -G "Mail and Calendar" -D "evolution-%evolution_base_version" evolution Core-Office
# Install the Ximian pixmaps.
%{__mkdir_p} $RPM_BUILD_ROOT/%{_datadir}/pixmaps
%{__tar} --bzip2 -xf %{SOURCE3} -C $RPM_BUILD_ROOT/%{_datadir}/pixmaps/
@ -506,14 +513,11 @@ done
%find_lang evolution evolution-%evolution_base_version.lang
%find_gconf_schemas
%{__cat} %{name}.schemas_list >%{name}.lst
#%{__rm} $RPM_BUILD_ROOT/%{_libdir}/*.*a
%{__rm} $RPM_BUILD_ROOT/%{_libdir}/evolution/*/*.*a
%{__rm} $RPM_BUILD_ROOT/%{_libdir}/evolution/*/*/*.*a
%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/mime-info
%fdupes $RPM_BUILD_ROOT
%if %suse_version > 1100
%{__mv} $RPM_BUILD_ROOT/%{_bindir}/evolution $RPM_BUILD_ROOT/%{_bindir}/evolution.bin
echo -e "#!/bin/sh\n\ncase \$1 in\n\t\"--force-shutdown\")\n\t\tLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir}/mono:%{_libdir}/dice exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@ &\n\t\tpkill -u \$LOGNAME evolution.bin\n\t\t;;\n\t*)\n\t\tLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir}/mono:%{_libdir}/dice exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@\n\t\t;;\n\nesac\n\nexit \$?" > $RPM_BUILD_ROOT/%{_bindir}/evolution
echo -e "#!/bin/sh\n\nLD_LIBRARY_PATH=%{_libdir}/evoldap/lib exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@\n" > $RPM_BUILD_ROOT/%{_bindir}/evolution
%{__chmod} +x $RPM_BUILD_ROOT/%{_bindir}/evolution
%endif
@ -551,7 +555,49 @@ fi
%dir %{_libdir}/evolution/*
%{_libdir}/evolution/*/*.so.*
%{_libdir}/evolution/*/components
%{_libdir}/evolution/*/plugins
%dir %{_libdir}/evolution/*/plugins
%{_libdir}/evolution/*/plugins/attachment-reminder.glade
%{_libdir}/evolution/*/plugins/templates.glade
%{_libdir}/evolution/*/plugins/*-account-disable.*
%{_libdir}/evolution/*/plugins/*-addressbook-file.*
%{_libdir}/evolution/*/plugins/*-backup-restore.*
%{_libdir}/evolution/*/plugins/*-bogo-junk-plugin.*
%{_libdir}/evolution/*/plugins/*-calendar-file.*
%{_libdir}/evolution/*/plugins/*-calendar-http.*
%{_libdir}/evolution/*/plugins/*-calendar-weather.*
%{_libdir}/evolution/*/plugins/*-compose-send-options.*
%{_libdir}/evolution/*/plugins/*-copy-tool.*
%{_libdir}/evolution/*/plugins/*-default-mailer.*
%{_libdir}/evolution/*/plugins/*-default-source.*
%{_libdir}/evolution/*/plugins/*-email-custom-header.*
%{_libdir}/evolution/*/plugins/*-evolution-attachment-reminder.*
%{_libdir}/evolution/*/plugins/*-evolution-bbdb.*
%{_libdir}/evolution/*/plugins/*-evolution-caldav.*
%{_libdir}/evolution/*/plugins/*-evolution-google.*
%{_libdir}/evolution/*/plugins/*-evolution-mail-attachments-import-ics.*
%{_libdir}/evolution/*/plugins/*-evolution-startup-wizard.*
%{_libdir}/evolution/*/plugins/*-evolution-webdav.*
%{_libdir}/evolution/*/plugins/*-exchange-*-subscription.*
%{_libdir}/evolution/*/plugins/*-exchange-operations.*
%{_libdir}/evolution/*/plugins/*-face.*
%{_libdir}/evolution/*/plugins/*-folder-*.*
%{_libdir}/evolution/*/plugins/*-groupwise-features.*
%{_libdir}/evolution/*/plugins/*-gw-account-setup.*
%{_libdir}/evolution/*/plugins/*-imap-features.*
%{_libdir}/evolution/*/plugins/*-itip-formatter.*
%{_libdir}/evolution/*/plugins/*-mailing-list-actions.*
%{_libdir}/evolution/*/plugins/*-mail-notification.*
%{_libdir}/evolution/*/plugins/*-mail-to-task.*
%{_libdir}/evolution/*/plugins/*-mark-all-read.*
%{_libdir}/evolution/*/plugins/*-plugin-manager.*
%{_libdir}/evolution/*/plugins/*-prefer-plain.*
%{_libdir}/evolution/*/plugins/*-pst-import.*
%{_libdir}/evolution/*/plugins/*-publish-calendar.*
%{_libdir}/evolution/*/plugins/*-sa-junk-plugin.*
%{_libdir}/evolution/*/plugins/*-save-calendar.*
%{_libdir}/evolution/*/plugins/*-select-one-source.*
%{_libdir}/evolution/*/plugins/*-subject-thread.*
%{_libdir}/evolution/*/plugins/*-templates.*
%{_libdir}/evolution/*/csv2vcard
%{_libdir}/evolution/*/evolution-*
%{_libdir}/evolution/*/killev
@ -569,10 +615,100 @@ fi
%{_datadir}/gnome-pilot/conduits/*.conduit
%{_libdir}/evolution/*/conduits
%files mono-plugins
%defattr(-,root,root)
%{_libdir}/evolution/*/plugins/*-evolution-mono.*
# Dice support is disabled
#%{_libdir}/evolution/*/plugins/*-sharepoint-*
#%{_libdir}/evolution/*/plugins/*.dll
%changelog
* Thu Feb 05 2009 vuntz@novell.com
- Respinned sharepoint-account-setup.patch and
sp-meetingworkspace-ui.patch so that they actually apply. And
disable them -- something is definitely broken there. Maybe I
didn't respinned them correctly :/
- Also disable sp-tasks-setup.diff,
bnc-449888-handle-no-workspace.patch and
sharepoint-account-setup.patch: the whole sharepoint stuff breaks
the build.
* Thu Feb 05 2009 sbrabec@suse.cz
- Added support for gnome-patch-translation (bnc#464770).
* Wed Feb 04 2009 msuman@suse.de
- Update to version 2.25.90:
+ Bugs fixed: bgo#208426, bgo#245156, bgo#246313, bgo#303738,
bgo#310844, bgo#339879, bgo#360813, bgo#489437, bgo#554454,
bgo#555310, bgo#563364, bgo#563867, bgo#565376, bgo#565681,
bgo#566011, bgo#566572, bgo#566599, bgo#566653, bgo#567031,
bgo#567045, bgo#567129, bgo#567148, bgo#567270, bgo#567276,
bgo#567280, bgo#567281, bgo#567282, bgo#567285, bgo#567409,
bgo#567687, bgo#567744, bgo#318003, bgo#342446, bgo#362754,
bgo#442869, bgo#539467, bgo#546637, bgo#559604, bgo#561628,
bgo#562449, bgo#567654, bgo#567824, bgo#347287, bnc#443544,
bnc#458968, bnc#462372, bnc#450554, bnc#470474, bnc#450535,
bnc#463602
+ Some fixes to use newer non-deprecated Gtk+ APIs, headers.
+ Updated translations.
- Disable the Novell ICEDesktop plugin.
- Added:
+ compiler-warnings.diff: Fixes a few compiler warnings
- Dropped these patches already fixed upstream:
+ bgo-559604-tooltip-for-gw.patch
+ bnc-435455-attendees-meeting-resize.patch
+ bnc-439987-classify-sensitivity.patch
+ bnc-440624-six-appts-timeslot.patch
+ bnc-443544-evo-free-busy.patch
+ bnc-456481-evolution-eats-memory.patch
+ bnc-458153-busy-button.patch
+ bnc-458968-warning-on-delegating.patch
+ bnc-462372-open-attachment-event.patch
+ bnc-463599-header-print-issues.patch
+ pst-import.patch
- Update to version 2.25.90:
+ Bugs fixed: bgo#208426, bgo#245156, bgo#246313, bgo#303738,
bgo#310844, bgo#339879, bgo#360813, bgo#489437, bgo#554454,
bgo#555310, bgo#563364, bgo#563867, bgo#565376, bgo#565681,
bgo#566011, bgo#566572, bgo#566599, bgo#566653, bgo#567031,
bgo#567045, bgo#567129, bgo#567148, bgo#567270, bgo#567276,
bgo#567280, bgo#567281, bgo#567282, bgo#567285, bgo#567409,
bgo#567687, bgo#567744, bgo#318003, bgo#342446, bgo#362754,
bgo#442869, bgo#539467, bgo#546637, bgo#559604, bgo#561628,
bgo#562449, bgo#567654, bgo#567824, bgo#347287, bnc#443544,
bnc#458968, bnc#462372, bnc#450554, bnc#470474, bnc#450535,
bnc#463602
+ Some fixes to use newer non-deprecated Gtk+ APIs, headers.
+ Updated translations.
- Disable the Novell ICEDesktop plugin.
- Added:
+ compiler-warnings.diff: Fixes a few compiler warnings
- Dropped these patches already fixed upstream:
+ bgo-559604-tooltip-for-gw.patch
+ bnc-435455-attendees-meeting-resize.patch
+ bnc-439987-classify-sensitivity.patch
+ bnc-440624-six-appts-timeslot.patch
+ bnc-443544-evo-free-busy.patch
+ bnc-456481-evolution-eats-memory.patch
+ bnc-458153-busy-button.patch
+ bnc-458968-warning-on-delegating.patch
+ bnc-462372-open-attachment-event.patch
+ bnc-463599-header-print-issues.patch
+ pst-import.patch
* Mon Jan 12 2009 mauro@suse.de
- Translations update.
* Mon Jan 12 2009 pchenthill@suse.de
- + bnc #449899 - sp-process-meetings.diff - show accept/decline
options for sharepoint meetings.
* Sun Jan 11 2009 msuman@suse.de
- Pruning changes from the factory submission:
+ Dropped these patches already fixed upstream:
+ bgo-559604-calendar-tooltip-updated.patch
+ bgo-564248-evo-copy-paste-images.patch
+ bnc-435694-retract-feature-broken.patch
+ bnc-446285-traverse-all-entries.patch
+ bnc-446287-missing-vcf-reader.patch
+ bnc-449952-hotkey-evo-preferences.patch
+ bnc-439998-delete-delegated-events.patch
+ bnc-462349-shared-memo-editor.patch
* Fri Jan 09 2009 mauro@suse.de
- Translations update.
* Wed Jan 07 2009 abharath@suse.de
@ -628,6 +764,51 @@ fi
- Changes to the spec
+ bnc#463587 - [PATCH] evolution --force-shutdown Tries To Kill All
Users.
* Tue Jan 06 2009 msuman@suse.de
- Update to version 2.25.4:
+ Bugs fixed: bnc#435694, bnc#439998, bnc#446285, bgo#546437,
bgo#546860, bgo#558337, bgo#559153, bgo#559604, bgo#562091,
bgo#562155, bgo#564248, bgo#565628, bgo#565857, bgo#566206
+ Updated translations
* Tue Dec 30 2008 msuman@suse.de
- Split out the mono stuff into a separate evolution-mono subpackage
* Wed Dec 24 2008 msuman@suse.de
- Update to version 2.25.3.1:
+ Bugs fixed: bgo#332729, bgo#359745, bgo#386036, bgo#490503,
bgo#503662, bgo#524377, bgo#541121, bgo#552583, bgo#552850,
bgo#554450, bgo#554464, bgo#555276, bgo#556224, bgo#557246,
bgo#557581, bgo#557726, bgo#557818, bgo#558322, bgo#558354,
bgo#559371, bgo#559518, bgo#559604, bgo#559701, bgo#559810,
bgo#560138, bgo#560329, bgo#560882, bgo#561467, bgo#332629,
bgo#332629, bgo#333224, bgo#337082, bgo#348299, bgo#350725,
bgo#352287, bgo#549964, bgo#551599, bgo#552357, bgo#552583,
bgo#552583, bgo#555371, bgo#555663, bgo#556303, bgo#558498,
bgo#560420, bgo#562228, bgo#562990, bgo#563077, bgo#563250,
bgo#563369, bgo#563633, bgo#563669, bgo#563870, bgo#564351,
bnc#434320, bnc#437226, bnc#440007, bnc#440646, bnc#443190,
bnc#446286
+ Updated translations
- Re-based old patches.
- Dropped these patches fixed upstream:
+ bgo-332729-invalid-write-econfig.patch
+ bgo-556224-search-events-offline.patch
+ bgo-558354-alarm-notify-improved.patch
+ bgo-562228-evo-mailbox-field.patch
+ bnc-434320-mail-notify-fix.patch
+ bnc-435452-lose-attendees-busy-search.patch
+ bnc-439733-bogofilter-junk-training.patch
+ bnc-440646-set-color-proxy.patch
+ bnc-440649-display-meeting-bold.patch
+ bnc-441763-diff-meeting-icon.patch
+ bnc-441770-non-intrusive-calendar.patch
+ bnc-442135-exchange-settings-offline.patch
+ bnc-443190-warning-before-editing-appt.patch
+ bnc-443851-calendar-tooltip-info.patch
+ bnc-446286-message-tracking-status.patch
+ bnc-446356-a11y-crash.diff
+ bnc-446390-corrupted-vfolders.patch
+ evo-core-mapi-changes.diff
+ remove-nm-dep.patch
* Thu Dec 04 2008 abharath@suse.de
- Patches added
+ bgo#332729 - bgo-332729-invalid-write-econfig.patch - invalid

File diff suppressed because it is too large Load Diff

View File

@ -1,49 +0,0 @@
=== modified file 'configure.in'
--- configure.in 2007-12-18 20:23:31 +0000
+++ configure.in 2007-12-18 20:28:43 +0000
@@ -1456,23 +1456,17 @@
dnl --- evolution (shell) flags
NM_SUPPORT_PACKAGES=""
+NM_SUPPORT_GLIB="no"
-PKG_CHECK_MODULES(NM, dbus-glib-1 libnm_glib, NM_SUPPORT_GLIB="yes", NM_SUPPORT_GLIB="no")
-if test "x$NM_SUPPORT_GLIB" = "xyes"; then
- AC_DEFINE(NM_SUPPORT_GLIB, 1, [network manager available])
- NM_SUPPORT_PACKAGES="dbus-1 dbus-glib-1 libnm_glib"
-else
PKG_CHECK_MODULES(NM, dbus-glib-1, NM_SUPPORT="yes", NM_SUPPORT="no")
- AC_CHECK_HEADER(NetworkManager/NetworkManager.h, [ nm_header="yes" ] )
- if test "x$NM_SUPPORT" = "xyes" -a "x$nm_header" = "xyes"; then
+ if test "x$NM_SUPPORT" = "xyes"; then
AC_DEFINE(NM_SUPPORT, 1, [network manager available])
NM_SUPPORT_PACKAGES="dbus-1 dbus-glib-1"
else
- NM_SUPPORT=no
- fi
+ NM_SUPPORT="no"
fi
-AM_CONDITIONAL(NM_SUPPORT_GLIB, test x$NM_SUPPORT_GLIB = xyes)
+AM_CONDITIONAL(NM_SUPPORT_GLIB, test x$NM_SUPPORT_GLIB = xyes)
AM_CONDITIONAL(NM_SUPPORT, test x$NM_SUPPORT = xyes)
=== modified file 'shell/e-shell-nm.c'
--- shell/e-shell-nm.c 2007-12-18 20:23:31 +0000
+++ shell/e-shell-nm.c 2007-12-18 20:28:43 +0000
@@ -33,7 +33,11 @@
#include <dbus/dbus.h>
#include <dbus/dbus-glib-lowlevel.h>
#include <dbus/dbus-glib.h>
-#include <NetworkManager/NetworkManager.h>
+
+#define NM_DBUS_SERVICE "org.freedesktop.NetworkManager"
+#define NM_DBUS_PATH "/org/freedesktop/NetworkManager"
+#define NM_DBUS_INTERFACE "org.freedesktop.NetworkManager"
+
typedef enum _ShellLineStatus {
E_SHELL_LINE_DOWN,

View File

@ -1,8 +1,8 @@
diff --git a/plugins/mono/mono-plugin.c b/plugins/mono/mono-plugin.c
index 5c5182e..542e6f0 100644
--- a/plugins/mono/mono-plugin.c
+++ b/plugins/mono/mono-plugin.c
@@ -79,9 +79,14 @@ epm_invoke(EPlugin *ep, const char *name, void *data)
Index: evolution-2.25.90/plugins/mono/mono-plugin.c
===================================================================
--- evolution-2.25.90.orig/plugins/mono/mono-plugin.c
+++ evolution-2.25.90/plugins/mono/mono-plugin.c
@@ -80,9 +80,14 @@ epm_invoke(EPlugin *ep, const char *name
MonoObject *x = NULL, *res;
void **params;
@ -18,7 +18,7 @@ index 5c5182e..542e6f0 100644
mono_thread_attach(domain);
if (p->assembly == NULL) {
@@ -230,8 +235,6 @@ load_plugin_type_register_function (void *a, void *b)
@@ -231,8 +236,6 @@ load_plugin_type_register_function (void
type = g_type_register_static(e_plugin_get_type(), "EPluginMono", &info, 0);
e_plugin_register_type (type);
d(printf("\nType EPluginMono registered from the mono-plugin-loader\n"));
@ -27,11 +27,10 @@ index 5c5182e..542e6f0 100644
}
return GUINT_TO_POINTER(type);
diff --git a/plugins/sharepoint-account-setup/Makefile.am b/plugins/sharepoint-account-setup/Makefile.am
new file mode 100644
index 0000000..b01f3df
Index: evolution-2.25.90/plugins/sharepoint-account-setup/Makefile.am
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-account-setup/Makefile.am
+++ evolution-2.25.90/plugins/sharepoint-account-setup/Makefile.am
@@ -0,0 +1,37 @@
+CSC = gmcs
+
@ -70,11 +69,10 @@ index 0000000..b01f3df
+all: $(ASSEMBLY)
+
+CLEANFILES = org-gnome-sharepoint-account-setup.eplug $(ASSEMBLY) $(ASSEMBLY).mdb
diff --git a/plugins/sharepoint-account-setup/SharepointAccount.cs b/plugins/sharepoint-account-setup/SharepointAccount.cs
new file mode 100644
index 0000000..5009e98
Index: evolution-2.25.90/plugins/sharepoint-account-setup/SharepointAccount.cs
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-account-setup/SharepointAccount.cs
+++ evolution-2.25.90/plugins/sharepoint-account-setup/SharepointAccount.cs
@@ -0,0 +1,165 @@
+// SharepointAccount.cs created with MonoDevelop
+// User: chen at 12:30 PM 10/21/2008
@ -241,11 +239,10 @@ index 0000000..5009e98
+ }
+ }
+}
diff --git a/plugins/sharepoint-account-setup/SharepointAccountSetup.cs b/plugins/sharepoint-account-setup/SharepointAccountSetup.cs
new file mode 100644
index 0000000..70d6b15
Index: evolution-2.25.90/plugins/sharepoint-account-setup/SharepointAccountSetup.cs
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-account-setup/SharepointAccountSetup.cs
+++ evolution-2.25.90/plugins/sharepoint-account-setup/SharepointAccountSetup.cs
@@ -0,0 +1,22 @@
+using System;
+using Sharepoint;
@ -269,11 +266,10 @@ index 0000000..70d6b15
+ return (IntPtr) 0;
+ }
+}
diff --git a/plugins/sharepoint-account-setup/SharepointSource.cs b/plugins/sharepoint-account-setup/SharepointSource.cs
new file mode 100644
index 0000000..c61fcf0
Index: evolution-2.25.90/plugins/sharepoint-account-setup/SharepointSource.cs
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-account-setup/SharepointSource.cs
+++ evolution-2.25.90/plugins/sharepoint-account-setup/SharepointSource.cs
@@ -0,0 +1,97 @@
+// SharepointSource.cs created with MonoDevelop
+// User: chen at 1:38 AM 10/21/2008
@ -372,11 +368,10 @@ index 0000000..c61fcf0
+ }
+ }
+}
diff --git a/plugins/sharepoint-account-setup/org-gnome-sharepoint-account-setup.eplug.xml b/plugins/sharepoint-account-setup/org-gnome-sharepoint-account-setup.eplug.xml
new file mode 100644
index 0000000..80cdeb8
Index: evolution-2.25.90/plugins/sharepoint-account-setup/org-gnome-sharepoint-account-setup.eplug.xml
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-account-setup/org-gnome-sharepoint-account-setup.eplug.xml
+++ evolution-2.25.90/plugins/sharepoint-account-setup/org-gnome-sharepoint-account-setup.eplug.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0"?>
+<e-plugin-list>
@ -414,11 +409,10 @@ index 0000000..80cdeb8
+
+ </e-plugin>
+</e-plugin-list>
diff --git a/plugins/sharepoint-account-setup/org-gnome-sharepoint-disconnect-ui.xml b/plugins/sharepoint-account-setup/org-gnome-sharepoint-disconnect-ui.xml
new file mode 100644
index 0000000..d2545f8
Index: evolution-2.25.90/plugins/sharepoint-account-setup/org-gnome-sharepoint-disconnect-ui.xml
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-account-setup/org-gnome-sharepoint-disconnect-ui.xml
+++ evolution-2.25.90/plugins/sharepoint-account-setup/org-gnome-sharepoint-disconnect-ui.xml
@@ -0,0 +1,16 @@
+<Root>
+ <commands>
@ -436,11 +430,10 @@ index 0000000..d2545f8
+ </placeholder>
+ </menu>
+</Root>
diff --git a/plugins/sharepoint-account-setup/org-gnome-sharepoint-ui.xml b/plugins/sharepoint-account-setup/org-gnome-sharepoint-ui.xml
new file mode 100644
index 0000000..f92e097
Index: evolution-2.25.90/plugins/sharepoint-account-setup/org-gnome-sharepoint-ui.xml
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-account-setup/org-gnome-sharepoint-ui.xml
+++ evolution-2.25.90/plugins/sharepoint-account-setup/org-gnome-sharepoint-ui.xml
@@ -0,0 +1,16 @@
+<Root>
+ <commands>
@ -458,10 +451,10 @@ index 0000000..f92e097
+ </placeholder>
+ </menu>
+</Root>
diff --git a/ui/evolution.xml b/ui/evolution.xml
index 9b4231e..4008c95 100644
--- a/ui/evolution.xml
+++ b/ui/evolution.xml
Index: evolution-2.25.90/ui/evolution.xml
===================================================================
--- evolution-2.25.90.orig/ui/evolution.xml
+++ evolution-2.25.90/ui/evolution.xml
@@ -66,6 +66,8 @@
<placeholder name="ComponentItems"/>
</submenu>
@ -471,46 +464,45 @@ index 9b4231e..4008c95 100644
<menuitem name="OpenNewWindow" verb="" pixtype="pixbuf"/>
<separator f="" name="eshell4"/>
--- a/configure.in 2008-11-05 16:29:35.000000000 +0530
+++ b/configure.in 2008-11-06 18:48:19.000000000 +0530
@@ -900,7 +900,27 @@ if test "x${enable_mono}" = "xyes"; then
Index: evolution-2.25.90/configure.in
===================================================================
--- evolution-2.25.90.orig/configure.in
+++ evolution-2.25.90/configure.in
@@ -923,6 +923,24 @@ if test "x${enable_mono}" = "xyes"; then
PKG_CHECK_MODULES(MONO, "mono")
AC_DEFINE(ENABLE_MONO,1,[Define if Mono embedding should be enabled])
mono_package="mono"
MONO_PLUGIN="mono"
+ PKG_CHECK_MODULES(MONO_PLATFORM,
+ [glib-sharp-2.0, gtk-sharp-2.0, gconf-sharp-2.0, gnome-sharp-2.0,
+ evolution-sharp, ndesk-dbus-1.0, ndesk-dbus-glib-1.0, solvent])
+ AC_SUBST(MONO_PLATFORM_CFLAGS)
+ AC_SUBST(MONO_PLATFORM_LIBS)
+ MONO_BASED_PLUGINS=""
+
+ dnl Sharepoint account setup
+ AC_ARG_ENABLE([icedesktop],
+ AC_HELP_STRING([--enable-icedesktop],
+ [Build sharepoint provider]),
+ [enable_icedesktop=$enableval],[enable_icedesktop=no])
+ if test "x${enable_icedesktop}" = "xyes"; then
+ PKG_CHECK_MODULES(ICE_DESKTOP, [Novell.IceDesktop])
+ AC_SUBST(ICE_DESKTOP_CFLAGS)
+ AC_SUBST(ICE_DESKTOP_LIBS)
+ MONO_BASED_PLUGINS="$MONO_BASED_PLUGINS sharepoint-account-setup"
+ fi
+ PKG_CHECK_MODULES(MONO_PLATFORM,
+ [glib-sharp-2.0, gtk-sharp-2.0, gconf-sharp-2.0, gnome-sharp-2.0,
+ evolution-sharp, ndesk-dbus-1.0, ndesk-dbus-glib-1.0, solvent])
+ AC_SUBST(MONO_PLATFORM_CFLAGS)
+ AC_SUBST(MONO_PLATFORM_LIBS)
+ MONO_BASED_PLUGINS=""
+
+ dnl Sharepoint account setup
+ AC_ARG_ENABLE([icedesktop],
+ AC_HELP_STRING([--enable-icedesktop],
+ [Build sharepoint provider]),
+ [enable_icedesktop=$enableval],[enable_icedesktop=no])
+ if test "x${enable_icedesktop}" = "xyes"; then
+ PKG_CHECK_MODULES(ICE_DESKTOP, [Novell.IceDesktop])
+ AC_SUBST(ICE_DESKTOP_CFLAGS)
+ AC_SUBST(ICE_DESKTOP_LIBS)
+ MONO_BASED_PLUGINS="$MONO_BASED_PLUGINS sharepoint-account-setup"
+ fi
fi
+AC_SUBST(MONO_CFLAGS)
+AC_SUBST(MONO_LIBS)
dnl Python hooks
dnl This should just define python CFLAGS etc here, it is used later to
@@ -1732,7 +1752,7 @@ AC_ARG_ENABLE([plugins],
AC_SUBST(MONO_CFLAGS)
AC_SUBST(MONO_LIBS)
@@ -1775,7 +1793,7 @@ AC_ARG_ENABLE([plugins],
dnl Add any new plugins here
plugins_base_always="calendar-file calendar-http calendar-weather itip-formatter plugin-manager default-source addressbook-file startup-wizard mark-all-read groupwise-features groupwise-account-setup mail-account-disable publish-calendar caldav imap-features google-account-setup webdav-account-setup"
plugins_base_always="calendar-file calendar-http $CALENDAR_WEATHER itip-formatter plugin-manager default-source addressbook-file startup-wizard mark-all-read groupwise-features groupwise-account-setup mail-account-disable publish-calendar caldav imap-features google-account-setup webdav-account-setup"
-plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $BF_JUNK_PLUGIN $EXCHANGE_PLUGIN $MONO_PLUGIN "
+plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $BF_JUNK_PLUGIN $EXCHANGE_PLUGIN $MONO_PLUGIN $MONO_BASED_PLUGINS"
all_plugins_base="$plugins_base_always sa-junk-plugin bogo-junk-plugin exchange-operations mono"
plugins_standard_always="bbdb subject-thread save-calendar select-one-source copy-tool mail-to-task mark-calendar-offline audio-inline mailing-list-actions default-mailer import-ics-attachments prefer-plain mail-notification attachment-reminder face backup-restore email-custom-header templates pst-import"
@@ -1784,6 +1804,11 @@ if test "x${enable_mono}" = "xyes"; then
plugins_standard_always="bbdb subject-thread save-calendar select-one-source copy-tool mail-to-task audio-inline mailing-list-actions default-mailer import-ics-attachments prefer-plain mail-notification attachment-reminder face backup-restore email-custom-header templates pst-import"
@@ -1827,6 +1845,11 @@ if test "x${enable_mono}" = "xyes"; then
msg_plugins="$msg_plugins (and mono)"
fi
@ -522,7 +514,7 @@ index 9b4231e..4008c95 100644
if test "x${enable_python}" = "xyes"; then
plugins_enabled="$plugins_enabled python"
@@ -2072,6 +2097,7 @@ plugins/pst-import/Makefile
@@ -2115,6 +2138,7 @@ plugins/pst-import/Makefile
plugins/face/Makefile
plugins/external-editor/Makefile
plugins/webdav-account-setup/Makefile

View File

@ -1,7 +1,7 @@
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index 16bdb97..5818165 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
Index: evolution-2.25.90/calendar/gui/dialogs/comp-editor.c
===================================================================
--- evolution-2.25.90.orig/calendar/gui/dialogs/comp-editor.c
+++ evolution-2.25.90/calendar/gui/dialogs/comp-editor.c
@@ -63,6 +63,7 @@
#include "../e-cal-popup.h"
#include "../calendar-config-keys.h"
@ -19,7 +19,7 @@ index 16bdb97..5818165 100644
gchar *summary;
guint32 attachment_bar_visible : 1;
@@ -2179,29 +2180,28 @@ setup_widgets (CompEditor *editor)
@@ -2228,29 +2229,28 @@ setup_widgets (CompEditor *editor)
CompEditorPrivate *priv;
GtkWidget *expander_hbox;
GtkWidget *widget;
@ -55,7 +55,7 @@ index 16bdb97..5818165 100644
gtk_widget_show (widget);
priv->notebook = GTK_NOTEBOOK (widget);
@@ -2254,7 +2254,7 @@ setup_widgets (CompEditor *editor)
@@ -2303,7 +2303,7 @@ setup_widgets (CompEditor *editor)
atk_object_set_description (gtk_widget_get_accessible (priv->attachment_expander), _("Press space key to toggle attachment bar"));
gtk_container_add (GTK_CONTAINER (priv->attachment_expander), priv->attachment_scrolled_window);
@ -64,7 +64,7 @@ index 16bdb97..5818165 100644
gtk_widget_show (priv->attachment_expander);
e_expander_set_expanded (E_EXPANDER (priv->attachment_expander), FALSE);
g_signal_connect_after (priv->attachment_expander, "activate",
@@ -2495,6 +2495,22 @@ comp_editor_get_ui_manager (CompEditor *editor)
@@ -2546,6 +2546,22 @@ comp_editor_get_ui_manager (CompEditor *
return editor->priv->manager;
}
@ -87,7 +87,7 @@ index 16bdb97..5818165 100644
GtkAction *
comp_editor_get_action (CompEditor *editor,
const gchar *action_name)
@@ -2670,9 +2686,15 @@ comp_editor_append_page (CompEditor *editor,
@@ -2721,9 +2737,15 @@ comp_editor_append_page (CompEditor *edi
priv->pages = g_list_append (priv->pages, page);
@ -104,10 +104,10 @@ index 16bdb97..5818165 100644
/* Listen for things happening on the page */
g_signal_connect_swapped (
page, "dates_changed",
diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c
index 5f7f14c..e7a681a 100644
--- a/calendar/gui/dialogs/event-editor.c
+++ b/calendar/gui/dialogs/event-editor.c
Index: evolution-2.25.90/calendar/gui/dialogs/event-editor.c
===================================================================
--- evolution-2.25.90.orig/calendar/gui/dialogs/event-editor.c
+++ evolution-2.25.90/calendar/gui/dialogs/event-editor.c
@@ -38,6 +38,7 @@
#include <e-util/e-util-private.h>
#include <evolution-shell-component-utils.h>
@ -125,7 +125,7 @@ index 5f7f14c..e7a681a 100644
" <menuitem action='view-status'/>"
" <menuitem action='view-role'/>"
" <menuitem action='view-rsvp'/>"
@@ -102,6 +103,17 @@ static gboolean event_editor_send_comp (CompEditor *editor, ECalComponentItipMet
@@ -103,6 +104,17 @@ static gboolean event_editor_send_comp (
G_DEFINE_TYPE (EventEditor, event_editor, TYPE_COMP_EDITOR)
@ -143,15 +143,7 @@ index 5f7f14c..e7a681a 100644
static void
create_schedule_page (CompEditor *editor)
{
@@ -290,6 +302,7 @@ event_editor_constructor (GType type,
gtk_action_group_set_visible (action_group, is_meeting);
priv->event_page = event_page_new (priv->model, editor);
+
g_object_ref_sink (priv->event_page);
comp_editor_append_page (
editor, COMP_EDITOR_PAGE (priv->event_page),
@@ -330,6 +343,11 @@ event_editor_constructor (GType type,
@@ -334,6 +346,11 @@ event_editor_constructor (GType type,
event_page_set_meeting (priv->event_page, TRUE);
priv->meeting_shown=TRUE;
}
@ -163,7 +155,7 @@ index 5f7f14c..e7a681a 100644
return object;
}
@@ -492,7 +510,6 @@ event_editor_init (EventEditor *ee)
@@ -496,7 +513,6 @@ event_editor_init (EventEditor *ee)
}
/* Hide send options. */
@ -171,10 +163,10 @@ index 5f7f14c..e7a681a 100644
gtk_action_set_visible (action, FALSE);
g_signal_connect (
diff --git a/calendar/gui/dialogs/event-editor.h b/calendar/gui/dialogs/event-editor.h
index c050b92..7e804d1 100644
--- a/calendar/gui/dialogs/event-editor.h
+++ b/calendar/gui/dialogs/event-editor.h
Index: evolution-2.25.90/calendar/gui/dialogs/event-editor.h
===================================================================
--- evolution-2.25.90.orig/calendar/gui/dialogs/event-editor.h
+++ evolution-2.25.90/calendar/gui/dialogs/event-editor.h
@@ -68,6 +68,7 @@ GType event_editor_get_type (void);
CompEditor * event_editor_new (ECal *client,
CompEditorFlags flags);
@ -183,11 +175,11 @@ index c050b92..7e804d1 100644
G_END_DECLS
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index 4a36f8c..ae33090 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -700,6 +700,26 @@ create_image_event_box (const char *image_text, const char *tip_text)
Index: evolution-2.25.90/calendar/gui/dialogs/event-page.c
===================================================================
--- evolution-2.25.90.orig/calendar/gui/dialogs/event-page.c
+++ evolution-2.25.90/calendar/gui/dialogs/event-page.c
@@ -701,6 +701,26 @@ create_image_event_box (const char *imag
return box;
}
@ -214,24 +206,24 @@ index 4a36f8c..ae33090 100644
static void
sensitize_widgets (EventPage *epage)
{
diff --git a/calendar/gui/dialogs/event-page.h b/calendar/gui/dialogs/event-page.h
index 7c868f1..6c47ae5 100644
--- a/calendar/gui/dialogs/event-page.h
+++ b/calendar/gui/dialogs/event-page.h
@@ -109,6 +109,8 @@ ENameSelector * event_page_get_name_selector (EventPage *epage);
void event_page_add_attendee (EventPage *epage,
Index: evolution-2.25.90/calendar/gui/dialogs/event-page.h
===================================================================
--- evolution-2.25.90.orig/calendar/gui/dialogs/event-page.h
+++ evolution-2.25.90/calendar/gui/dialogs/event-page.h
@@ -110,6 +110,8 @@ void event_page_add_attendee (EventPag
EMeetingAttendee *attendee);
void event_page_remove_all_attendees (EventPage *epage);
+GtkWidget * get_event_page_widget (EventPage *epage);
+
G_END_DECLS
#endif
diff --git a/calendar/gui/e-cal-event.c b/calendar/gui/e-cal-event.c
index 6e295ab..a30ce49 100644
--- a/calendar/gui/e-cal-event.c
+++ b/calendar/gui/e-cal-event.c
@@ -103,6 +103,16 @@ e_cal_event_target_new_component (ECalEvent *ece, struct _CalendarComponent *com
Index: evolution-2.25.90/calendar/gui/e-cal-event.c
===================================================================
--- evolution-2.25.90.orig/calendar/gui/e-cal-event.c
+++ evolution-2.25.90/calendar/gui/e-cal-event.c
@@ -103,6 +103,16 @@ e_cal_event_target_new_component (ECalEv
return t;
}
@ -248,7 +240,7 @@ index 6e295ab..a30ce49 100644
/* ********************************************************************** */
static void *eceh_parent_class;
@@ -112,11 +122,18 @@ static const EEventHookTargetMask eceh_component_masks[] = {
@@ -112,11 +122,18 @@ static const EEventHookTargetMask eceh_c
{ NULL },
};
@ -267,11 +259,11 @@ index 6e295ab..a30ce49 100644
static void
eceh_finalize (GObject *o)
{
diff --git a/calendar/gui/e-cal-event.h b/calendar/gui/e-cal-event.h
index 4fbaa39..f131cb9 100644
--- a/calendar/gui/e-cal-event.h
+++ b/calendar/gui/e-cal-event.h
@@ -38,6 +38,7 @@ typedef struct _ECalEventClass ECalEventClass;
Index: evolution-2.25.90/calendar/gui/e-cal-event.h
===================================================================
--- evolution-2.25.90.orig/calendar/gui/e-cal-event.h
+++ evolution-2.25.90/calendar/gui/e-cal-event.h
@@ -38,6 +38,7 @@ typedef struct _ECalEventClass ECalEvent
enum _e_cal_event_target_t {
E_CAL_EVENT_TARGET_COMPONENT,
@ -314,40 +306,10 @@ index 4fbaa39..f131cb9 100644
/* ********************************************************************** */
diff --git a/configure.in b/configure.in
index 13a5b2d..d147adf 100644
--- a/configure.in 2008-12-04 07:44:04.865124000 +0100
+++ b/configure.in 2008-12-04 07:49:16.324346000 +0100
new file mode 100644
index 0000000..f101059
@@ -918,3 +918,7 @@ if test "x${enable_mono}" = "xyes"; then
AC_SUBST(ICE_DESKTOP_LIBS)
MONO_BASED_PLUGINS="$MONO_BASED_PLUGINS sharepoint-account-setup"
+ SHAREPOINT_FEATURES=sharepoint-features
+ PKG_CHECK_MODULES(DBUS, dbus-glib-1)
+ AC_SUBST(DBUS_CFLAGS)
+ AC_SUBST(DBUS_LIBS)
fi
@@ -1752,7 +1756,7 @@ AC_ARG_ENABLE([plugins],
dnl Add any new plugins here
plugins_base_always="calendar-file calendar-http calendar-weather itip-formatter plugin-manager default-source addressbook-file startup-wizard mark-all-read groupwise-features groupwise-account-setup mail-account-disable publish-calendar caldav imap-features google-account-setup webdav-account-setup"
-plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $BF_JUNK_PLUGIN $EXCHANGE_PLUGIN $MONO_PLUGIN $MONO_BASED_PLUGINS"
+plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $BF_JUNK_PLUGIN $SHAREPOINT_FEATURES $EXCHANGE_PLUGIN $MONO_PLUGIN $MONO_BASED_PLUGINS"
all_plugins_base="$plugins_base_always sa-junk-plugin bogo-junk-plugin exchange-operations mono"
plugins_standard_always="bbdb subject-thread save-calendar select-one-source copy-tool mail-to-task mark-calendar-offline audio-inline mailing-list-actions default-mailer import-ics-attachments prefer-plain mail-notification attachment-reminder face backup-restore email-custom-header templates pst-import"
@@ -2098,6 +2102,7 @@ plugins/face/Makefile
plugins/external-editor/Makefile
plugins/webdav-account-setup/Makefile
plugins/sharepoint-account-setup/Makefile
+plugins/sharepoint-features/Makefile
smime/Makefile
smime/lib/Makefile
smime/gui/Makefile
diff --git a/plugins/sharepoint-features/Makefile.am b/plugins/sharepoint-features/Makefile.am
Index: evolution-2.25.90/plugins/sharepoint-features/Makefile.am
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-features/Makefile.am
+++ evolution-2.25.90/plugins/sharepoint-features/Makefile.am
@@ -0,0 +1,40 @@
+INCLUDES = \
+ -I$(top_srcdir) \
@ -389,11 +351,10 @@ diff --git a/plugins/sharepoint-features/Makefile.am b/plugins/sharepoint-featur
+BUILT_SOURCES = org-gnome-sharepoint-features.eplug
+
+CLEANFILES = $(BUILT_SOURCES)
diff --git a/plugins/sharepoint-features/meetingworkspaces.glade b/plugins/sharepoint-features/meetingworkspaces.glade
new file mode 100644
index 0000000..d2c1106
Index: evolution-2.25.90/plugins/sharepoint-features/meetingworkspaces.glade
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-features/meetingworkspaces.glade
+++ evolution-2.25.90/plugins/sharepoint-features/meetingworkspaces.glade
@@ -0,0 +1,324 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
@ -719,11 +680,10 @@ index 0000000..d2c1106
+</widget>
+
+</glade-interface>
diff --git a/plugins/sharepoint-features/org-gnome-sharepoint-features.eplug.xml b/plugins/sharepoint-features/org-gnome-sharepoint-features.eplug.xml
new file mode 100644
index 0000000..d59db73
Index: evolution-2.25.90/plugins/sharepoint-features/org-gnome-sharepoint-features.eplug.xml
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-features/org-gnome-sharepoint-features.eplug.xml
+++ evolution-2.25.90/plugins/sharepoint-features/org-gnome-sharepoint-features.eplug.xml
@@ -0,0 +1,20 @@
+<e-plugin-list>
+ <e-plugin
@ -745,11 +705,10 @@ index 0000000..d59db73
+ </hook>
+ </e-plugin>
+</e-plugin-list>
diff --git a/plugins/sharepoint-features/meeting-workspace.c b/plugins/sharepoint-features/meeting-workspace.c
new file mode 100644
index 0000000..791a87b
Index: evolution-2.25.90/plugins/sharepoint-features/meeting-workspace.c
===================================================================
--- /dev/null
+++ b/plugins/sharepoint-features/meeting-workspace.c
+++ evolution-2.25.90/plugins/sharepoint-features/meeting-workspace.c
@@ -0,0 +1,230 @@
+#ifdef HAVE_CONFIG_H
+#include <config.h>
@ -981,3 +940,35 @@ index 0000000..791a87b
+ g_error_free (error);
+ }
+}
Index: evolution-2.25.90/configure.in
===================================================================
--- evolution-2.25.90.orig/configure.in
+++ evolution-2.25.90/configure.in
@@ -917,6 +917,10 @@ MONO_CFLAGS=
MONO_LIBS=
AC_ARG_ENABLE([mono],
AC_HELP_STRING([--enable-mono],
+ SHAREPOINT_FEATURES=sharepoint-features
+ PKG_CHECK_MODULES(DBUS, dbus-glib-1)
+ AC_SUBST(DBUS_CFLAGS)
+ AC_SUBST(DBUS_LIBS)
[Add Mono embedded hooks.]),
[enable_mono=$enableval],[enable_mono=no])
if test "x${enable_mono}" = "xyes"; then
@@ -1793,7 +1797,7 @@ AC_ARG_ENABLE([plugins],
dnl Add any new plugins here
plugins_base_always="calendar-file calendar-http $CALENDAR_WEATHER itip-formatter plugin-manager default-source addressbook-file startup-wizard mark-all-read groupwise-features groupwise-account-setup mail-account-disable publish-calendar caldav imap-features google-account-setup webdav-account-setup"
-plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $BF_JUNK_PLUGIN $EXCHANGE_PLUGIN $MONO_PLUGIN $MONO_BASED_PLUGINS"
+plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $BF_JUNK_PLUGIN $SHAREPOINT_FEATURES $EXCHANGE_PLUGIN $MONO_PLUGIN $MONO_BASED_PLUGINS"
all_plugins_base="$plugins_base_always sa-junk-plugin bogo-junk-plugin exchange-operations mono"
plugins_standard_always="bbdb subject-thread save-calendar select-one-source copy-tool mail-to-task audio-inline mailing-list-actions default-mailer import-ics-attachments prefer-plain mail-notification attachment-reminder face backup-restore email-custom-header templates pst-import"
@@ -2139,6 +2143,7 @@ plugins/face/Makefile
plugins/external-editor/Makefile
plugins/webdav-account-setup/Makefile
plugins/sharepoint-account-setup/Makefile
+plugins/sharepoint-features/Makefile
smime/Makefile
smime/lib/Makefile
smime/gui/Makefile