forked from pool/evolution
This commit is contained in:
parent
7c8e6927c4
commit
2948785e88
237
bgo-559153-evo-migration.patch
Normal file
237
bgo-559153-evo-migration.patch
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
--- mail/em-migrate.c 2008/12/22 06:23:09 36924
|
||||||
|
+++ mail/em-migrate.c 2008/12/22 06:41:05 36925
|
||||||
|
@@ -2842,20 +2842,54 @@
|
||||||
|
g_object_unref (client);
|
||||||
|
}
|
||||||
|
|
||||||
|
-
|
||||||
|
+static gboolean
|
||||||
|
+update_progress_in_main_thread (double *progress)
|
||||||
|
+{
|
||||||
|
+ em_migrate_set_progress (*progress);
|
||||||
|
+ return FALSE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
-migrate_folders(CamelStore *store, CamelFolderInfo *fi, const char *acc, CamelException *ex)
|
||||||
|
+migrate_folders(CamelStore *store, gboolean is_local, CamelFolderInfo *fi, const char *acc, CamelException *ex, gboolean *done, int *nth_folder, int total_folders)
|
||||||
|
{
|
||||||
|
CamelFolder *folder;
|
||||||
|
|
||||||
|
while (fi) {
|
||||||
|
+ double progress;
|
||||||
|
+
|
||||||
|
+ *nth_folder = *nth_folder + 1;
|
||||||
|
+
|
||||||
|
char *tmp = g_strdup_printf ("%s/%s", acc, fi->full_name);
|
||||||
|
em_migrate_set_folder_name (tmp);
|
||||||
|
g_free (tmp);
|
||||||
|
- folder = camel_store_get_folder (store, fi->full_name, 0, ex);
|
||||||
|
+
|
||||||
|
+ progress = (double) (*nth_folder) / total_folders;
|
||||||
|
+ g_idle_add ((GSourceFunc) update_progress_in_main_thread, &progress);
|
||||||
|
+
|
||||||
|
+ if (is_local)
|
||||||
|
+ folder = camel_store_get_folder (store, fi->full_name, CAMEL_STORE_IS_MIGRATING, ex);
|
||||||
|
+ else
|
||||||
|
+ folder = camel_store_get_folder (store, fi->full_name, 0, ex);
|
||||||
|
+
|
||||||
|
if (folder != NULL)
|
||||||
|
camel_folder_summary_migrate_infos (folder->summary);
|
||||||
|
- migrate_folders(store, fi->child, acc, ex);
|
||||||
|
+
|
||||||
|
+ migrate_folders(store, is_local, fi->child, acc, ex, done, nth_folder, total_folders);
|
||||||
|
+
|
||||||
|
+ fi = fi->next;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if ( (*nth_folder) == (total_folders - 1))
|
||||||
|
+ *done = TRUE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/* This could be in CamelStore.ch */
|
||||||
|
+static void
|
||||||
|
+count_folders (CamelFolderInfo *fi, int *count)
|
||||||
|
+{
|
||||||
|
+ while (fi) {
|
||||||
|
+ *count = *count + 1;
|
||||||
|
+ count_folders (fi->child , count);
|
||||||
|
fi = fi->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -2878,75 +2912,111 @@
|
||||||
|
return store;
|
||||||
|
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+struct migrate_folders_to_db_structure {
|
||||||
|
+ char *account_name;
|
||||||
|
+ CamelException ex;
|
||||||
|
+ CamelStore *store;
|
||||||
|
+ CamelFolderInfo *info;
|
||||||
|
+ gboolean done;
|
||||||
|
+ gboolean is_local_store;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static void migrate_folders_to_db_thread (struct migrate_folders_to_db_structure *migrate_dbs)
|
||||||
|
+{
|
||||||
|
+ int num_of_folders = 0, nth_folder = 0;
|
||||||
|
+ count_folders (migrate_dbs->info, &num_of_folders);
|
||||||
|
+ migrate_folders (migrate_dbs->store, migrate_dbs->is_local_store, migrate_dbs->info,
|
||||||
|
+ migrate_dbs->account_name, &(migrate_dbs->ex), &(migrate_dbs->done),
|
||||||
|
+ &nth_folder, num_of_folders);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
migrate_to_db()
|
||||||
|
{
|
||||||
|
- EAccountList *accounts;
|
||||||
|
- EIterator *iter;
|
||||||
|
- int i=0, len;
|
||||||
|
- MailComponent *component = mail_component_peek ();
|
||||||
|
- CamelStore *store = NULL;
|
||||||
|
- CamelFolderInfo *info;
|
||||||
|
-
|
||||||
|
- if (!(accounts = mail_config_get_accounts ()))
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
- iter = e_list_get_iterator ((EList *) accounts);
|
||||||
|
- len = e_list_length ((EList *) accounts);
|
||||||
|
-
|
||||||
|
- camel_session_set_online ((CamelSession *) session, FALSE);
|
||||||
|
- em_migrate_setup_progress_dialog (_("The summary format of the Evolution mailbox "
|
||||||
|
- "folders has been moved to sqlite since Evolution 2.24.\n\nPlease be "
|
||||||
|
- "patient while Evolution migrates your folders..."));
|
||||||
|
-
|
||||||
|
- em_migrate_set_progress ( (double)i/(len+1));
|
||||||
|
- store = setup_local_store (component);
|
||||||
|
- info = camel_store_get_folder_info (store, NULL, CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST|CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, NULL);
|
||||||
|
- if (info) {
|
||||||
|
- migrate_folders(store, info, _("On This Computer"), NULL);
|
||||||
|
- }
|
||||||
|
- i++;
|
||||||
|
- em_migrate_set_progress ( (double)i/(len+1));
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- while (e_iterator_is_valid (iter)) {
|
||||||
|
- EAccount *account = (EAccount *) e_iterator_get (iter);
|
||||||
|
- EAccountService *service;
|
||||||
|
- const char *name;
|
||||||
|
-
|
||||||
|
-
|
||||||
|
- service = account->source;
|
||||||
|
- name = account->name;
|
||||||
|
- em_migrate_set_progress ( (double)i/(len+1));
|
||||||
|
- if (account->enabled
|
||||||
|
- && service->url != NULL
|
||||||
|
- && service->url[0]
|
||||||
|
- && strncmp(service->url, "mbox:", 5) != 0) {
|
||||||
|
-
|
||||||
|
- CamelException ex;
|
||||||
|
-
|
||||||
|
- camel_exception_init (&ex);
|
||||||
|
- mail_component_load_store_by_uri (component, service->url, name);
|
||||||
|
-
|
||||||
|
- store = (CamelStore *) camel_session_get_service (session, service->url, CAMEL_PROVIDER_STORE, &ex);
|
||||||
|
- info = camel_store_get_folder_info (store, NULL, CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST|CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, &ex);
|
||||||
|
- if (info) {
|
||||||
|
- migrate_folders(store, info, account->name, &ex);
|
||||||
|
-
|
||||||
|
- } else
|
||||||
|
- printf("%s:%s: failed to get folder infos \n", G_STRLOC, G_STRFUNC);
|
||||||
|
- camel_exception_clear(&ex);
|
||||||
|
-
|
||||||
|
+ EAccountList *accounts;
|
||||||
|
+ EIterator *iter;
|
||||||
|
+ int i=0, len;
|
||||||
|
+ MailComponent *component = mail_component_peek ();
|
||||||
|
+ CamelStore *store = NULL;
|
||||||
|
+ CamelFolderInfo *info;
|
||||||
|
+
|
||||||
|
+ if (!(accounts = mail_config_get_accounts ()))
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ iter = e_list_get_iterator ((EList *) accounts);
|
||||||
|
+ len = e_list_length ((EList *) accounts);
|
||||||
|
+
|
||||||
|
+ camel_session_set_online ((CamelSession *) session, FALSE);
|
||||||
|
+
|
||||||
|
+ em_migrate_setup_progress_dialog (_("The summary format of the Evolution mailbox "
|
||||||
|
+ "folders has been moved to SQLite since Evolution 2.24.\n\nPlease be "
|
||||||
|
+ "patient while Evolution migrates your folders..."));
|
||||||
|
+
|
||||||
|
+ store = setup_local_store (component);
|
||||||
|
+ info = camel_store_get_folder_info (store, NULL, CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST|CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, NULL);
|
||||||
|
+
|
||||||
|
+ if (info) {
|
||||||
|
+ struct migrate_folders_to_db_structure migrate_dbs;
|
||||||
|
+
|
||||||
|
+ if (g_str_has_suffix (((CamelService *)store)->url->path, ".evolution/mail/local"))
|
||||||
|
+ migrate_dbs.is_local_store = TRUE;
|
||||||
|
+ else
|
||||||
|
+ migrate_dbs.is_local_store = FALSE;
|
||||||
|
+ camel_exception_init (&migrate_dbs.ex);
|
||||||
|
+ migrate_dbs.account_name = _("On This Computer");
|
||||||
|
+ migrate_dbs.info = info;
|
||||||
|
+ migrate_dbs.store = store;
|
||||||
|
+ migrate_dbs.done = FALSE;
|
||||||
|
+
|
||||||
|
+ GThread *thread;
|
||||||
|
+ thread = g_thread_create ((GThreadFunc) migrate_folders_to_db_thread, &migrate_dbs, TRUE, NULL);
|
||||||
|
+ while (!migrate_dbs.done)
|
||||||
|
+ g_main_context_iteration (NULL, TRUE);
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
- e_iterator_next (iter);
|
||||||
|
-
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- //camel_session_set_online ((CamelSession *) session, TRUE);
|
||||||
|
-
|
||||||
|
- g_object_unref (iter);
|
||||||
|
- em_migrate_close_progress_dialog ();
|
||||||
|
+ while (e_iterator_is_valid (iter)) {
|
||||||
|
+ EAccount *account = (EAccount *) e_iterator_get (iter);
|
||||||
|
+ EAccountService *service;
|
||||||
|
+ const char *name;
|
||||||
|
+
|
||||||
|
+ service = account->source;
|
||||||
|
+ name = account->name;
|
||||||
|
+ if (account->enabled
|
||||||
|
+ && service->url != NULL
|
||||||
|
+ && service->url[0]
|
||||||
|
+ && strncmp(service->url, "mbox:", 5) != 0) {
|
||||||
|
+
|
||||||
|
+ CamelException ex;
|
||||||
|
+
|
||||||
|
+ camel_exception_init (&ex);
|
||||||
|
+ mail_component_load_store_by_uri (component, service->url, name);
|
||||||
|
+
|
||||||
|
+ store = (CamelStore *) camel_session_get_service (session, service->url, CAMEL_PROVIDER_STORE, &ex);
|
||||||
|
+ info = camel_store_get_folder_info (store, NULL, CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST|CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, &ex);
|
||||||
|
+ if (info) {
|
||||||
|
+ struct migrate_folders_to_db_structure migrate_dbs;
|
||||||
|
+
|
||||||
|
+ migrate_dbs.ex = ex;
|
||||||
|
+ migrate_dbs.account_name = account->name;
|
||||||
|
+ migrate_dbs.info = info;
|
||||||
|
+ migrate_dbs.store = store;
|
||||||
|
+ migrate_dbs.done = FALSE;
|
||||||
|
+
|
||||||
|
+ GThread *thread;
|
||||||
|
+ thread = g_thread_create ((GThreadFunc) migrate_folders_to_db_thread, &migrate_dbs, TRUE, NULL);
|
||||||
|
+ while (!migrate_dbs.done)
|
||||||
|
+ g_main_context_iteration (NULL, TRUE);
|
||||||
|
+ } else
|
||||||
|
+ printf("%s:%s: failed to get folder infos \n", G_STRLOC, G_STRFUNC);
|
||||||
|
+ camel_exception_clear(&ex);
|
||||||
|
+ }
|
||||||
|
+ i++;
|
||||||
|
+ e_iterator_next (iter);
|
||||||
|
+ }
|
||||||
|
+ //camel_session_set_online ((CamelSession *) session, TRUE);
|
||||||
|
+ g_object_unref (iter);
|
||||||
|
+ em_migrate_close_progress_dialog ();
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
57
bgo-559604-calendar-tooltip-updated.patch
Normal file
57
bgo-559604-calendar-tooltip-updated.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
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,
|
58
bgo-559604-tooltip-for-gw.patch
Normal file
58
bgo-559604-tooltip-for-gw.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
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);
|
60
bgo-564248-evo-copy-paste-images.patch
Normal file
60
bgo-564248-evo-copy-paste-images.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
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
|
496
bnc-435455-attendees-meeting-resize.patch
Normal file
496
bnc-435455-attendees-meeting-resize.patch
Normal file
@ -0,0 +1,496 @@
|
|||||||
|
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);
|
||||||
|
}
|
15
bnc-435694-retract-feature-broken.patch
Normal file
15
bnc-435694-retract-feature-broken.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
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++;
|
26
bnc-439987-classify-sensitivity.patch
Normal file
26
bnc-439987-classify-sensitivity.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
--- 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"));
|
65
bnc-439998-delete-delegated-events.patch
Normal file
65
bnc-439998-delete-delegated-events.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
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
|
33
bnc-440634-forwarded-hide-accept-decline.patch
Normal file
33
bnc-440634-forwarded-hide-accept-decline.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
Index: plugins/itip-formatter/itip-formatter.c
|
||||||
|
===================================================================
|
||||||
|
--- plugins/itip-formatter/itip-formatter.c (revision 36884)
|
||||||
|
+++ plugins/itip-formatter/itip-formatter.c (working copy)
|
||||||
|
@@ -1955,6 +1955,12 @@
|
||||||
|
!em_utils_folder_is_outbox (folder, uri) &&
|
||||||
|
!em_utils_folder_is_drafts (folder, uri);
|
||||||
|
|
||||||
|
+ /*FIXME: GW needs to set the drafts_folder_uri and sent_folder_uri properly.
|
||||||
|
+ A workaround till then */
|
||||||
|
+ if (res && (!g_ascii_strcasecmp (folder->name, _("Sent")) ||
|
||||||
|
+ !g_ascii_strcasecmp (folder->name, _("Sent Items"))))
|
||||||
|
+ res = 0;
|
||||||
|
+
|
||||||
|
g_free (uri);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
@@ -2000,6 +2006,15 @@
|
||||||
|
|
||||||
|
response_enabled = in_proper_folder (((EMFormat*)efh)->folder);
|
||||||
|
|
||||||
|
+ /* Do not display Accept/Decline Buttons if its a forwarded meeting request */
|
||||||
|
+ if (response_enabled) {
|
||||||
|
+ CamelMimeMessage *msg = info->msg;
|
||||||
|
+ const char *subject = camel_mime_message_get_subject (msg);
|
||||||
|
+
|
||||||
|
+ if (!g_ascii_strncasecmp (subject, _("[Fwd: "), 6))
|
||||||
|
+ response_enabled = 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if (!response_enabled) {
|
||||||
|
itip_view_set_mode (ITIP_VIEW (info->view), ITIP_VIEW_MODE_HIDE_ALL);
|
||||||
|
} else {
|
86
bnc-443544-evo-free-busy.patch
Normal file
86
bnc-443544-evo-free-busy.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
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]);
|
35
bnc-445996-address-conflict.patch
Normal file
35
bnc-445996-address-conflict.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
Index: e-util/e-gui-utils.c
|
||||||
|
===================================================================
|
||||||
|
--- e-util/e-gui-utils.c (revision 36925)
|
||||||
|
+++ e-util/e-gui-utils.c (working copy)
|
||||||
|
@@ -64,3 +64,30 @@
|
||||||
|
|
||||||
|
return pixbuf;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+GtkWidget *e_create_image_widget(gchar *name,
|
||||||
|
+ gchar *string1, gchar *string2,
|
||||||
|
+ gint int1, gint int2)
|
||||||
|
+{
|
||||||
|
+ GtkWidget *alignment = NULL;
|
||||||
|
+ GtkWidget *w;
|
||||||
|
+
|
||||||
|
+ if (string1) {
|
||||||
|
+ w = gtk_image_new_from_icon_name (
|
||||||
|
+ string1, GTK_ICON_SIZE_DIALOG);
|
||||||
|
+
|
||||||
|
+ gtk_misc_set_alignment (GTK_MISC (w), 0.5, 0.5);
|
||||||
|
+
|
||||||
|
+ alignment = gtk_widget_new(gtk_alignment_get_type(),
|
||||||
|
+ "child", w,
|
||||||
|
+ "xalign", (double) 0,
|
||||||
|
+ "yalign", (double) 0,
|
||||||
|
+ "xscale", (double) 0,
|
||||||
|
+ "yscale", (double) 0,
|
||||||
|
+ NULL);
|
||||||
|
+
|
||||||
|
+ gtk_widget_show_all (alignment);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return alignment;
|
||||||
|
+}
|
97
bnc-446285-traverse-all-entries.patch
Normal file
97
bnc-446285-traverse-all-entries.patch
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
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;
|
227
bnc-446287-missing-vcf-reader.patch
Normal file
227
bnc-446287-missing-vcf-reader.patch
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
--- 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);
|
11
bnc-449952-hotkey-evo-preferences.patch
Normal file
11
bnc-449952-hotkey-evo-preferences.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- 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)
|
10
bnc-456481-evolution-eats-memory.patch
Normal file
10
bnc-456481-evolution-eats-memory.patch
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
--- 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
66
bnc-458153-busy-button.patch
Normal file
66
bnc-458153-busy-button.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
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"),
|
20
bnc-458968-warning-on-delegating.patch
Normal file
20
bnc-458968-warning-on-delegating.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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) {
|
48
bnc-462349-shared-memo-editor.patch
Normal file
48
bnc-462349-shared-memo-editor.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
13
bnc-462372-open-attachment-event.patch
Normal file
13
bnc-462372-open-attachment-event.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
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);
|
97
bnc-463599-header-print-issues.patch
Normal file
97
bnc-463599-header-print-issues.patch
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
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'. */
|
@ -1,12 +1,11 @@
|
|||||||
=== modified file 'data/evolution.desktop.in.in'
|
--- data/evolution.desktop.in.in 2008-10-13 14:03:02.000000000 +0530
|
||||||
--- data/evolution.desktop.in.in 2007-12-18 20:23:31 +0000
|
+++ data/evolution.desktop.in.in 2009-01-05 10:41:39.000000000 +0530
|
||||||
+++ data/evolution.desktop.in.in 2007-12-18 20:28:10 +0000
|
|
||||||
@@ -1,14 +1,15 @@
|
@@ -1,14 +1,15 @@
|
||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Encoding=UTF-8
|
Encoding=UTF-8
|
||||||
_Name=Evolution Mail and Calendar
|
-_Name=Evolution Mail and Calendar
|
||||||
-_GenericName=Groupware Suite
|
+_Name=Evolution
|
||||||
+_GenericName=The Evolution Groupware Suite
|
_GenericName=Groupware Suite
|
||||||
_Comment=Manage your email, contacts and schedule
|
_Comment=Manage your email, contacts and schedule
|
||||||
Exec=evolution
|
Exec=evolution
|
||||||
Icon=evolution
|
Icon=evolution
|
||||||
@ -18,5 +17,4 @@
|
|||||||
+DocPath=evolution-@BASE_VERSION@
|
+DocPath=evolution-@BASE_VERSION@
|
||||||
X-GNOME-Bugzilla-Bugzilla=GNOME
|
X-GNOME-Bugzilla-Bugzilla=GNOME
|
||||||
X-GNOME-Bugzilla-Product=Evolution
|
X-GNOME-Bugzilla-Product=Evolution
|
||||||
X-GNOME-Bugzilla-Component=Miscellaneous
|
X-GNOME-Bugzilla-Component=BugBuddyBugs
|
||||||
|
|
||||||
|
@ -1,3 +1,61 @@
|
|||||||
|
------------------------------------------------------------------
|
||||||
|
Wed Jan 7 11:27:13 CET 2009 - abharath@suse.de
|
||||||
|
|
||||||
|
- Patches added
|
||||||
|
+ bgo#559153 - bgo-559153-evo-migration.patch - Migration fixes
|
||||||
|
in Evolution.
|
||||||
|
+ bgo#559604 - bgo-559604-calendar-tooltip-updated.patch -
|
||||||
|
Additional Information On Calendar Tooltip.
|
||||||
|
+ bgo#564248 - bgo-564248-evo-copy-paste-images.patch - Support
|
||||||
|
Copy And Paste Of Images.
|
||||||
|
+ bnc#435694 - bnc-435694-retract-feature-broken.patch - Retract
|
||||||
|
of Email from Sent Items Does not Work
|
||||||
|
+ bnc#446285 - bnc-446285-traverse-all-entries.patch - Meeting
|
||||||
|
Entry Does Not Allow Multiple Names.
|
||||||
|
+ bnc#446287 - bnc-446287-missing-vcf-reader.patch - Missing
|
||||||
|
VCF Plugin In Email Reader.
|
||||||
|
+ bnc#449952 - bnc-449952-hotkey-evo-preferences.patch -
|
||||||
|
Misplaced Hotkey on Evolution Preference Dlg.
|
||||||
|
+ bnc#443544 - bnc-443544-evo-free-busy.patch - Evolution busy
|
||||||
|
search on GW resource object does not display
|
||||||
|
unavailable times.
|
||||||
|
+ bnc#435455 - bnc-435455-attendees-meeting-resize.patch -
|
||||||
|
Attendees UI Allows Meeting Resize.
|
||||||
|
+ bnc#439998 - bnc-439998-delete-delegated-events.patch -
|
||||||
|
Delegating a Meeting Should Prompt to See if a
|
||||||
|
Copy of the Meeting Should Be Kept.
|
||||||
|
+ bnc#440634 - bnc-440634-forwarded-hide-accept-decline.patch -
|
||||||
|
Hide Accept/Decline when forwarding GW appt.
|
||||||
|
+ bnc#445996 - bnc-445996-address-conflict.patch - address
|
||||||
|
conflict: [custom widget creation failed].
|
||||||
|
+ bnc#458153 - bnc-458153-busy-button.patch - All Day
|
||||||
|
Appointment/Event Needs To Default To Busy.
|
||||||
|
+ bnc#462349 - bnc-462349-shared-memo-editor.patch - Shared
|
||||||
|
Memos opens a normal Memo window.
|
||||||
|
+ bnc#463599 - bnc-463599-header-print-issues.patch - Daily
|
||||||
|
Printouts Display Hour In Wrong Spot.
|
||||||
|
+ bnc#439987 - bnc-439987-classify-sensitivity.patch - Save Option
|
||||||
|
Unavailable if Classification is Modified.
|
||||||
|
+ bnc#456481 - bnc-456481-evolution-eats-memory.patch - evolution
|
||||||
|
eats up memory.
|
||||||
|
+ bnc#462372 - bnc-462372-open-attachment-event.patch - Right click
|
||||||
|
on an attachment in calendar event and chose
|
||||||
|
application - does not work.
|
||||||
|
+ bnc#458968 - bnc-458968-warning-on-delegating.patch - Meeting
|
||||||
|
delegation warns about meeting changes.
|
||||||
|
+ bgo#559604 - bgo-559604-tooltip-for-gw.patch - Calendar Tooltip
|
||||||
|
updated for GW accounts.
|
||||||
|
|
||||||
|
- Patches updated
|
||||||
|
+ bgo#556224 - bgo-556224-search-events-offline.patch - Upstream
|
||||||
|
had updates.
|
||||||
|
+ bnc#430639 - evolution-desktop.patch - Change the name in the
|
||||||
|
desktop file.
|
||||||
|
|
||||||
|
- Changes to the spec
|
||||||
|
+ bnc#463587 - [PATCH] evolution --force-shutdown Tries To Kill All
|
||||||
|
Users.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Dec 4 12:13:42 CET 2008 - abharath@suse.de
|
Thu Dec 4 12:13:42 CET 2008 - abharath@suse.de
|
||||||
|
|
||||||
|
131
evolution.spec
131
evolution.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package evolution (Version 2.24.1.1)
|
# spec file for package evolution (Version 2.24.1.1)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -58,7 +58,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: 5
|
Release: 6
|
||||||
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
|
||||||
@ -114,20 +114,60 @@ Patch33: bnc-446390-corrupted-vfolders.patch
|
|||||||
Patch34: bnc-446286-message-tracking-status.patch
|
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.
|
# 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
|
Patch35: bnc-210959-evo-accept-ics.patch
|
||||||
# PATCH-FIX-UPSTREAM sp-tasks-setup.diff pchenthill@suse.de -- Patch needs to upstreamed.
|
# PATCH-FIX-UPSTREAM sp-tasks-setup.diff pchenthill@suse.de -- Patch needs to be upstreamed.
|
||||||
Patch36: sp-tasks-setup.diff
|
Patch36: sp-tasks-setup.diff
|
||||||
# PATCH-FIX-UPSTREAM bgo-332729-invalid-write-econfig.patch bgo332729 -- Fix has been submitted upstream.
|
# PATCH-FIX-UPSTREAM bgo-332729-invalid-write-econfig.patch bgo332729 -- Fix has been submitted upstream.
|
||||||
Patch37: bgo-332729-invalid-write-econfig.patch
|
Patch37: bgo-332729-invalid-write-econfig.patch
|
||||||
# PATCH-FIX-UPSTREAM bgo-562228-evo-mailbox-field.patch bgo562228 -- Fix has been submitted upstream.
|
# PATCH-FIX-UPSTREAM bgo-562228-evo-mailbox-field.patch bgo562228 -- Fix has been submitted upstream.
|
||||||
Patch38: bgo-562228-evo-mailbox-field.patch
|
Patch38: bgo-562228-evo-mailbox-field.patch
|
||||||
# PATCH-FIX-UPSTREAM bnc-435452-lose-attendees-busy-search.patch bnc435452 sragavan@novell.com -- Patch yet to be pushed upstream.
|
# 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
|
Patch39: bnc-435452-lose-attendees-busy-search.patch
|
||||||
# PATCH-FIX-UPSTREAM bnc-439733-bogofilter-junk-training.patch bnc439733 sragavan@novell.com -- Patch yet to be pushed upstream.
|
# 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
|
Patch40: bnc-439733-bogofilter-junk-training.patch
|
||||||
# PATCH-FIX-UPSTREAM sp-meetingworkspace-ui.patch pchenthill@suse.de -- Patch needs to upstreamed.
|
# PATCH-FIX-UPSTREAM sp-meetingworkspace-ui.patch pchenthill@suse.de -- Patch needs to be upstreamed.
|
||||||
Patch41: sp-meetingworkspace-ui.patch
|
Patch41: sp-meetingworkspace-ui.patch
|
||||||
# PATCH-FIX-UPSTREAM bnc-449888-handle-no-workspace.patch bnc449888 pchenthill@suse.de -- Patch needs to upstreamed.
|
# 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
|
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.
|
||||||
|
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
|
# PATCH-FIX-UPSTREAM evo-core-mapi-changes.diff msuman@suse.de -- Fix is upstream since 2.25.3
|
||||||
Patch100: evo-core-mapi-changes.diff
|
Patch100: evo-core-mapi-changes.diff
|
||||||
Url: http://gnome.org/projects/evolution/
|
Url: http://gnome.org/projects/evolution/
|
||||||
@ -392,6 +432,26 @@ Authors:
|
|||||||
%patch40
|
%patch40
|
||||||
%patch41 -p1
|
%patch41 -p1
|
||||||
%patch42 -p1
|
%patch42 -p1
|
||||||
|
%patch43
|
||||||
|
%patch44
|
||||||
|
%patch45
|
||||||
|
%patch46
|
||||||
|
%patch47
|
||||||
|
%patch48
|
||||||
|
%patch49
|
||||||
|
%patch50
|
||||||
|
%patch51
|
||||||
|
%patch52
|
||||||
|
%patch53
|
||||||
|
%patch54
|
||||||
|
%patch55
|
||||||
|
%patch56
|
||||||
|
%patch57
|
||||||
|
%patch58
|
||||||
|
%patch59
|
||||||
|
%patch60
|
||||||
|
%patch61
|
||||||
|
%patch62
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -425,7 +485,7 @@ popd
|
|||||||
%install
|
%install
|
||||||
%{__make} DESTDIR=$RPM_BUILD_ROOT install
|
%{__make} DESTDIR=$RPM_BUILD_ROOT install
|
||||||
%{__cp} %{SOURCE1} $RPM_BUILD_ROOT/%{_datadir}/evolution/%evolution_base_version/images/about-box.png
|
%{__cp} %{SOURCE1} $RPM_BUILD_ROOT/%{_datadir}/evolution/%evolution_base_version/images/about-box.png
|
||||||
%suse_update_desktop_file -G "Mail and Calendar" evolution Core-Office
|
%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
|
for xml in $RPM_BUILD_ROOT/%{_datadir}/gnome/help/evolution-*/*/evolution-*.xml; do
|
||||||
meinproc --check --cache `echo $xml | sed 's/xml$/cache.bz2/'` $xml || :
|
meinproc --check --cache `echo $xml | sed 's/xml$/cache.bz2/'` $xml || :
|
||||||
done
|
done
|
||||||
@ -449,7 +509,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\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
|
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
|
||||||
%{__chmod} +x $RPM_BUILD_ROOT/%{_bindir}/evolution
|
%{__chmod} +x $RPM_BUILD_ROOT/%{_bindir}/evolution
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -506,6 +566,59 @@ fi
|
|||||||
%{_libdir}/evolution/*/conduits
|
%{_libdir}/evolution/*/conduits
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 07 2009 abharath@suse.de
|
||||||
|
- Patches added
|
||||||
|
+ bgo#559153 - bgo-559153-evo-migration.patch - Migration fixes
|
||||||
|
in Evolution.
|
||||||
|
+ bgo#559604 - bgo-559604-calendar-tooltip-updated.patch -
|
||||||
|
Additional Information On Calendar Tooltip.
|
||||||
|
+ bgo#564248 - bgo-564248-evo-copy-paste-images.patch - Support
|
||||||
|
Copy And Paste Of Images.
|
||||||
|
+ bnc#435694 - bnc-435694-retract-feature-broken.patch - Retract
|
||||||
|
of Email from Sent Items Does not Work
|
||||||
|
+ bnc#446285 - bnc-446285-traverse-all-entries.patch - Meeting
|
||||||
|
Entry Does Not Allow Multiple Names.
|
||||||
|
+ bnc#446287 - bnc-446287-missing-vcf-reader.patch - Missing
|
||||||
|
VCF Plugin In Email Reader.
|
||||||
|
+ bnc#449952 - bnc-449952-hotkey-evo-preferences.patch -
|
||||||
|
Misplaced Hotkey on Evolution Preference Dlg.
|
||||||
|
+ bnc#443544 - bnc-443544-evo-free-busy.patch - Evolution busy
|
||||||
|
search on GW resource object does not display
|
||||||
|
unavailable times.
|
||||||
|
+ bnc#435455 - bnc-435455-attendees-meeting-resize.patch -
|
||||||
|
Attendees UI Allows Meeting Resize.
|
||||||
|
+ bnc#439998 - bnc-439998-delete-delegated-events.patch -
|
||||||
|
Delegating a Meeting Should Prompt to See if a
|
||||||
|
Copy of the Meeting Should Be Kept.
|
||||||
|
+ bnc#440634 - bnc-440634-forwarded-hide-accept-decline.patch -
|
||||||
|
Hide Accept/Decline when forwarding GW appt.
|
||||||
|
+ bnc#445996 - bnc-445996-address-conflict.patch - address
|
||||||
|
conflict: [custom widget creation failed].
|
||||||
|
+ bnc#458153 - bnc-458153-busy-button.patch - All Day
|
||||||
|
Appointment/Event Needs To Default To Busy.
|
||||||
|
+ bnc#462349 - bnc-462349-shared-memo-editor.patch - Shared
|
||||||
|
Memos opens a normal Memo window.
|
||||||
|
+ bnc#463599 - bnc-463599-header-print-issues.patch - Daily
|
||||||
|
Printouts Display Hour In Wrong Spot.
|
||||||
|
+ bnc#439987 - bnc-439987-classify-sensitivity.patch - Save Option
|
||||||
|
Unavailable if Classification is Modified.
|
||||||
|
+ bnc#456481 - bnc-456481-evolution-eats-memory.patch - evolution
|
||||||
|
eats up memory.
|
||||||
|
+ bnc#462372 - bnc-462372-open-attachment-event.patch - Right click
|
||||||
|
on an attachment in calendar event and chose
|
||||||
|
application - does not work.
|
||||||
|
+ bnc#458968 - bnc-458968-warning-on-delegating.patch - Meeting
|
||||||
|
delegation warns about meeting changes.
|
||||||
|
+ bgo#559604 - bgo-559604-tooltip-for-gw.patch - Calendar Tooltip
|
||||||
|
updated for GW accounts.
|
||||||
|
- Patches updated
|
||||||
|
+ bgo#556224 - bgo-556224-search-events-offline.patch - Upstream
|
||||||
|
had updates.
|
||||||
|
+ bnc#430639 - evolution-desktop.patch - Change the name in the
|
||||||
|
desktop file.
|
||||||
|
- Changes to the spec
|
||||||
|
+ bnc#463587 - [PATCH] evolution --force-shutdown Tries To Kill All
|
||||||
|
Users.
|
||||||
* Thu Dec 04 2008 abharath@suse.de
|
* Thu Dec 04 2008 abharath@suse.de
|
||||||
- Patches added
|
- Patches added
|
||||||
+ bgo#332729 - bgo-332729-invalid-write-econfig.patch - invalid
|
+ bgo#332729 - bgo-332729-invalid-write-econfig.patch - invalid
|
||||||
|
Loading…
Reference in New Issue
Block a user