Hello community,
here is the log from the commit of package evolution for openSUSE:Factory
checked in at Thu Jan 8 18:03:14 CET 2009.
--------
--- GNOME/evolution/evolution.changes 2008-12-04 12:29:31.000000000 +0100
+++ /mounts/work_src_done/STABLE/evolution/evolution.changes 2009-01-08 11:52:39.214677000 +0100
@@ -0,0 +1,58 @@
+------------------------------------------------------------------
+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.
+
calling whatdependson for head-i586
New:
----
bgo-559153-evo-migration.patch
bgo-559604-calendar-tooltip-updated.patch
bgo-559604-tooltip-for-gw.patch
bgo-564248-evo-copy-paste-images.patch
bnc-435455-attendees-meeting-resize.patch
bnc-435694-retract-feature-broken.patch
bnc-439987-classify-sensitivity.patch
bnc-439998-delete-delegated-events.patch
bnc-440634-forwarded-hide-accept-decline.patch
bnc-443544-evo-free-busy.patch
bnc-445996-address-conflict.patch
bnc-446285-traverse-all-entries.patch
bnc-446287-missing-vcf-reader.patch
bnc-449952-hotkey-evo-preferences.patch
bnc-456481-evolution-eats-memory.patch
bnc-458153-busy-button.patch
bnc-458968-warning-on-delegating.patch
bnc-462349-shared-memo-editor.patch
bnc-462372-open-attachment-event.patch
bnc-463599-header-print-issues.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution.spec ++++++
--- /var/tmp/diff_new_pack.aS4218/_old 2009-01-08 18:02:49.000000000 +0100
+++ /var/tmp/diff_new_pack.aS4218/_new 2009-01-08 18:02:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -58,7 +58,7 @@
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
%define evolution_base_version 2.24
Version: 2.24.1.1
-Release: 5
+Release: 6
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
Source0: %{name}-%{version}.tar.bz2
Source1: summerdance-about2.png
@@ -114,20 +114,60 @@
Patch34: bnc-446286-message-tracking-status.patch
# PATCH-FIX-UPSTREAM bnc-210959-evo-accept-ics.patch bnc210959 pchenthill@novell.com -- Patch yet to be pushed upstream.
Patch35: bnc-210959-evo-accept-ics.patch
-# PATCH-FIX-UPSTREAM sp-tasks-setup.diff pchenthill@suse.de -- Patch needs to upstreamed.
+# PATCH-FIX-UPSTREAM sp-tasks-setup.diff pchenthill@suse.de -- Patch needs to be upstreamed.
Patch36: sp-tasks-setup.diff
# PATCH-FIX-UPSTREAM bgo-332729-invalid-write-econfig.patch bgo332729 -- Fix has been submitted upstream.
Patch37: bgo-332729-invalid-write-econfig.patch
# PATCH-FIX-UPSTREAM bgo-562228-evo-mailbox-field.patch bgo562228 -- Fix has been submitted upstream.
Patch38: bgo-562228-evo-mailbox-field.patch
-# PATCH-FIX-UPSTREAM bnc-435452-lose-attendees-busy-search.patch bnc435452 sragavan@novell.com -- Patch 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
-# 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
-# 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
-# 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
+# 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
Patch100: evo-core-mapi-changes.diff
Url: http://gnome.org/projects/evolution/
@@ -392,6 +432,26 @@
%patch40
%patch41 -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
%build
@@ -425,7 +485,7 @@
%install
%{__make} DESTDIR=$RPM_BUILD_ROOT install
%{__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
meinproc --check --cache `echo $xml | sed 's/xml$/cache.bz2/'` $xml || :
done
@@ -449,7 +509,7 @@
%fdupes $RPM_BUILD_ROOT
%if %suse_version > 1100
%{__mv} $RPM_BUILD_ROOT/%{_bindir}/evolution $RPM_BUILD_ROOT/%{_bindir}/evolution.bin
-echo -e "#!/bin/sh\n\ncase \$1 in\n\t\"--force-shutdown\")\n\t\tLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir}/mono:%{_libdir}/dice exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@ &\n\t\tpkill 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
%endif
@@ -506,6 +566,59 @@
%{_libdir}/evolution/*/conduits
%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
- Patches added
+ bgo#332729 - bgo-332729-invalid-write-econfig.patch - invalid
++++++ bgo-559153-evo-migration.patch ++++++
--- 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
++++++ bgo-559604-calendar-tooltip-updated.patch ++++++
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,
++++++ bgo-559604-tooltip-for-gw.patch ++++++
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);
++++++ bgo-564248-evo-copy-paste-images.patch ++++++
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
#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
++++++ bnc-435455-attendees-meeting-resize.patch ++++++
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);
}
++++++ bnc-435694-retract-feature-broken.patch ++++++
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++;
++++++ bnc-439987-classify-sensitivity.patch ++++++
--- 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"));
++++++ bnc-439998-delete-delegated-events.patch ++++++
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
++++++ bnc-440634-forwarded-hide-accept-decline.patch ++++++
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 {
++++++ bnc-443544-evo-free-busy.patch ++++++
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]);
++++++ bnc-445996-address-conflict.patch ++++++
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;
+}
++++++ bnc-446285-traverse-all-entries.patch ++++++
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;
++++++ bnc-446287-missing-vcf-reader.patch ++++++
--- 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
#include
#include
+#include
#include
#include
@@ -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, "