This commit is contained in:
parent
8974917ca2
commit
a66f94d8c7
105
bgo-556224-search-events-offline.patch
Normal file
105
bgo-556224-search-events-offline.patch
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
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;
|
||||||
|
}
|
67
bnc-210959-evo-accept-ics.patch
Normal file
67
bnc-210959-evo-accept-ics.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
Index: plugins/itip-formatter/itip-formatter.c
|
||||||
|
===================================================================
|
||||||
|
--- plugins/itip-formatter/itip-formatter.c (revision 35641)
|
||||||
|
+++ plugins/itip-formatter/itip-formatter.c (working copy)
|
||||||
|
@@ -1620,6 +1620,26 @@ idle_open_cb (gpointer data)
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static gboolean
|
||||||
|
+is_gw_item (icalcomponent *icalcomp)
|
||||||
|
+{
|
||||||
|
+ icalproperty *prop;
|
||||||
|
+
|
||||||
|
+ prop = icalcomponent_get_first_property (icalcomp, ICAL_X_PROPERTY);
|
||||||
|
+ while (prop) {
|
||||||
|
+ const char *x_name, *x_val;
|
||||||
|
+
|
||||||
|
+ x_name = icalproperty_get_x_name (prop);
|
||||||
|
+ x_val = icalproperty_get_x (prop);
|
||||||
|
+ if (!strcmp (x_name, "X-GWRECORDID")) {
|
||||||
|
+ return TRUE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ prop = icalcomponent_get_next_property (icalcomp, ICAL_X_PROPERTY);
|
||||||
|
+ }
|
||||||
|
+ return FALSE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data)
|
||||||
|
{
|
||||||
|
@@ -1664,7 +1684,7 @@ view_response_cb (GtkWidget *widget, Iti
|
||||||
|
if (status) {
|
||||||
|
e_cal_component_rescan (pitip->comp);
|
||||||
|
flag = update_item (pitip, response);
|
||||||
|
- if (save_schedules && flag)
|
||||||
|
+ if (save_schedules && flag && is_gw_item (pitip->ical_comp))
|
||||||
|
delete_invitation_from_cache = TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
@@ -1674,7 +1694,7 @@ view_response_cb (GtkWidget *widget, Iti
|
||||||
|
if (status) {
|
||||||
|
e_cal_component_rescan (pitip->comp);
|
||||||
|
flag = update_item (pitip, response);
|
||||||
|
- if (save_schedules && flag)
|
||||||
|
+ if (save_schedules && flag && is_gw_item (pitip->ical_comp))
|
||||||
|
delete_invitation_from_cache = TRUE;
|
||||||
|
|
||||||
|
}
|
||||||
|
@@ -1693,7 +1713,7 @@ view_response_cb (GtkWidget *widget, Iti
|
||||||
|
if (status) {
|
||||||
|
e_cal_component_rescan (pitip->comp);
|
||||||
|
flag = update_item (pitip, response);
|
||||||
|
- if (save_schedules && flag)
|
||||||
|
+ if (save_schedules && flag && is_gw_item (pitip->ical_comp))
|
||||||
|
delete_invitation_from_cache = TRUE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
@@ -1753,7 +1773,7 @@ view_response_cb (GtkWidget *widget, Iti
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!save_schedules && pitip->delete_message) {
|
||||||
|
+ if (!delete_invitation_from_cache && pitip->delete_message) {
|
||||||
|
g_message ("Deleting!");
|
||||||
|
camel_folder_delete_message (pitip->folder, pitip->uid);
|
||||||
|
}
|
20
bnc-433448-backup-restore-fails.patch
Normal file
20
bnc-433448-backup-restore-fails.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Index: plugins/backup-restore/backup.c
|
||||||
|
===================================================================
|
||||||
|
--- plugins/backup-restore/backup.c (revision 36769)
|
||||||
|
+++ plugins/backup-restore/backup.c (working copy)
|
||||||
|
@@ -39,6 +39,7 @@
|
||||||
|
#include "e-util/e-util.h"
|
||||||
|
|
||||||
|
#define EVOLUTION "evolution"
|
||||||
|
+#define PKILL "/usr/bin/pkill"
|
||||||
|
#define EVOLUTION_DIR "$HOME/.evolution/"
|
||||||
|
#define EVOLUTION_DIR_BACKUP "$HOME/.evolution-old/"
|
||||||
|
#define GCONF_DUMP_FILE "backup-restore-gconf.xml"
|
||||||
|
@@ -272,6 +273,7 @@
|
||||||
|
|
||||||
|
CANCEL (complete);
|
||||||
|
txt = _("Loading Evolution settings");
|
||||||
|
+ s (PKILL " gconf");
|
||||||
|
s ("gconftool-2 --load " GCONF_DUMP_PATH);
|
||||||
|
|
||||||
|
CANCEL (complete);
|
51
bnc-434320-mail-notify-fix.patch
Normal file
51
bnc-434320-mail-notify-fix.patch
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
--- 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)
|
441
bnc-440624-six-appts-timeslot.patch
Normal file
441
bnc-440624-six-appts-timeslot.patch
Normal file
@ -0,0 +1,441 @@
|
|||||||
|
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 )
|
11
bnc-440646-set-color-proxy.patch
Normal file
11
bnc-440646-set-color-proxy.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- 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 */
|
||||||
|
|
152
bnc-440649-display-meeting-bold.patch
Normal file
152
bnc-440649-display-meeting-bold.patch
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
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),
|
28
bnc-443190-warning-before-editing-appt.patch
Normal file
28
bnc-443190-warning-before-editing-appt.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
--- 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);
|
||||||
|
|
141
bnc-443851-calendar-tooltip-info.patch
Normal file
141
bnc-443851-calendar-tooltip-info.patch
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
--- 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,
|
28
bnc-446286-message-tracking-status.patch
Normal file
28
bnc-446286-message-tracking-status.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
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);
|
13
bnc-446356-a11y-crash.diff
Normal file
13
bnc-446356-a11y-crash.diff
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
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
|
14
bnc-446390-corrupted-vfolders.patch
Normal file
14
bnc-446390-corrupted-vfolders.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
--- 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);
|
@ -1,3 +1,35 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 20 10:40:30 CET 2008 - abharath@suse.de
|
||||||
|
|
||||||
|
- Patches added
|
||||||
|
+ bgo#556224 - bgo-556224-search-events-offline.patch - Search
|
||||||
|
folder "Include threads" setting is unreliable.
|
||||||
|
+ bnc#433448 - bnc-433448-backup-restore-fails.patch - Taking
|
||||||
|
backup from Evolution does not work.
|
||||||
|
+ bnc#434320 - bnc-434320-mail-notify-fix.patch - New Mail
|
||||||
|
Notification Icon should be Removed on Bar after
|
||||||
|
closing Notification Window.
|
||||||
|
+ bnc#440624 - bnc-440624-six-appts-timeslot.patch - Only 6
|
||||||
|
appointments are displayed in same time slot.
|
||||||
|
+ bnc#440646 - bnc-440646-set-color-proxy.patch - Calendar colors
|
||||||
|
not displayed correctly when proxied to account.
|
||||||
|
+ bnc#440649 - bnc-440649-display-meeting-bold.patch - Unaccepted
|
||||||
|
meetings should display in bold.
|
||||||
|
+ bnc#443190 - bnc-443190-warning-before-editing-appt.patch -
|
||||||
|
Evolution warns about editing appointment before
|
||||||
|
appointment is displayed.
|
||||||
|
+ bnc#443851 - bnc-443851-calendar-tooltip-info.patch - enhancement
|
||||||
|
fix for calendar tooltip info.
|
||||||
|
+ bnc#446356 - bnc-446356-a11y-crash.diff - Evolution crash on
|
||||||
|
opening the calendars.
|
||||||
|
+ bnc#446390 - bnc-446390-corrupted-vfolders.patch - corrupted
|
||||||
|
vfolders; SIGSEGV in camel_folder_get_message().
|
||||||
|
+ bnc#446286 - bnc-446286-message-tracking-status.patch - Track
|
||||||
|
Message Status not working.
|
||||||
|
+ bnc#210959 - bnc-210959-evo-accept-ics.patch - Receving meeting
|
||||||
|
request from the Personal source should work in
|
||||||
|
groupwise connector.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Nov 6 07:33:08 CET 2008 - abharath@suse.de
|
Thu Nov 6 07:33:08 CET 2008 - abharath@suse.de
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ Group: Productivity/Networking/Email/Clients
|
|||||||
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
|
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
|
||||||
%define evolution_base_version 2.24
|
%define evolution_base_version 2.24
|
||||||
Version: 2.24.1.1
|
Version: 2.24.1.1
|
||||||
Release: 1
|
Release: 2
|
||||||
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
|
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
|
||||||
Source0: %{name}-%{version}.tar.bz2
|
Source0: %{name}-%{version}.tar.bz2
|
||||||
Source1: summerdance-about2.png
|
Source1: summerdance-about2.png
|
||||||
@ -82,7 +82,7 @@ Patch16: evolution-shared-nss-db.patch
|
|||||||
Patch17: bgo-558354-alarm-notify-improved.patch
|
Patch17: bgo-558354-alarm-notify-improved.patch
|
||||||
# PATCH-FIX-UPSTREAM bnc-435668-hide-accept.patch bnc#435668 -- Meetings In SentItems Should Hide Accept/Decline.
|
# PATCH-FIX-UPSTREAM bnc-435668-hide-accept.patch bnc#435668 -- Meetings In SentItems Should Hide Accept/Decline.
|
||||||
Patch18: bnc-435668-hide-accept.patch
|
Patch18: bnc-435668-hide-accept.patch
|
||||||
# PATCH-FIX-UPSTREAM bnc-435722-book-uri-long.patch bnc#435722 -- Book URI: Spills Into Second Column.
|
# 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
|
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
|
# 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
|
Patch20: bnc-441763-diff-meeting-icon.patch
|
||||||
@ -92,6 +92,30 @@ Patch21: bnc-441770-non-intrusive-calendar.patch
|
|||||||
Patch22: bnc-442135-exchange-settings-offline.patch
|
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.
|
# PATCH-FIX-UPSTREAM sharepoint-account-setup.patch pchenthill@suse.de -- This patch allows you to connect to sharepoint servers.
|
||||||
Patch23: sharepoint-account-setup.patch
|
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 has been submitted upstream.
|
||||||
|
Patch28: bnc-440646-set-color-proxy.patch
|
||||||
|
# PATCH-FIX-UPSTREAM bnc-440649-display-meeting-bold.patch bnc440649 bgo490503 -- Fix has been submitted upstream.
|
||||||
|
Patch29: bnc-440649-display-meeting-bold.patch
|
||||||
|
# PATCH-FIX-UPSTREAM bnc-443190-warning-before-editing-appt.patch bnc443190 msuman@suse.de -- Fix has been submitted upstream.
|
||||||
|
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 has been submitted upstream.
|
||||||
|
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 evo-core-mapi-changes.diff msuman@suse.de -- This patch contains changes in the core code base for the MAPI provider.
|
# PATCH-FIX-UPSTREAM evo-core-mapi-changes.diff msuman@suse.de -- This patch contains changes in the core code base for the MAPI provider.
|
||||||
Patch100: evo-core-mapi-changes.diff
|
Patch100: evo-core-mapi-changes.diff
|
||||||
Url: http://gnome.org/projects/evolution/
|
Url: http://gnome.org/projects/evolution/
|
||||||
@ -337,6 +361,18 @@ Authors:
|
|||||||
%patch21
|
%patch21
|
||||||
%patch22
|
%patch22
|
||||||
%patch23 -p1
|
%patch23 -p1
|
||||||
|
%patch24
|
||||||
|
%patch25
|
||||||
|
%patch26
|
||||||
|
%patch27
|
||||||
|
%patch28
|
||||||
|
%patch29
|
||||||
|
%patch30
|
||||||
|
%patch31
|
||||||
|
%patch32
|
||||||
|
%patch33
|
||||||
|
%patch34
|
||||||
|
%patch35
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -394,7 +430,7 @@ done
|
|||||||
%fdupes $RPM_BUILD_ROOT
|
%fdupes $RPM_BUILD_ROOT
|
||||||
%if %suse_version > 1100
|
%if %suse_version > 1100
|
||||||
%{__mv} $RPM_BUILD_ROOT/%{_bindir}/evolution $RPM_BUILD_ROOT/%{_bindir}/evolution.bin
|
%{__mv} $RPM_BUILD_ROOT/%{_bindir}/evolution $RPM_BUILD_ROOT/%{_bindir}/evolution.bin
|
||||||
echo -e "#!/bin/sh\n\nLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir}/mono:%{_libdir}/dice exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@\n\nexit \$?" > $RPM_BUILD_ROOT/%{_bindir}/evolution
|
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 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
|
||||||
%{__chmod} +x $RPM_BUILD_ROOT/%{_bindir}/evolution
|
%{__chmod} +x $RPM_BUILD_ROOT/%{_bindir}/evolution
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -451,6 +487,35 @@ fi
|
|||||||
%{_libdir}/evolution/*/conduits
|
%{_libdir}/evolution/*/conduits
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Nov 20 2008 abharath@suse.de
|
||||||
|
- Patches added
|
||||||
|
+ bgo#556224 - bgo-556224-search-events-offline.patch - Search
|
||||||
|
folder "Include threads" setting is unreliable.
|
||||||
|
+ bnc#433448 - bnc-433448-backup-restore-fails.patch - Taking
|
||||||
|
backup from Evolution does not work.
|
||||||
|
+ bnc#434320 - bnc-434320-mail-notify-fix.patch - New Mail
|
||||||
|
Notification Icon should be Removed on Bar after
|
||||||
|
closing Notification Window.
|
||||||
|
+ bnc#440624 - bnc-440624-six-appts-timeslot.patch - Only 6
|
||||||
|
appointments are displayed in same time slot.
|
||||||
|
+ bnc#440646 - bnc-440646-set-color-proxy.patch - Calendar colors
|
||||||
|
not displayed correctly when proxied to account.
|
||||||
|
+ bnc#440649 - bnc-440649-display-meeting-bold.patch - Unaccepted
|
||||||
|
meetings should display in bold.
|
||||||
|
+ bnc#443190 - bnc-443190-warning-before-editing-appt.patch -
|
||||||
|
Evolution warns about editing appointment before
|
||||||
|
appointment is displayed.
|
||||||
|
+ bnc#443851 - bnc-443851-calendar-tooltip-info.patch - enhancement
|
||||||
|
fix for calendar tooltip info.
|
||||||
|
+ bnc#446356 - bnc-446356-a11y-crash.diff - Evolution crash on
|
||||||
|
opening the calendars.
|
||||||
|
+ bnc#446390 - bnc-446390-corrupted-vfolders.patch - corrupted
|
||||||
|
vfolders; SIGSEGV in camel_folder_get_message().
|
||||||
|
+ bnc#446286 - bnc-446286-message-tracking-status.patch - Track
|
||||||
|
Message Status not working.
|
||||||
|
+ bnc#210959 - bnc-210959-evo-accept-ics.patch - Receving meeting
|
||||||
|
request from the Personal source should work in
|
||||||
|
groupwise connector.
|
||||||
* Thu Nov 06 2008 abharath@suse.de
|
* Thu Nov 06 2008 abharath@suse.de
|
||||||
- Update to version 2.24.1.1
|
- Update to version 2.24.1.1
|
||||||
Releasing Evolution under 'GNU LGPL V2 or (at your option) V3'.
|
Releasing Evolution under 'GNU LGPL V2 or (at your option) V3'.
|
||||||
|
Loading…
Reference in New Issue
Block a user