aboutsummaryrefslogtreecommitdiffstats
path: root/news/golded+
ModeNameSize
-rw-r--r--Makefile2072logstatsplainblame
-rw-r--r--distinfo173logstatsplainblame
d---------files306logstatsplain
-rw-r--r--pkg-descr140logstatsplainblame
-rw-r--r--pkg-plist14144logstatsplainblame
class='upd'>addressbook/gui/widgets/e-minicard.c48
-rw-r--r--addressbook/printing/e-contact-print.c137
-rw-r--r--art/ChangeLog7
-rw-r--r--calendar/ChangeLog132
-rw-r--r--calendar/calendar.error.xml6
-rw-r--r--calendar/gui/GNOME_Evolution_Calendar.server.in.in10
-rw-r--r--calendar/gui/alarm-notify/alarm-queue.c17
-rw-r--r--calendar/gui/calendar-component.c14
-rw-r--r--calendar/gui/dialogs/alarm-dialog.c2
-rw-r--r--calendar/gui/dialogs/alarm-list-dialog.c2
-rw-r--r--calendar/gui/dialogs/changed-comp.c2
-rw-r--r--calendar/gui/dialogs/comp-editor.c2
-rw-r--r--calendar/gui/dialogs/delete-error.c2
-rw-r--r--calendar/gui/dialogs/select-source-dialog.c2
-rw-r--r--calendar/gui/dialogs/task-details-page.c3
-rw-r--r--calendar/gui/dialogs/task-page.c3
-rw-r--r--calendar/gui/e-calendar-table.c209
-rw-r--r--calendar/gui/e-calendar-view.c2
-rw-r--r--calendar/gui/memos-component.c8
-rw-r--r--calendar/gui/memotypes.xml4
-rw-r--r--calendar/gui/print.c171
-rw-r--r--calendar/gui/tasks-component.c8
-rw-r--r--composer/ChangeLog15
-rw-r--r--composer/evolution-composer.ui1
-rw-r--r--composer/mail-composer.error.xml4
-rw-r--r--configure.in24
-rw-r--r--data/icons/Makefile.am16
-rw-r--r--data/icons/hicolor_actions_24x24_query-free-busy.png (renamed from art/query-free-busy.png)bin1127 -> 1127 bytes-rw-r--r--data/icons/hicolor_apps_16x16_evolution-mail.pngbin0 -> 617 bytes-rw-r--r--data/icons/hicolor_apps_16x16_evolution-memos.pngbin0 -> 617 bytes-rw-r--r--data/icons/hicolor_apps_16x16_evolution-tasks.pngbin0 -> 818 bytes-rw-r--r--data/icons/hicolor_apps_22x22_evolution-mail.pngbin0 -> 900 bytes-rw-r--r--data/icons/hicolor_apps_22x22_evolution-memos.pngbin0 -> 930 bytes-rw-r--r--data/icons/hicolor_apps_22x22_evolution-tasks.pngbin0 -> 1147 bytes-rw-r--r--data/icons/hicolor_apps_24x24_evolution-mail.pngbin0 -> 902 bytes-rw-r--r--data/icons/hicolor_apps_24x24_evolution-memos.pngbin0 -> 964 bytes-rw-r--r--data/icons/hicolor_apps_24x24_evolution-tasks.pngbin0 -> 1132 bytes-rw-r--r--data/icons/hicolor_apps_32x32_evolution-mail.pngbin0 -> 1168 bytes-rw-r--r--data/icons/hicolor_apps_32x32_evolution-memos.pngbin0 -> 1611 bytes-rw-r--r--data/icons/hicolor_apps_32x32_evolution-tasks.pngbin0 -> 1718 bytes-rw-r--r--data/icons/hicolor_apps_48x48_evolution-mail.pngbin0 -> 1609 bytes-rw-r--r--data/icons/hicolor_apps_48x48_evolution-memos.pngbin0 -> 2644 bytes-rw-r--r--data/icons/hicolor_apps_48x48_evolution-tasks.pngbin0 -> 2496 bytes-rw-r--r--data/icons/hicolor_categories_48x48_preferences-system-network-proxy.pngbin0 -> 3191 bytes-rw-r--r--e-util/ChangeLog7
-rw-r--r--e-util/e-plugin.c5
-rw-r--r--filter/ChangeLog19
-rw-r--r--filter/filter-label.c33
-rw-r--r--filter/filter-rule.c7
-rw-r--r--help/C/evolution.xml1209
-rw-r--r--help/C/figures/attach_reminder_a.png (renamed from help/C/figures/attach_reminder_a.png.png)bin17708 -> 17708 bytes-rw-r--r--help/ChangeLog205
-rw-r--r--help/Makefile.am2
-rw-r--r--help/cs/figures/attach_reminder_a.png (renamed from help/cs/figures/attach_reminder_a.png.png)bin20246 -> 20246 bytes-rw-r--r--help/de/de.po9055
-rw-r--r--help/es/es.po7366
-rw-r--r--help/es/figures/attach_reminder_a.png (renamed from help/es/figures/attach_reminder_a.png.png)bin17775 -> 17775 bytes-rw-r--r--help/fr/figures/attach_reminder_a.png (renamed from help/fr/figures/attach_reminder_a.png.png)bin23032 -> 23032 bytes-rw-r--r--help/fr/figures/evo_label_a.pngbin0 -> 32510 bytes-rw-r--r--help/fr/fr.po9187
-rw-r--r--help/quickref/C/quickref.tex6
-rw-r--r--mail/ChangeLog243
-rw-r--r--mail/GNOME_Evolution_Mail.server.in.in8
-rw-r--r--mail/e-searching-tokenizer.c3
-rw-r--r--mail/em-account-editor.c106
-rw-r--r--mail/em-composer-utils.c147
-rw-r--r--mail/em-composer-utils.h2
-rw-r--r--mail/em-event.c17
-rw-r--r--mail/em-event.h15
-rw-r--r--mail/em-folder-browser.c6
-rw-r--r--mail/em-folder-properties.c3
-rw-r--r--mail/em-folder-tree-model.c7
-rw-r--r--mail/em-folder-tree.c24
-rw-r--r--mail/em-folder-utils.c2
-rw-r--r--mail/em-folder-view.c22
-rw-r--r--mail/em-format-html-display.c10
-rw-r--r--mail/em-format-html.c30
-rw-r--r--mail/em-format-quote.c4
-rw-r--r--mail/em-format.c3
-rw-r--r--mail/em-migrate.c153
-rw-r--r--mail/em-network-prefs.c7
-rw-r--r--mail/em-subscribe-editor.c8
-rw-r--r--mail/em-utils.c46
-rw-r--r--mail/em-utils.h1
-rw-r--r--mail/evolution-mail.schemas.in22
-rw-r--r--mail/mail-component.c9
-rw-r--r--mail/mail-component.h1
-rw-r--r--mail/mail-config.glade6
-rw-r--r--mail/mail-dialogs.glade71
-rw-r--r--mail/mail-ops.c2
-rw-r--r--mail/mail-vfolder.c2
-rw-r--r--mail/message-list.c20
-rw-r--r--plugins/addressbook-file/ChangeLog8
-rw-r--r--plugins/addressbook-file/org-gnome-addressbook-file.eplug.xml3
-rw-r--r--plugins/backup-restore/ChangeLog7
-rw-r--r--plugins/backup-restore/org-gnome-backup-restore.error.xml2
-rw-r--r--plugins/bbdb/ChangeLog15
-rw-r--r--plugins/bbdb/bbdb.c8
-rw-r--r--plugins/caldav/ChangeLog17
-rw-r--r--plugins/caldav/caldav-source.c4
-rw-r--r--plugins/caldav/org-gnome-evolution-caldav.eplug.xml3
-rw-r--r--plugins/calendar-file/ChangeLog8
-rw-r--r--plugins/calendar-file/org-gnome-calendar-file.eplug.xml3
-rw-r--r--plugins/calendar-http/ChangeLog8
-rw-r--r--plugins/calendar-http/org-gnome-calendar-http.eplug.xml3
-rw-r--r--plugins/calendar-weather/ChangeLog8
-rw-r--r--plugins/calendar-weather/org-gnome-calendar-weather.eplug.xml3
-rw-r--r--plugins/email-custom-header/ChangeLog28
-rw-r--r--plugins/email-custom-header/Makefile.am3
-rw-r--r--plugins/email-custom-header/apps_evolution_email_custom_header.schemas.in2
-rw-r--r--plugins/email-custom-header/email-custom-header.c416
-rw-r--r--plugins/email-custom-header/email-custom-header.glade176
-rw-r--r--plugins/email-custom-header/org-gnome-email-custom-header.eplug.xml7
-rw-r--r--plugins/exchange-operations/ChangeLog31
-rw-r--r--plugins/exchange-operations/exchange-account-setup.c14
-rw-r--r--plugins/exchange-operations/exchange-folder-subscription.c3
-rw-r--r--plugins/exchange-operations/org-gnome-exchange-operations.eplug.xml6
-rw-r--r--plugins/exchange-operations/org-gnome-exchange-operations.error.xml4
-rw-r--r--plugins/external-editor/ChangeLog7
-rw-r--r--plugins/external-editor/org-gnome-external-editor.xml2
-rw-r--r--plugins/google-account-setup/ChangeLog38
-rw-r--r--plugins/google-account-setup/Makefile.am5
-rw-r--r--plugins/google-account-setup/google-contacts-source.c269
-rw-r--r--plugins/google-account-setup/google-contacts-source.h30
-rw-r--r--plugins/google-account-setup/google-source.c394
-rw-r--r--plugins/google-account-setup/org-gnome-evolution-google.eplug.xml14
-rw-r--r--plugins/groupwise-account-setup/ChangeLog8
-rw-r--r--plugins/groupwise-account-setup/org-gnome-gw-account-setup.eplug.xml2
-rw-r--r--plugins/groupwise-features/ChangeLog15
-rw-r--r--plugins/groupwise-features/org-gnome-proxy-login-errors.xml2
-rw-r--r--plugins/groupwise-features/org-gnome-shared-folder.errors.xml12
-rw-r--r--plugins/groupwise-features/process-meeting.c8
-rw-r--r--plugins/hula-account-setup/ChangeLog8
-rw-r--r--plugins/hula-account-setup/org-gnome-evolution-hula-account-setup.eplug.xml2
-rw-r--r--plugins/itip-formatter/ChangeLog19
-rw-r--r--plugins/itip-formatter/itip-formatter.c2
-rw-r--r--plugins/itip-formatter/itip-view.c16
-rw-r--r--plugins/mail-notification/ChangeLog31
-rw-r--r--plugins/mail-notification/Makefile.am2
-rw-r--r--plugins/mail-notification/apps-evolution-mail-notification.schemas.in2
-rw-r--r--plugins/mail-notification/mail-notification.c168
-rw-r--r--plugins/mark-all-read/ChangeLog7
-rw-r--r--plugins/mark-all-read/mark-all-read.c8
-rw-r--r--plugins/python/ChangeLog9
-rw-r--r--plugins/python/Makefile.am9
-rw-r--r--plugins/startup-wizard/ChangeLog8
-rw-r--r--plugins/startup-wizard/org-gnome-evolution-startup-wizard.eplug.xml4
-rw-r--r--plugins/templates/ChangeLog19
-rw-r--r--plugins/templates/Makefile.am41
-rw-r--r--plugins/templates/apps-evolution-template-placeholders.schemas.in26
-rw-r--r--plugins/templates/org-gnome-templates.eplug.xml36
-rw-r--r--plugins/templates/templates.c763
-rw-r--r--plugins/templates/templates.glade126
-rw-r--r--plugins/webdav-account-setup/Makefile.am22
-rw-r--r--plugins/webdav-account-setup/org-gnome-evolution-webdav.eplug.xml22
-rw-r--r--plugins/webdav-account-setup/webdav-contacts-source.c370
-rw-r--r--po/ChangeLog117
-rw-r--r--po/LINGUAS1
-rw-r--r--po/POTFILES.in15
-rw-r--r--po/ar.po4382
-rw-r--r--po/cs.po2820
-rw-r--r--po/de.po8063
-rw-r--r--po/es.po2992
-rw-r--r--po/fr.po8549
-rw-r--r--po/gl.po7304
-rw-r--r--po/gu.po8678
-rw-r--r--po/ko.po8806
-rw-r--r--po/nb.po2036
-rw-r--r--po/ps.po22868
-rw-r--r--po/pt_BR.po144
-rw-r--r--po/ru.po3899
-rw-r--r--shell/ChangeLog73
-rw-r--r--shell/apps_evolution_shell.schemas.in2
-rw-r--r--shell/e-component-registry.c31
-rw-r--r--shell/e-component-registry.h3
-rw-r--r--shell/e-shell-window.c4
-rw-r--r--shell/main.c2
-rw-r--r--shell/test/evolution-test-component.c2
-rw-r--r--ui/ChangeLog23
-rw-r--r--ui/evolution-editor.xml0
-rw-r--r--ui/evolution-event-editor.xml0
-rw-r--r--ui/evolution-mail-message.xml4
-rw-r--r--ui/evolution-memo-editor.xml0
-rw-r--r--ui/evolution-task-editor.xml0
-rw-r--r--ui/evolution.xml2
-rw-r--r--widgets/misc/ChangeLog18
-rw-r--r--widgets/misc/e-activity-handler.c1
-rw-r--r--widgets/misc/e-task-bar.c20
-rw-r--r--widgets/table/ChangeLog19
-rw-r--r--widgets/table/e-table-group-container.c27
-rw-r--r--widgets/table/e-table-group-leaf.c9
-rw-r--r--widgets/table/e-table-group.c11
-rw-r--r--widgets/table/e-table-group.h6
-rw-r--r--widgets/table/e-table-item.c36
-rw-r--r--widgets/table/e-table-item.h5
-rw-r--r--widgets/table/e-table.c18
-rw-r--r--widgets/table/e-table.h1
212 files changed, 73100 insertions, 40619 deletions
diff --git a/ChangeLog b/ChangeLog
index 0cc6dbf274..54402ed777 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,105 @@
+2008-08-07 Milan Crha <mcrha@redhat.com>
+
+ ** Part of fix for bug #535745
+
+ * configure.in: Require and link calendar libs with libgdata
+ and libgdata-google.
+
+2008-08-06 Michael Monreal <mmonreal@svn.gnome.org>
+
+ ** Fix for bug #467115
+
+ * addressbook/gui/component/addressbook-view.c:
+ (addressbook_view_init):
+ * calendar/gui/GNOME_Evolution_Calendar.server.in.in:
+ * calendar/gui/memos-component.c: (create_component_view):
+ * calendar/gui/tasks-component.c: (create_component_view):
+ * data/icons/Makefile.am:
+ * mail/GNOME_Evolution_Mail.server.in.in:
+ * mail/mail-component.c: (impl_createView):
+ Ship and use tango icons for the mail, tasks and memos components.
+
+2008-08-06 Michael Monreal <mmonreal@svn.gnome.org>
+
+ ** Fix for bug #531288
+
+ * data/icons/Makefile.am:
+ * mail/GNOME_Evolution_Mail.server.in.in:
+ Use proxy icon from tango-icon-theme and fall back to the icon
+ shipped by gnome-control-center (thanks to Josef Vybíral).
+
+2008-08-04 Srinivasa Ragavan <sragavan@novell.com>
+
+ * NEWS: Evolution 2.23.6 release and version bump.
+
+2008-08-04 Matthias Braun <matze@braunis.de>
+
+ ** Fix for bug #544051 - Added a plugin for the WebDAV addressbook
+ account setup.
+
+ * configure.in:
+ * plugins/webdav-account-setup/Makefile.am:
+ * plugins/webdav-account-setup/org-gnome-evolution-webdav.eplug.xml
+ :
+ * plugins/webdav-account-setup/webdav-contacts-source.c
+ (ensure_webdav_contacts_source_group),
+ (remove_webdav_contacts_source_group), (print_uri_noproto),
+ (set_ui_from_source), (set_source_from_ui), (on_entry_changed),
+ (on_toggle_changed), (destroy_ui_data), (plugin_webdav_contacts),
+ (e_plugin_lib_enable):
+
+2008-07-30 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes part of bug #545558
+
+ * configure.in:
+ Mark the "hula-account-setup" plugin as experimental.
+
+2008-07-30 Matthew Barnes <mbarnes@redhat.com>
+
+ * configure.in:
+ Bump eds_minimum_version to 2.23.6 for CAMEL_PROVIDER_CONF_OPTIONS.
+
+2008-07-23 Johnny Jacob <jjohnny@novell.com>
+
+ * configure.in: Version bumped to 2.23.6.
+ * NEWS: Updates for 2.23.5
+
+2008-07-22 Milan Crha <mcrha@redhat.com>
+
+ ** Part of fix for bug #544022
+
+ * configure.in: Do not redefine DBUS_VERSION define supplied
+ by dbus itself, rather rename our define to FOUND_DBUS_VERSION.
+
+2008-07-21 Johnny Jacob <jjohnny@novell.com>
+
+ * data/hicolor_actions_24x24_query-free-busy.png: Moved to
+ data/icons/hicolor_actions_24x24_query-free-busy.png as per
+ rev 35753.
+
+2008-07-21 Matthew Barnes <mbarnes@redhat.com>
+
+ * Makefile.am:
+ Add doltcompile and doltlibtool to DISTCLEANFILES to fix
+ distcheck breakage.
+
+2008-07-20 Bharath Acharya <abharath@novell.com>
+
+ ** Part of fix for bug #200147
+
+ * configure.in: Added a new plugin templates, which will make it
+ possible for users to use standard templates to reply to their messages.
+
+2008-07-18 Matthew Barnes <mbarnes@redhat.com>
+
+ * data/icons/hicolor_actions_24x24_query-free-busy.png:
+ Moved here from art/query-free-busy.png so we can treat it as a
+ named icon.
+
+ * data/icons/Makefile.am:
+ Add hicolor_actions_24x24_query-free-busy.png.
+
2008-07-03 Matthew Barnes <mbarnes@redhat.com>
* configure.in:
diff --git a/Makefile.am b/Makefile.am
index 65b219f6f7..e9bf3c62e2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -73,6 +73,8 @@ SUBDIRS += help
endif
DISTCLEANFILES = \
+ doltcompile \
+ doltlibtool \
intltool-extract \
intltool-merge \
intltool-update \
diff --git a/NEWS b/NEWS
index ee731f4f80..3a6dc5e49c 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,141 @@
+Evolution 2.23.6 2008-08-04
+---------------------------
+
+New in 2.23.6:
+ WebDAV contacts plugin (Matthias Braun)
+
+Bug Fixes:
+ #211267: Report correct number of pages to print and print them as requested (Milan Crha)
+ #249844: Use fully qualified names for "New" submenu entries (Matthew Barnes)
+ #256540: Do not use GtkNotebook with only one tab (Milan Crha)
+ #329821: Recalculate returned row to the model row, if we are sorting (Milan Crha)
+ #353927: Do not blink the icon more than 15 seconds (Milan Crha)
+ #428384: Improve buttons in the "exit-unsaved" dialog by replacing "Cancel" with "Continue Editing" and "Save Message" with "Save Draft". (Matthew Barnes)
+ #491176: Word-wrap the summary if necessary; keep the text and action buttons aligned on the left (Milan Crha)
+ #500389: New ability to define Options (ComboBox) in provider's options (Milan Crha)
+ #504417: Preferences windows cut off (Lucian Langa)
+ #514006: Quote literal values (Matthew Barnes)
+ #517151: Give a mnemonic to "Composer in External Editor" (Matthew Barnes)
+ #517825: Fix duplicate mnemonic. "_Work Offline" -> "Work _Offline" (Matthew Barnes)
+ #529460: Change "Startup Wizard" to "Setup Assistant". Also make the plugin description less lame (Matthew Barnes)
+ #530388: Fix a crash when editing labels (Milan Crha)
+ #537088: Fix empty headers if FROM/Sender is NULL (Paul Bolle)
+ #539268: Fix attachment description (Paul Bolle)
+ #543058: Properly capitalize INBOX (Paul Bolle)
+ #543411: Don't load known folders (Srinivasa Ragavan)
+ #543532: Let free memory when we are done with it, not before. (Milan Crha)
+ #543754: Reword "insufficient-permissions" error message (Matthew Barnes)
+ #543755: Fix a typo (Matthew Barnes)
+ #543756: Make question better translatable (Milan Crha)
+ #543943: Fix a memory leak (Milan Crha)
+ #544252: Use consistent naming to the GUI for different components (Paul Bolle)
+ #544157: Sort View / Window (sub)menu in shortcut order. (Paul Bolle)
+ #544383: Put contact list members in reverse order (Milan Crha)
+ #544857: Fix a typo (Matthew Barnes)
+ #544859: Clarify description of "sync_interval" key. (Matthew Barnes)
+ #544860: Add translator comments for split "update every" sentence (Matthew Barnes)
+ #544861: Reword "invalid-user" error message (Matthew Barnes)
+ #544862: Clarify description of "use_authentication" key (Matthew Barnes)
+ #544958: Use email, not e-mail (per documentation guidelines) (Matthew Barnes)
+ #544969: Added the hook for folder custom icon (Lucian Langa)
+ #544994: Typos/Syntax improvements (Claude Paroz)
+ #545300: Add a translatable tag in "_Merge" string (Takao Fujiwara)
+ #545303: Add gettext in the xml string (Takao Fujiwara)
+ #545436: Check the info before accessing it (Srinivasa Ragavan)
+ #545558: Hula support is disabled by default now, so remove any mention of it from the User Guide (Matthew Barnes)
+ #545568: Make sure system plugins are enabled on startup (Matthew Barnes)
+ #545820: Fix a typo. (Nicolas Kaiser)
+ #546057: Use "x-office-calendar" icon name instead of "stock_calendar" (Matthew Barnes)
+
+Updated Translations:
+ Ignacio Casal Quinteiro (gl)
+ Frco. Javier Rial Rodríguez (gl)
+ Kjartan Maraas (nb)
+ Changwoo Ryu (ko)
+ Abou Manal (ar)
+ Petr Kovar (cs)
+ Fabrício Godoy (pt_BR)
+ Jorge Gonzalez (es)
+ Bruno Brouard and Claude Paroz (fr)
+ Zabeeh Khan (ps)
+ Pavel Sefranek (cs)
+
+
+Evolution 2.23.5 2008-07-21
+---------------------------
+New in 2.23.5
+ Camel DB Summary support. (Srinivasa Ragavan & Sankar P)
+ New EPlugin for message templates. (Bharath Acharya & Diego Escalante Urrelo)
+ Google Contacts support (Jörgen Scheibengruber)
+
+Bug Fixes:
+ #543753: Addressbook error string fixes (Andre Klapper)
+ #228725: Contacts view should not say "no items in this view" until the backend is done responding (Milan Crha)
+ #543134: Mail notification plugin should provide a right-click menu for preferences (Milan Crha)
+ #269152: Work-around for MS Outlook/Lookout that use X-MimeOLE (Milan Crha)
+ #200147: Added basic Template support (Bharath Acharya)
+ #206592: Action to invoke New Message window from the composer itself (Milan Crha)
+ #207802: Do not allow drop messages to the same message list as is the source. (Milan Crha)
+ #243201: Escape rule title so that can contain also XML entities in the file (Milan Crha)
+ #310988: Don't even show the "send-options" action unless an Exchange or GroupWise account appears in the From combo box (Matthew Barnes)
+ #318089: Ask for destination source only when have more than one writable source defined (Milan Crha)
+ #329821: Show tooltips over task's table (Milan Crha)
+ #368038: Ensure only one Birthdays & Anniversaries source (Milan Crha)
+ #370731: (Novell Bugzilla) Use MAX to determine the minimal size for each cell. This prevents the numbers and day-names from getting fuzzy when using large font-sizes (Suman Manjunath)
+ #382783: Grab focus of new rule part on adding and scroll to the bottom too (Milan Crha)
+ #395636: Added accel key Ctrl+Shift+B for collapsing all threads and Ctrl+/ for marking all messages as read (Roshan Kumar Singh)
+ #423395: Put the anchor where the message body begins and let GtkHTML know the anchor name to place the cursor there in caret mode on the first focus (Milan Crha)
+ #440818: Convert line to UTF-8 if not a valid one. Pretend it to be an ISO-8859-1 line (Rodrigo Castro)
+ #477082,#438479: Fixed documentation (Andre Klapper)
+ #478469: Changed the progress dialog to be more HIG compliant (Milan Crha)
+ #519536: Handle freeing of data safely. (Srinivasa Ragavan)
+ #524130: Pass description text through 'camel_text_to_html' to have links clickable in a preview (Milan Crha)
+ #526262: Handle _title element in analogical way as title (Maciej Piechotka)
+ #530069: Don't show the configuration tab unless the selected plugin actually has configuration options (Matthew Barnes)
+ #532472: Strip the account URL (via CAMEL_URL_HIDE_ALL) before comparing it to the already-stripped 'transport_url', to avoid unnecessary password prompts (Matthew Barnes)
+ #532597: Do not leave selected more than one item if somebody else took care or reposition of the cursor row before the delete (Milan Crha)
+ #534039: Track folders even when Search Folders disabled, to have them known when enabling Search Folders on demand (Milan Crha)
+ #536488: Remove '~/.evolution/.running' file before backup/after restore, thus Evolution will not claim next start it was closed incorrectly (Milan Crha)
+ #537275: Do not pass data to the child structure if we were canceled (Milan Crha)
+ #537725: Set the autosaved flag so we don't get pestered with a save dialog if the user then decides to close the composer window (Matthew Barnes)
+ #538741: Strip preceding tabs from Date headers too (Paul Bolle)
+ #538908: Desensitize the "send-options" action unless we've selected as Exchange or GroupWise account. (Paul Bolle)
+ #539268: Do not use both filename and description if these are identical (Paul Bolle)
+ #539755: Do not access memory beyond the columns array (Milan Crha)
+ #540152: Fix some memory leaks (Milan Crha)
+ #540160: Remember whether we come from none/multi select to single select and properly update the preview. (Milan Crha)
+ #540274: After restore walk through all account, addressbook, calendar, task and memo sources and fix the base uri if required (Milan Crha)
+ #540282: Remove the "printing" GConf key. We use a key file now (Matthew Barnes)
+ #540282: Store printer and page settings in a key file rather than GConf (Matthew Barnes)
+ #540400: Make Evolution Backup follow symbolic links (Roger Zauner)
+ #540516: Sanitize user input while accepting path/filename of the backup (Tobias Mueller)
+ #540972: Small memory leak fix. (Milan Crha)
+ #541355: Removes any freed objects from the 'locals' list in each conduit which otherwise frees them again when the conduit is closed (Keith Packard)
+ #541365: Do not call 'camel_folder_sort_uids' when we do not have folder or uid (Milan Crha)
+ #542101: Escape PlaceOfTheMeeting in the Location: line of the tooltip (Paul Bolle)
+ #542125: Remove unnecessary files from source control (Matthew Barnes)
+ #542149: Display an error message to restart if user tries to subscribe to other's mailbox (Bharath Acharya)
+ #542587: New widget implements the online/offline button used in the main window. (Matthew Barnes)
+ #542631: Use g_format_size_for_display instead of cut and pasted code (Paolo Borelli)
+ #542889: Port to the new gtk tooltip api (Paolo Borelli)
+ #543758: Never mark empty strings for translations (Tor Lillqvist)
+
+Other Contributors:
+ Sort the uids so that moving/copying messages preserves mailbox ordering rather than jumbled randomness. (Jeffrey Stedfast)
+ Add dolt revision 5e9eef10 to the autotools build system. Speeds up the build, otherwise falls back to libtool (Alp Toker)
+ Configure email-custom-header plugin within the plugin-manager. (Ashish Shrivastava)
+
+Updated Translations:
+ Andre Klapper (de)
+ Jorge Gonzalez (es)
+ Kjartan Maraas (nb)
+ Jorge Gonzalez (es)
+ Ivar Smolin (et)
+ Yannig Marchegay (oc)
+ Leonardo Ferreira Fontenelle (pt_BR)
+ Timo Jyrinki (fi)
+ Lucas Lommer (cs)
+
Evolution 2.23.4 2008-06-16
---------------------------
New in 2.23.4
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index c62f154be6..bb251b4963 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,78 @@
+2008-08-07 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #324203
+
+ * gui/component/ldap-config.glade:
+ * gui/component/addressbook-config.c: (canbrowse_toggled_cb),
+ (eabc_details_limit): New check box to be able to set LDAP
+ address books browseable until reaches given limits.
+
+2008-08-06 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #249844
+
+ * gui/component/addressbook-component.c:
+ (impl__get_userCreatableItems): Do not let compiler claim.
+
+2008-08-06 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #546263
+
+ * gui/widgets/e-minicard.c: (add_field), (add_email_field), (remodel):
+ Add 'width' property as the last one for 'new' item, thus it will know
+ all the information to properly calculate column widths. Also don't
+ set field names for the contact-lists. Both changes prevents messing
+ of minicard painting for changed contact-lists.
+
+2008-08-04 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes bug #249844
+
+ * gui/component/addressbook-component.c
+ (impl__get_userCreatableItems):
+ Use C_() macro instead of Q_() macro.
+ Use fully qualified names for "New" submenu entries.
+
+2008-08-02 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes part of bug #546057
+
+ * gui/component/GNOME_Evolution_Addressbook.server.in.in:
+ * gui/contact-list-editor/contact-list-editor.glade:
+ Use "x-office-address-book" icon name instead of "stock_addressbook".
+
+2008-07-30 Milan Crha <mcrha@redhat.com>
+
+ ** Part of fix for bug #211267
+
+ * printing/e-contact-print.c: (struct _EContactPrintContext),
+ (e_contact_print_letter_heading), (e_contact_start_new_page),
+ (e_contact_print_contact), (contact_draw_page),
+ (e_contact_print): Report correct number of pages to print
+ and print them as requested.
+
+2008-07-30 Takao Fujiwara <takao.fujiwara@sun.com>
+
+ Reviewed by Andre Klapper <a9016009@gmx.de>
+
+ ** Fix for bug #545300
+
+ * gui/merging/eab-contact-duplicate-detected.glade:
+ Add a translatable tag in "_Merge" string.
+
+2008-07-28 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #544383
+
+ * gui/contact-list-editor/e-contact-list-editor.c:
+ (e_contact_list_editor_get_contact): Put list members in reverse order,
+ because 'e_vcard_add_attribute' uses prepend, thus changes order on
+ every single save of the contact list.
+
+2008-07-20 Andre Klapper <a9016009@gmx.de>
+
+ * addressbook.error.xml: Fix some strings. See bug #543753.
+
2008-07-13 Keith Packard <keithp@keithp.com>
** Fix for bug #541355
@@ -8,6 +83,16 @@
handle. This patch removes any freed objects from the 'locals' list in
each conduit which otherwise frees them again when the conduit is closed.
+2008-07-09 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #228725
+
+ * gui/widgets/e-minicard-view.h: (struct _EMinicardView):
+ * gui/widgets/e-minicard-view.c: (set_empty_message),
+ (stop_state_changed), (e_minicard_view_set_property),
+ (e_minicard_view_dispose), (e_minicard_view_init):
+ Show different message in a view when searching.
+
2008-07-03 Milan Crha <mcrha@redhat.com>
** Fix for bug #540152
diff --git a/addressbook/addressbook.error.xml b/addressbook/addressbook.error.xml
index ceec857adf..bfea4ce405 100644
--- a/addressbook/addressbook.error.xml
+++ b/addressbook/addressbook.error.xml
@@ -110,18 +110,18 @@
<error id="gw-book-list-init" type="warning">
<_primary>GroupWise Address book creation:</_primary>
- <_secondary>Currently you can access only GroupWise System Address Book from Evolution. Please use some other GroupWise mail client once, to get your GroupWise Frequent Contacts and Groupwise Personal Contacts folders.</_secondary>
+ <_secondary>Currently you can access only GroupWise System Address Book from Evolution. Please use some other GroupWise mail client once, to get your GroupWise Frequent Contacts and GroupWise Personal Contacts folders.</_secondary>
</error>
<error id="contact-delete-error-perm" type="warning">
<_primary>Failed to delete contact</_primary>
- <_secondary>You do not have enough permissions to delete contact in this Address Book.</_secondary>
+ <_secondary>You do not have permission to delete contacts in this address book.</_secondary>
</error>
<error id="error-read-only" type="error" default="GTK_RESPONSE_YES">
<_primary>Cannot add new contact</_primary>
<!-- For Translators: {0} is the name of the address book source -->
- <_secondary>'{0}' is a read-only address book source. Switch to Contacts View and highlight an address book that can accept contacts.</_secondary>
+ <_secondary>'{0}' is a read-only address book and cannot be modified. Please select a different address book from the side bar in the Contacts view.</_secondary>
<button stock ="gtk-ok" response="GTK_RESPONSE_YES"/>
</error>
diff --git a/addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in b/addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in
index feef3bdfc9..4fe2ce7a6a 100644
--- a/addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in
+++ b/addressbook/gui/component/GNOME_Evolution_Addressbook.server.in.in
@@ -50,7 +50,7 @@
<oaf_attribute name="evolution:button_label" type="string" _value="Contacts"/>
<oaf_attribute name="evolution:button_tooltips" type="string" _value="Contacts"/>
<oaf_attribute name="evolution:button_sort_order" type="string" value="-9"/>
- <oaf_attribute name="evolution:button_icon" type="string" value="stock_addressbook"/>
+ <oaf_attribute name="evolution:button_icon" type="string" value="x-office-address-book"/>
</oaf_server>
diff --git a/addressbook/gui/component/addressbook-component.c b/addressbook/gui/component/addressbook-component.c
index b55cb9bd16..82f00f00c3 100644
--- a/addressbook/gui/component/addressbook-component.c
+++ b/addressbook/gui/component/addressbook-component.c
@@ -226,7 +226,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[0].id = "contact";
list->_buffer[0].description = _("New Contact");
- list->_buffer[0].menuDescription = _("_Contact");
+ list->_buffer[0].menuDescription = (char *) C_("New", "_Contact");
list->_buffer[0].tooltip = _("Create a new contact");
list->_buffer[0].menuShortcut = 'c';
list->_buffer[0].iconName = "contact-new";
@@ -234,7 +234,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[1].id = "contact_list";
list->_buffer[1].description = _("New Contact List");
- list->_buffer[1].menuDescription = _("Contact _List");
+ list->_buffer[1].menuDescription = (char *) C_("New", "Contact _List");
list->_buffer[1].tooltip = _("Create a new contact list");
list->_buffer[1].menuShortcut = 'l';
list->_buffer[1].iconName = "stock_contact-list";
@@ -242,7 +242,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[2].id = "address_book";
list->_buffer[2].description = _("New Address Book");
- list->_buffer[2].menuDescription = _("Address _Book");
+ list->_buffer[2].menuDescription = (char *) C_("New", "Address _Book");
list->_buffer[2].tooltip = _("Create a new address book");
list->_buffer[2].menuShortcut = '\0';
list->_buffer[2].iconName = "address-book-new";
diff --git a/addressbook/gui/component/addressbook-config.c b/addressbook/gui/component/addressbook-config.c
index 76b5dca5c1..2b749a6dd8 100644
--- a/addressbook/gui/component/addressbook-config.c
+++ b/addressbook/gui/component/addressbook-config.c
@@ -111,6 +111,7 @@ struct _AddressbookSourceDialog {
GtkWidget *search_filter;
GtkWidget *timeout_scale;
GtkWidget *limit_spinbutton;
+ GtkWidget *canbrowsecheck;
/* display name page fields */
GtkWidget *display_name;
@@ -925,6 +926,15 @@ limit_changed_cb(GtkWidget *w, AddressbookSourceDialog *sdialog)
e_source_set_property(sdialog->source, "limit", limit);
}
+static void
+canbrowse_toggled_cb (GtkWidget *toggle_button, ESource *source)
+{
+ if (!source || !toggle_button)
+ return;
+
+ e_source_set_property (source, "can-browse", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle_button)) ? "1" : NULL);
+}
+
static GtkWidget *
eabc_details_limit(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, struct _GtkWidget *old, void *data)
{
@@ -956,6 +966,10 @@ eabc_details_limit(EConfig *ec, EConfigItem *item, struct _GtkWidget *parent, st
gtk_spin_button_set_value((GtkSpinButton *)sdialog->limit_spinbutton, tmp?g_strtod(tmp, NULL):100.0);
g_signal_connect (sdialog->limit_spinbutton, "value_changed", G_CALLBACK (limit_changed_cb), sdialog);
+ sdialog->canbrowsecheck = glade_xml_get_widget (gui, "canbrowsecheck");
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (sdialog->canbrowsecheck), e_source_get_property (sdialog->source, "can-browse") && strcmp (e_source_get_property (sdialog->source, "can-browse"), "1") == 0);
+ g_signal_connect (sdialog->canbrowsecheck, "toggled", G_CALLBACK (canbrowse_toggled_cb), sdialog->source);
+
g_object_unref(gui);
return w;
diff --git a/addressbook/gui/component/addressbook-view.c b/addressbook/gui/component/addressbook-view.c
index cb66508eac..3db5bbdf36 100644
--- a/addressbook/gui/component/addressbook-view.c
+++ b/addressbook/gui/component/addressbook-view.c
@@ -1330,7 +1330,7 @@ addressbook_view_init (AddressbookView *view)
e_activity_handler_attach_task_bar (priv->activity_handler,
E_TASK_BAR (priv->statusbar_widget));
- priv->info_widget = e_info_label_new("contact-new");
+ priv->info_widget = e_info_label_new("x-office-address-book");
e_info_label_set_info((EInfoLabel*)priv->info_widget, _("Contacts"), "");
gtk_widget_show (priv->info_widget);
diff --git a/addressbook/gui/component/ldap-config.glade b/addressbook/gui/component/ldap-config.glade
index 1641741075..1e1c4d5fea 100644
--- a/addressbook/gui/component/ldap-config.glade
+++ b/addressbook/gui/component/ldap-config.glade
@@ -1179,7 +1179,7 @@
<child>
<widget class="GtkTable" id="table34">
<property name="visible">True</property>
- <property name="n_rows">2</property>
+ <property name="n_rows">3</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -1405,6 +1405,28 @@
<property name="y_options">shrink|fill</property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkCheckButton" id="canbrowsecheck">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes" comments="To translators: If enabled, addressbook will only fetch contacts from the server until either set time limit or amount of contacts limit reached">B_rowse this book until limit reached</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</widget>
<packing>
<property name="padding">0</property>
@@ -2707,7 +2729,7 @@
<widget class="GtkTable" id="table11">
<property name="border_width">12</property>
<property name="visible">True</property>
- <property name="n_rows">2</property>
+ <property name="n_rows">3</property>
<property name="n_columns">3</property>
<property name="homogeneous">False</property>
<property name="row_spacing">6</property>
@@ -2930,6 +2952,28 @@
<property name="y_options"></property>
</packing>
</child>
+
+ <child>
+ <widget class="GtkCheckButton" id="canbrowsecheck">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes" comments="To translators: If enabled, addressbook will only fetch contacts from the server until either set time limit or amount of contacts limit reached">B_rowse this book until limit reached</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">False</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">fill</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</widget>
</child>
diff --git a/addressbook/gui/contact-list-editor/contact-list-editor.glade b/addressbook/gui/contact-list-editor/contact-list-editor.glade
index 3402e27542..497be08c85 100644
--- a/addressbook/gui/contact-list-editor/contact-list-editor.glade
+++ b/addressbook/gui/contact-list-editor/contact-list-editor.glade
@@ -28,7 +28,7 @@
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="icon_size">6</property>
- <property name="icon_name">stock_addressbook</property>
+ <property name="icon_name">x-office-address-book</property>
</widget>
<packing>
<property name="left_attach">1</property>
diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
index d3121185a6..7039bb5086 100644
--- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c
+++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
@@ -1334,6 +1334,7 @@ e_contact_list_editor_get_contact (EContactListEditor *editor)
GtkTreeIter iter;
gboolean iter_valid;
const gchar *text;
+ GSList *attrs = NULL, *a;
g_return_val_if_fail (E_IS_CONTACT_LIST_EDITOR (editor), NULL);
@@ -1367,13 +1368,20 @@ e_contact_list_editor_get_contact (EContactListEditor *editor)
gtk_tree_model_get (model, &iter, 0, &dest, -1);
attr = e_vcard_attribute_new (NULL, EVC_EMAIL);
- e_vcard_add_attribute (E_VCARD (contact), attr);
+ attrs = g_slist_prepend (attrs, attr);
e_destination_export_to_vcard_attribute (dest, attr);
g_object_unref (dest);
iter_valid = gtk_tree_model_iter_next (model, &iter);
}
+ /* Put it in reverse order because e_vcard_add_attribute also uses prepend,
+ but we want to keep order of mails there. Hopefully noone will change
+ the behaviour of the e_vcard_add_attribute. */
+ for (a = attrs; a; a = a->next) {
+ e_vcard_add_attribute (E_VCARD (contact), a->data);
+ }
+
return contact;
}
diff --git a/addressbook/gui/merging/eab-contact-duplicate-detected.glade b/addressbook/gui/merging/eab-contact-duplicate-detected.glade
index 1a85fac29e..70efc737ca 100644
--- a/addressbook/gui/merging/eab-contact-duplicate-detected.glade
+++ b/addressbook/gui/merging/eab-contact-duplicate-detected.glade
@@ -61,7 +61,7 @@
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
- <property name="label">_Merge</property>
+ <property name="label" translatable="yes">_Merge</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
diff --git a/addressbook/gui/widgets/e-minicard-view.c b/addressbook/gui/widgets/e-minicard-view.c
index daa41b1e2f..30a384091d 100644
--- a/addressbook/gui/widgets/e-minicard-view.c
+++ b/addressbook/gui/widgets/e-minicard-view.c
@@ -155,28 +155,34 @@ static void
set_empty_message (EMinicardView *view)
{
char *empty_message;
- gboolean editable = FALSE, perform_initial_query = FALSE;
+ gboolean editable = FALSE, perform_initial_query = FALSE, searching = FALSE;
EBook *book;
if (view->adapter) {
+ EABModel *model = NULL;
+
g_object_get (view->adapter,
"editable", &editable,
+ "model", &model,
NULL);
g_object_get (view->adapter, "book", &book, NULL);
if (!e_book_check_static_capability (book, "do-initial-query"))
perform_initial_query = TRUE;
+
+ searching = model && eab_model_can_stop (model);
}
- if (editable) {
+ if (searching) {
+ empty_message = _("\n\nSearching for the Contacts...");
+ } else if (editable) {
if (perform_initial_query)
empty_message = _("\n\nSearch for the Contact\n\n"
"or double-click here to create a new Contact.");
else
empty_message = _("\n\nThere are no items to show in this view.\n\n"
"Double-click here to create a new Contact.");
- }
- else {
+ } else {
if (perform_initial_query)
empty_message = _("\n\nSearch for the Contact.");
else
@@ -195,6 +201,12 @@ writable_status_change (EABModel *model, gboolean writable, EMinicardView *view)
}
static void
+stop_state_changed (EABModel *model, EMinicardView *view)
+{
+ set_empty_message (view);
+}
+
+static void
adapter_changed (EMinicardView *view)
{
set_empty_message (view);
@@ -216,19 +228,23 @@ e_minicard_view_set_property (GObject *object,
switch (prop_id){
case PROP_ADAPTER:
if (view->adapter) {
- if (view->writable_status_id) {
+ if (view->writable_status_id || view->stop_state_id) {
EABModel *model;
g_object_get (view->adapter,
"model", &model,
NULL);
if (model) {
- g_signal_handler_disconnect (model, view->writable_status_id);
+ if (view->writable_status_id)
+ g_signal_handler_disconnect (model, view->writable_status_id);
+ if (view->stop_state_id)
+ g_signal_handler_disconnect (model, view->stop_state_id);
}
}
g_object_unref (view->adapter);
}
view->writable_status_id = 0;
+ view->stop_state_id = 0;
view->adapter = g_value_get_object (value);
g_object_ref (view->adapter);
adapter_changed (view);
@@ -244,6 +260,9 @@ e_minicard_view_set_property (GObject *object,
view->writable_status_id =
g_signal_connect (model, "writable_status",
G_CALLBACK (writable_status_change), view);
+ view->stop_state_id =
+ g_signal_connect (model, "stop_state_changed",
+ G_CALLBACK (stop_state_changed), view);
}
}
@@ -317,19 +336,23 @@ e_minicard_view_dispose (GObject *object)
}
if (view->adapter) {
- if (view->writable_status_id) {
+ if (view->writable_status_id || view->stop_state_id) {
EABModel *model;
g_object_get (view->adapter,
"model", &model,
NULL);
if (model) {
- g_signal_handler_disconnect (model, view->writable_status_id);
+ if (view->writable_status_id)
+ g_signal_handler_disconnect (model, view->writable_status_id);
+ if (view->stop_state_id)
+ g_signal_handler_disconnect (model, view->stop_state_id);
}
}
g_object_unref (view->adapter);
}
view->writable_status_id = 0;
+ view->stop_state_id = 0;
view->adapter = NULL;
if (G_OBJECT_CLASS(parent_class)->dispose)
@@ -548,6 +571,7 @@ e_minicard_view_init (EMinicardView *view)
view->adapter = NULL;
view->canvas_drag_data_get_id = 0;
view->writable_status_id = 0;
+ view->stop_state_id = 0;
set_empty_message (view);
}
diff --git a/addressbook/gui/widgets/e-minicard-view.h b/addressbook/gui/widgets/e-minicard-view.h
index 1d8eef963c..eb6d07f034 100644
--- a/addressbook/gui/widgets/e-minicard-view.h
+++ b/addressbook/gui/widgets/e-minicard-view.h
@@ -70,6 +70,7 @@ struct _EMinicardView
guint canvas_drag_data_get_id;
guint writable_status_id;
+ guint stop_state_id;
};
struct _EMinicardViewClass
diff --git a/addressbook/gui/widgets/e-minicard.c b/addressbook/gui/widgets/e-minicard.c
index b617292a0f..a4bda1ac4a 100644
--- a/addressbook/gui/widgets/e-minicard.c
+++ b/addressbook/gui/widgets/e-minicard.c
@@ -780,21 +780,21 @@ add_field (EMinicard *e_minicard, EContactField field, gdouble left_width)
new_item = e_minicard_label_new(group);
if (e_minicard->contact && e_contact_get (e_minicard->contact, E_CONTACT_IS_LIST))
- gnome_canvas_item_set( new_item,
- "width", e_minicard->width - 4.0,
- "fieldname", is_rtl ? "" : string,
- "field", is_rtl ? string : "",
- "max_field_name_length", left_width,
- "editable", FALSE /* e_minicard->editable */,
- NULL );
+ gnome_canvas_item_set (new_item,
+ "fieldname", is_rtl ? "" : string,
+ "field", is_rtl ? string : "",
+ "max_field_name_length", left_width,
+ "editable", FALSE /* e_minicard->editable */,
+ "width", e_minicard->width - 4.0,
+ NULL );
else
- gnome_canvas_item_set( new_item,
- "width", e_minicard->width - 4.0,
- "fieldname", is_rtl ? string : name,
- "field", is_rtl ? name : string,
- "max_field_name_length", left_width,
- "editable", FALSE /* e_minicard->editable */,
- NULL );
+ gnome_canvas_item_set (new_item,
+ "fieldname", is_rtl ? string : name,
+ "field", is_rtl ? name : string,
+ "max_field_name_length", left_width,
+ "editable", FALSE /* e_minicard->editable */,
+ "width", e_minicard->width - 4.0,
+ NULL );
#ifdef notyet
@@ -831,7 +831,7 @@ get_email_location (EVCardAttribute *attr)
}
static void
-add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, int limit)
+add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, int limit, gboolean is_list)
{
GnomeCanvasItem *new_item;
GnomeCanvasGroup *group;
@@ -850,8 +850,13 @@ add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, i
char *parsed_name = NULL;
gboolean parser_check;
- tmp = get_email_location ((EVCardAttribute *) l->data);
- name = g_strdup_printf ("%s:", tmp);
+ /* do not use name for fields in the contact list */
+ if (is_list) {
+ name = (char *)"";
+ } else {
+ tmp = get_email_location ((EVCardAttribute *) l->data);
+ name = g_strdup_printf ("%s:", tmp);
+ }
parser_check = eab_parse_qp_email ((const gchar *) le->data, &parsed_name, &email);
if (parser_check) {
@@ -864,12 +869,12 @@ add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, i
new_item = e_minicard_label_new(group);
- gnome_canvas_item_set( new_item,
- "width", e_minicard->width - 4.0,
+ gnome_canvas_item_set (new_item,
"fieldname", is_rtl ? string : name,
"field", is_rtl ? name : string,
"max_field_name_length", left_width,
"editable", FALSE /* e_minicard->editable */,
+ "width", e_minicard->width - 4.0,
NULL );
#ifdef notyet
@@ -888,7 +893,8 @@ add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, i
e_minicard->fields = g_list_append( e_minicard->fields, minicard_field);
e_canvas_item_move_absolute(new_item, 2, e_minicard->height);
count++;
- g_free (name);
+ if (!is_list)
+ g_free (name);
g_free (string);
g_free (parsed_name);
g_free (email);
@@ -1005,7 +1011,7 @@ remodel( EMinicard *e_minicard )
limit = 5 - count;
email = e_contact_get_attributes (e_minicard->contact, E_CONTACT_EMAIL);
- add_email_field (e_minicard, email, left_width, limit);
+ add_email_field (e_minicard, email, left_width, limit, is_list);
if (count+limit >5)
count = 5;
else
diff --git a/addressbook/printing/e-contact-print.c b/addressbook/printing/e-contact-print.c
index a707235944..f82335335a 100644
--- a/addressbook/printing/e-contact-print.c
+++ b/addressbook/printing/e-contact-print.c
@@ -57,6 +57,8 @@ struct _EContactPrintContext
EContactPrintStyle *style;
gboolean first_section;
+ gint page_nr, pages;
+
PangoFontDescription *letter_heading_font;
gchar *section;
gboolean first_contact;
@@ -178,8 +180,15 @@ e_contact_print_letter_heading (EContactPrintContext *ctxt, gchar *letter)
pango_layout_set_width (layout, width);
pango_layout_get_size (layout, NULL, &height);
- /* Draw white text centered in a black rectangle. */
+ if (ctxt->page_nr == -1 || ctxt->pages != ctxt->page_nr) {
+ /* only calculating number of pages
+ or on page we do not want to print */
+ ctxt->y += pango_units_to_double (height);
+
+ return;
+ }
+ /* Draw white text centered in a black rectangle. */
cr = gtk_print_context_get_cairo_context (ctxt->context);
cairo_save (cr);
@@ -207,10 +216,11 @@ e_contact_start_new_page (EContactPrintContext *ctxt)
cr = gtk_print_context_get_cairo_context (ctxt->context);
- cairo_show_page (cr);
+ /*cairo_show_page (cr);*/
ctxt->x = ctxt->y = .0;
ctxt->column = 0;
+ ctxt->pages++;
}
static void
@@ -226,7 +236,7 @@ e_contact_print_contact (EContact *contact, EContactPrintContext *ctxt)
file_as = e_contact_get (contact, E_CONTACT_FILE_AS);
- if (ctxt->style->print_using_grey) {
+ if (ctxt->style->print_using_grey && ctxt->pages == ctxt->page_nr) {
cairo_save (cr);
cairo_set_source_rgb (cr, .85, .85, .85);
cairo_rectangle (cr, ctxt->x, ctxt->y, ctxt->column_width,
@@ -236,9 +246,10 @@ e_contact_print_contact (EContact *contact, EContactPrintContext *ctxt)
cairo_restore (cr);
}
- e_contact_output (
- ctxt->context, ctxt->style->headings_font,
- ctxt->x, ctxt->y, ctxt->column_width + 4, file_as);
+ if (ctxt->pages == ctxt->page_nr)
+ e_contact_output (
+ ctxt->context, ctxt->style->headings_font,
+ ctxt->x, ctxt->y, ctxt->column_width + 4, file_as);
ctxt->y += e_contact_text_height (
ctxt->context, ctxt->style->headings_font, file_as);
@@ -258,9 +269,10 @@ e_contact_print_contact (EContact *contact, EContactPrintContext *ctxt)
text = g_strdup_printf ("%s: %s",
e_contact_pretty_name (field), value);
- e_contact_output (
- ctxt->context, ctxt->style->body_font,
- ctxt->x, ctxt->y, -1, text);
+ if (ctxt->pages == ctxt->page_nr)
+ e_contact_output (
+ ctxt->context, ctxt->style->body_font,
+ ctxt->x, ctxt->y, -1, text);
ctxt->y += e_contact_text_height (
ctxt->context, ctxt->style->body_font, text);
@@ -540,51 +552,6 @@ load_contacts (EContactPrintContext *ctxt)
}
static void
-free_contacts (EContactPrintContext *ctxt)
-{
- g_list_foreach (ctxt->contact_list, (GFunc) g_object_unref, NULL);
- g_list_free (ctxt->contact_list);
-}
-
-static void
-contact_begin_print (GtkPrintOperation *operation,
- GtkPrintContext *context,
- EContactPrintContext *ctxt)
-{
- GtkPageSetup *setup;
- gdouble page_width;
-
- e_contact_build_style (ctxt->style);
-
- setup = gtk_print_context_get_page_setup (context);
- page_width = gtk_page_setup_get_page_width (setup, GTK_UNIT_POINTS);
-
- ctxt->context = context;
- ctxt->x = ctxt->y = .0;
- ctxt->column = 0;
- ctxt->first_contact = TRUE;
- ctxt->first_section = TRUE;
- ctxt->section = NULL;
-
- ctxt->column_spacing = gtk_print_context_get_dpi_x (context) / 4;
- ctxt->column_width = (page_width + ctxt->column_spacing) /
- ctxt->style->num_columns - ctxt->column_spacing;
-
- ctxt->letter_heading_font = pango_font_description_new ();
- pango_font_description_set_family (
- ctxt->letter_heading_font,
- pango_font_description_get_family (
- ctxt->style->headings_font));
- pango_font_description_set_size (
- ctxt->letter_heading_font,
- pango_font_description_get_size (
- ctxt->style->headings_font) * 1.5);
-
- if (ctxt->book != NULL)
- load_contacts (ctxt);
-}
-
-static void
contact_draw (EContact *contact, EContactPrintContext *ctxt)
{
GtkPageSetup *setup;
@@ -638,11 +605,71 @@ contact_draw (EContact *contact, EContactPrintContext *ctxt)
}
static void
+free_contacts (EContactPrintContext *ctxt)
+{
+ g_list_foreach (ctxt->contact_list, (GFunc) g_object_unref, NULL);
+ g_list_free (ctxt->contact_list);
+}
+
+static void
+contact_begin_print (GtkPrintOperation *operation,
+ GtkPrintContext *context,
+ EContactPrintContext *ctxt)
+{
+ GtkPageSetup *setup;
+ gdouble page_width;
+
+ e_contact_build_style (ctxt->style);
+
+ setup = gtk_print_context_get_page_setup (context);
+ page_width = gtk_page_setup_get_page_width (setup, GTK_UNIT_POINTS);
+
+ ctxt->context = context;
+ ctxt->x = ctxt->y = .0;
+ ctxt->column = 0;
+ ctxt->first_contact = TRUE;
+ ctxt->first_section = TRUE;
+ ctxt->section = NULL;
+
+ ctxt->column_spacing = gtk_print_context_get_dpi_x (context) / 4;
+ ctxt->column_width = (page_width + ctxt->column_spacing) /
+ ctxt->style->num_columns - ctxt->column_spacing;
+
+ ctxt->letter_heading_font = pango_font_description_new ();
+ pango_font_description_set_family (
+ ctxt->letter_heading_font,
+ pango_font_description_get_family (
+ ctxt->style->headings_font));
+ pango_font_description_set_size (
+ ctxt->letter_heading_font,
+ pango_font_description_get_size (
+ ctxt->style->headings_font) * 1.5);
+
+ if (ctxt->book != NULL) {
+ load_contacts (ctxt);
+ ctxt->page_nr = -1;
+ ctxt->pages = 1;
+ g_list_foreach (ctxt->contact_list, (GFunc) contact_draw, ctxt);
+ gtk_print_operation_set_n_pages (operation, ctxt->pages);
+ }
+}
+
+static void
contact_draw_page (GtkPrintOperation *operation,
GtkPrintContext *context,
gint page_nr,
EContactPrintContext *ctxt)
{
+ /* only text on page_nr == pages will be drawn, the pages is recalculated */
+ ctxt->page_nr = page_nr;
+ ctxt->pages = 0;
+
+ ctxt->x = ctxt->y = .0;
+ ctxt->column = 0;
+ ctxt->first_contact = TRUE;
+ ctxt->first_section = TRUE;
+ ctxt->section = NULL;
+
g_list_foreach (ctxt->contact_list, (GFunc) contact_draw, ctxt);
}
@@ -681,6 +708,8 @@ e_contact_print (EBook *book, EBookQuery *query,
ctxt.contact_list = contact_list;
}
ctxt.style = &style;
+ ctxt.page_nr = 0;
+ ctxt.pages = 0;
operation = e_print_operation_new ();
gtk_print_operation_set_n_pages (operation, 1);
diff --git a/art/ChangeLog b/art/ChangeLog
index 1e853a15ee..71bc919db2 100644
--- a/art/ChangeLog
+++ b/art/ChangeLog
@@ -1,3 +1,10 @@
+2008-07-18 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes part of bug #542125
+
+ * Makefile.am:
+ Move query-free-busy.png to data/icons.
+
2007-10-12 Michael Monreal <michael.monreal@gmail.com>
** Migration of theme icons to data/icons/ (bug #479257)
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index f33f8c9bba..75c9143ca0 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,135 @@
+2008-08-06 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #249844
+
+ * gui/tasks-component.c: (impl__get_userCreatableItems):
+ * gui/memos-component.c: (impl__get_userCreatableItems):
+ Do not let compiler claim.
+ * gui/calendar-component.c: (impl__get_userCreatableItems):
+ Use C_() macro instead of Q_() macro.
+ Use fully qualified names for "New" submenu entries.
+
+2008-08-04 Paul Bolle <pebolle@tiscali.nl>
+
+ ** Fix for bug #544157
+
+ * gui/GNOME_Evolution_Calendar.server.in.in:
+ Sort View / Window (sub)menu in shortcut order.
+
+2008-08-04 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes bug #249844
+
+ * gui/memos-component.c (impl__get_userCreatableItems):
+ * gui/tasks-component.c (impl__get_userCreatableItems):
+ Use C_() macro instead of Q_() macro.
+ Use fully qualified names for "New" submenu entries.
+
+2008-08-02 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes part of bug #546057
+
+ * gui/GNOME_Evolution_Calendar.server.in.in:
+ * gui/calendar-component.c:
+ * gui/e-calendar-view.c:
+ * gui/dialogs/alarm-dialog.c:
+ * gui/dialogs/alarm-list-dialog.c:
+ * gui/dialogs/changed-comp.c:
+ * gui/dialogs/comp-editor.c:
+ * gui/dialogs/delete-error.c:
+ * gui/dialogs/select-source-dialog.c:
+ Use "x-office-calendar" icon name instead of "stock_calendar".
+
+2008-08-01 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes bug #544857
+
+ * gui/memotypes.xml: Fix a typo.
+
+2008-08-01 Milan Crha <mcrha@redhat.com>
+
+ ** Part of fix for bug #353927
+
+ * gui/alarm-notify/alarm-queue.c: (tray_icon_blink_cb),
+ (display_notification): Do not blink the icon more than 15 seconds.
+
+2008-07-30 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #211267
+
+ * gui/print.c: (bound_text), (print_attendees), (print_day_event),
+ (print_todo_details), (print_comp_draw_real), (print_comp_draw_page),
+ (print_comp_begin_print), (print_comp): When printing only one event,
+ then divide it to more pages if required, also word-wrap description
+ text if necessary to fit the page.
+
+2008-07-29 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #329821
+
+ * gui/e-calendar-table.c: (query_tooltip_cb):
+ Recalculate returned row to the model row, if we are sorting.
+
+2008-07-20 Andre Klapper <a9016009@gmx.de>
+
+ * calendar.error.xml: Fix some strings. See bug #543753.
+
+2008-07-18 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes part of bug #542125
+
+ ** This set of changes migrates CompEditor, CompEditorPage and the
+ various subclasses from using BonoboUI to GtkUIManager for menus
+ and toolbars. It also substantially cleans up the code and
+ streamlines the CompEditorPage API, making more effective use
+ of GObject properties.
+
+ Core changes:
+ * gui/dialogs/comp-editor-page.c:
+ * gui/dialogs/comp-editor-page.h:
+ * gui/dialogs/comp-editor.c:
+ * gui/dialogs/comp-editor.h:
+ * gui/dialogs/event-editor.c:
+ * gui/dialogs/event-editor.h:
+ * gui/dialogs/event-page.c:
+ * gui/dialogs/event-page.h:
+ * gui/dialogs/memo-editor.c:
+ * gui/dialogs/memo-editor.h:
+ * gui/dialogs/memo-page.c:
+ * gui/dialogs/memo-page.h:
+ * gui/dialogs/recurrence-page.c:
+ * gui/dialogs/recurrence-page.h:
+ * gui/dialogs/schedule-page.c:
+ * gui/dialogs/schedule-page.h:
+ * gui/dialogs/task-details-page.c:
+ * gui/dialogs/task-details-page.h:
+ * gui/dialogs/task-editor.c:
+ * gui/dialogs/task-editor.h:
+ * gui/dialogs/task-page.c:
+ * gui/dialogs/task-page.h:
+
+ Supporting changes:
+ * gui/calendar-component.c:
+ * gui/comp-editor-factory.c:
+ * gui/e-cal-popup.c:
+ * gui/e-calendar-table.c:
+ * gui/e-calendar-view.c:
+ * gui/e-comp-editor-registry.c:
+ * gui/e-memo-table.c:
+ * gui/e-tasks.c:
+ * gui/gnome-cal.c:
+ * gui/memos-component.c:
+ * gui/tasks-component.c:
+ * gui/dialogs/alarm-dialog.c:
+ * gui/dialogs/comp-editor-util.c:
+
+2008-07-15 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #329821
+
+ * gui/e-calendar-table.c: (get_time_as_text), (query_tooltip_cb),
+ (e_calendar_table_init): Show tooltips over task's table.
+
2008-17-14 Paolo Borelli <pborelli@katamail.com>
** Fix for bug #542889
diff --git a/calendar/calendar.error.xml b/calendar/calendar.error.xml
index bca6593eb9..d7bd50b85d 100644
--- a/calendar/calendar.error.xml
+++ b/calendar/calendar.error.xml
@@ -231,14 +231,14 @@
<error id="prompt-read-only-cal" type="error" default="GTK_RESPONSE_YES">
<_primary>Cannot create a new event</_primary>
<!-- For Translators: {0} is the name of the calendar source -->
- <_secondary>'{0}' is a read-only calendar source. Switch to Calendar View and highlight a calendar that can accept appointments.</_secondary>
+ <_secondary>'{0}' is a read-only calendar and cannot be modified. Please select a different calendar from the side bar in the Calendar view.</_secondary>
<button stock ="gtk-ok" response="GTK_RESPONSE_YES"/>
</error>
<error id="prompt-read-only-cal-editor" type="error" default="GTK_RESPONSE_YES">
<_primary>Cannot save event</_primary>
<!-- For Translators: {0} is the name of the calendar source -->
- <_secondary>'{0}' is a read-only calendar source. Change Calendar to one that can accept appointments.</_secondary>
+ <_secondary>'{0}' is a read-only calendar and cannot be modified. Please select a different calendar that can accept appointments.</_secondary>
<button stock ="gtk-ok" response="GTK_RESPONSE_YES"/>
</error>
@@ -250,7 +250,7 @@
<error id="prompt-no-contents-offline-memos" type="error" default="GTK_RESPONSE_YES">
<_primary>Error loading memo list</_primary>
- <_secondary>The memo list is not marked for offline usage</_secondary>
+ <_secondary>The memo list is not marked for offline usage.</_secondary>
<button stock ="gtk-ok" response="GTK_RESPONSE_YES"/>
</error>
diff --git a/calendar/gui/GNOME_Evolution_Calendar.server.in.in b/calendar/gui/GNOME_Evolution_Calendar.server.in.in
index 577efc4130..ad228ff451 100644
--- a/calendar/gui/GNOME_Evolution_Calendar.server.in.in
+++ b/calendar/gui/GNOME_Evolution_Calendar.server.in.in
@@ -47,7 +47,7 @@
<oaf_attribute name="evolution:menu_accelerator" type="string" value="*Control*3"/>
<oaf_attribute name="evolution:button_label" type="string" _value="Calendars"/>
<oaf_attribute name="evolution:button_tooltips" type="string" _value="Calendars"/>
- <oaf_attribute name="evolution:button_icon" type="string" value="stock_calendar"/>
+ <oaf_attribute name="evolution:button_icon" type="string" value="x-office-calendar"/>
<oaf_attribute name="evolution:button_sort_order" type="string" value="-8"/>
<!-- FIXME: See bug 407104: Write a interface to launch without shell.
@@ -74,8 +74,8 @@
<oaf_attribute name="evolution:menu_accelerator" type="string" value="*Control*4"/>
<oaf_attribute name="evolution:button_label" type="string" _value="Tasks"/>
<oaf_attribute name="evolution:button_tooltips" type="string" _value="Tasks"/>
- <oaf_attribute name="evolution:button_icon" type="string" value="stock_todo"/>
- <oaf_attribute name="evolution:button_sort_order" type="string" value="-8"/>
+ <oaf_attribute name="evolution:button_icon" type="string" value="evolution-tasks"/>
+ <oaf_attribute name="evolution:button_sort_order" type="string" value="-7"/>
<oaf_attribute name="evolution:uri_schemas" type="stringv">
<item value="task"/>
@@ -99,8 +99,8 @@
<oaf_attribute name="evolution:menu_accelerator" type="string" value="*Control*5"/>
<oaf_attribute name="evolution:button_label" type="string" _value="Memos"/>
<oaf_attribute name="evolution:button_tooltips" type="string" _value="Memos"/>
- <oaf_attribute name="evolution:button_icon" type="string" value="stock_notes"/>
- <oaf_attribute name="evolution:button_sort_order" type="string" value="-8"/>
+ <oaf_attribute name="evolution:button_icon" type="string" value="evolution-memos"/>
+ <oaf_attribute name="evolution:button_sort_order" type="string" value="-6"/>
</oaf_server>
<oaf_server iid="OAFIID:GNOME_Evolution_Calendar_CompEditorFactory:@VERSION@"
diff --git a/calendar/gui/alarm-notify/alarm-queue.c b/calendar/gui/alarm-notify/alarm-queue.c
index 9bc19d4aad..219dfdc82d 100644
--- a/calendar/gui/alarm-notify/alarm-queue.c
+++ b/calendar/gui/alarm-notify/alarm-queue.c
@@ -79,7 +79,7 @@ static GList *tray_icons_list = NULL;
/* Top Tray Image */
static GtkStatusIcon *tray_icon = NULL;
static int tray_blink_id = -1;
-static int tray_blink_state = FALSE;
+static int tray_blink_countdown = 0;
static AlarmNotify *an;
/* Structure that stores a client we are monitoring */
@@ -1383,11 +1383,13 @@ popup_menu (GtkStatusIcon *icon, guint button, guint activate_time)
static gboolean
tray_icon_blink_cb (gpointer data)
{
+ static gboolean tray_blink_state = FALSE;
GdkPixbuf *pixbuf;
- tray_blink_state = tray_blink_state == TRUE ? FALSE: TRUE;
+ tray_blink_countdown--;
+ tray_blink_state = !tray_blink_state;
- pixbuf = e_icon_factory_get_icon (tray_blink_state == TRUE?
+ pixbuf = e_icon_factory_get_icon ((tray_blink_state || tray_blink_countdown <= 0)?
"stock_appointment-reminder-excl" :
"stock_appointment-reminder",
E_ICON_SIZE_LARGE_TOOLBAR);
@@ -1396,7 +1398,10 @@ tray_icon_blink_cb (gpointer data)
gtk_status_icon_set_from_pixbuf (tray_icon, pixbuf);
g_object_unref (pixbuf);
- return TRUE;
+ if (tray_blink_countdown <= 0)
+ tray_blink_id = -1;
+
+ return tray_blink_countdown > 0;
}
@@ -1536,8 +1541,10 @@ display_notification (time_t trigger, CompQueuedAlarms *cqa,
open_alarm_dialog (tray_data);
gtk_window_stick (GTK_WINDOW (alarm_notifications_dialog->dialog));
} else {
- if (tray_blink_id == -1)
+ if (tray_blink_id == -1) {
+ tray_blink_countdown = 30;
tray_blink_id = g_timeout_add (500, tray_icon_blink_cb, tray_data);
+ }
}
}
diff --git a/calendar/gui/calendar-component.c b/calendar/gui/calendar-component.c
index 5ec0c400dc..b30729c554 100644
--- a/calendar/gui/calendar-component.c
+++ b/calendar/gui/calendar-component.c
@@ -613,7 +613,7 @@ edit_calendar_cb (EPopup *ep, EPopupItem *pitem, void *data)
}
static EPopupItem ecc_source_popups[] = {
- { E_POPUP_ITEM, "10.new", N_("_New Calendar"), new_calendar_cb, NULL, "stock_calendar", 0, 0 },
+ { E_POPUP_ITEM, "10.new", N_("_New Calendar"), new_calendar_cb, NULL, "x-office-calendar", 0, 0 },
{ E_POPUP_ITEM, "15.copy", N_("_Copy..."), copy_calendar_cb, NULL, "edit-copy", 0, E_CAL_POPUP_SOURCE_PRIMARY },
{ E_POPUP_BAR, "20.bar" },
@@ -1399,7 +1399,7 @@ create_component_view (CalendarComponent *calendar_component)
GTK_SHADOW_IN);
gtk_widget_show (selector_scrolled_window);
- component_view->info_label = (EInfoLabel *)e_info_label_new("stock_calendar");
+ component_view->info_label = (EInfoLabel *)e_info_label_new("x-office-calendar");
e_info_label_set_info (component_view->info_label, _("Calendars"), "");
gtk_widget_show (GTK_WIDGET (component_view->info_label));
@@ -1594,7 +1594,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[0].id = CREATE_EVENT_ID;
list->_buffer[0].description = _("New appointment");
- list->_buffer[0].menuDescription = _("_Appointment");
+ list->_buffer[0].menuDescription = (char *) C_("New", "_Appointment");
list->_buffer[0].tooltip = _("Create a new appointment");
list->_buffer[0].menuShortcut = 'a';
list->_buffer[0].iconName = "appointment-new";
@@ -1602,7 +1602,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[1].id = CREATE_MEETING_ID;
list->_buffer[1].description = _("New meeting");
- list->_buffer[1].menuDescription = _("M_eeting");
+ list->_buffer[1].menuDescription = (char *) C_("New", "M_eeting");
list->_buffer[1].tooltip = _("Create a new meeting request");
list->_buffer[1].menuShortcut = 'e';
list->_buffer[1].iconName = "stock_new-meeting";
@@ -1610,7 +1610,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[2].id = CREATE_ALLDAY_EVENT_ID;
list->_buffer[2].description = _("New all day appointment");
- list->_buffer[2].menuDescription = _("All Day A_ppointment");
+ list->_buffer[2].menuDescription = (char *) C_("New", "All Day A_ppointment");
list->_buffer[2].tooltip = _("Create a new all-day appointment");
list->_buffer[2].menuShortcut = '\0';
list->_buffer[2].iconName = "stock_new-24h-appointment";
@@ -1618,10 +1618,10 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[3].id = CREATE_CALENDAR_ID;
list->_buffer[3].description = _("New calendar");
- list->_buffer[3].menuDescription = _("Cale_ndar");
+ list->_buffer[3].menuDescription = (char *) C_("New", "Cale_ndar");
list->_buffer[3].tooltip = _("Create a new calendar");
list->_buffer[3].menuShortcut = '\0';
- list->_buffer[3].iconName = "stock_calendar";
+ list->_buffer[3].iconName = "x-office-calendar";
list->_buffer[3].type = GNOME_Evolution_CREATABLE_FOLDER;
return list;
diff --git a/calendar/gui/dialogs/alarm-dialog.c b/calendar/gui/dialogs/alarm-dialog.c
index 9a57a9c8e5..48402bbab3 100644
--- a/calendar/gui/dialogs/alarm-dialog.c
+++ b/calendar/gui/dialogs/alarm-dialog.c
@@ -1178,7 +1178,7 @@ alarm_dialog_run (GtkWidget *parent, ECal *ecal, ECalComponentAlarm *alarm)
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog.toplevel)->vbox), 0);
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog.toplevel)->action_area), 12);
- icon_list = e_icon_factory_get_icon_list ("stock_calendar");
+ icon_list = e_icon_factory_get_icon_list ("x-office-calendar");
if (icon_list) {
gtk_window_set_icon_list (GTK_WINDOW (dialog.toplevel), icon_list);
g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
diff --git a/calendar/gui/dialogs/alarm-list-dialog.c b/calendar/gui/dialogs/alarm-list-dialog.c
index 99230f667e..8bce8f0eaa 100644
--- a/calendar/gui/dialogs/alarm-list-dialog.c
+++ b/calendar/gui/dialogs/alarm-list-dialog.c
@@ -293,7 +293,7 @@ alarm_list_dialog_run (GtkWidget *parent, ECal *ecal, EAlarmList *list_store)
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog.toplevel)->vbox), 0);
gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog.toplevel)->action_area), 12);
- icon_list = e_icon_factory_get_icon_list ("stock_calendar");
+ icon_list = e_icon_factory_get_icon_list ("x-office-calendar");
if (icon_list) {
gtk_window_set_icon_list (GTK_WINDOW (dialog.toplevel), icon_list);
g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
diff --git a/calendar/gui/dialogs/changed-comp.c b/calendar/gui/dialogs/changed-comp.c
index c2d5f4e365..c994fb6303 100644
--- a/calendar/gui/dialogs/changed-comp.c
+++ b/calendar/gui/dialogs/changed-comp.c
@@ -105,7 +105,7 @@ changed_component_dialog (GtkWindow *parent, ECalComponent *comp, gboolean delet
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_YES_NO, "%s", str);
- icon_list = e_icon_factory_get_icon_list ("stock_calendar");
+ icon_list = e_icon_factory_get_icon_list ("x-office-calendar");
if (icon_list) {
gtk_window_set_icon_list (GTK_WINDOW (dialog), icon_list);
g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c
index ae56633d85..9a08009b6c 100644
--- a/calendar/gui/dialogs/comp-editor.c
+++ b/calendar/gui/dialogs/comp-editor.c
@@ -927,7 +927,7 @@ update_window_border (CompEditor *editor,
if (editor->priv->comp == NULL) {
title = g_strdup (_("Edit Appointment"));
- icon_name = "stock_calendar";
+ icon_name = "x-office-calendar";
goto exit;
} else switch (e_cal_component_get_vtype (editor->priv->comp)) {
diff --git a/calendar/gui/dialogs/delete-error.c b/calendar/gui/dialogs/delete-error.c
index 6c5462837d..d1280da16a 100644
--- a/calendar/gui/dialogs/delete-error.c
+++ b/calendar/gui/dialogs/delete-error.c
@@ -106,7 +106,7 @@ delete_error_dialog (GError *error, ECalComponentVType vtype)
GTK_MESSAGE_ERROR,
GTK_BUTTONS_OK, "%s", str);
if (vtype == E_CAL_COMPONENT_EVENT)
- icon_list = e_icon_factory_get_icon_list ("stock_calendar");
+ icon_list = e_icon_factory_get_icon_list ("x-office-calendar");
else if (vtype == E_CAL_COMPONENT_TODO)
icon_list = e_icon_factory_get_icon_list ("stock_todo");
diff --git a/calendar/gui/dialogs/select-source-dialog.c b/calendar/gui/dialogs/select-source-dialog.c
index 624cfe90fe..a669dfcafc 100644
--- a/calendar/gui/dialogs/select-source-dialog.c
+++ b/calendar/gui/dialogs/select-source-dialog.c
@@ -58,7 +58,7 @@ select_source_dialog (GtkWindow *parent, ECalSourceType obj_type)
dialog = e_source_selector_dialog_new (parent, source_list);
if (obj_type == E_CAL_SOURCE_TYPE_EVENT)
- icon_list = e_icon_factory_get_icon_list ("stock_calendar");
+ icon_list = e_icon_factory_get_icon_list ("x-office-calendar");
else if (obj_type == E_CAL_SOURCE_TYPE_TODO)
icon_list = e_icon_factory_get_icon_list ("stock_todo");
else if (obj_type == E_CAL_SOURCE_TYPE_JOURNAL)
diff --git a/calendar/gui/dialogs/task-details-page.c b/calendar/gui/dialogs/task-details-page.c
index bfc0a12e2d..487ed4e9c5 100644
--- a/calendar/gui/dialogs/task-details-page.c
+++ b/calendar/gui/dialogs/task-details-page.c
@@ -522,6 +522,9 @@ date_changed_cb (EDateEdit *dedit,
icalproperty_status status;
gboolean date_set;
+ tdpage = TASK_DETAILS_PAGE (data);
+ priv = tdpage->priv;
+
if (comp_editor_page_get_updating (COMP_EDITOR_PAGE (tdpage)))
return;
diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c
index 7c5400568c..31c10b5dc2 100644
--- a/calendar/gui/dialogs/task-page.c
+++ b/calendar/gui/dialogs/task-page.c
@@ -1482,6 +1482,9 @@ date_changed_cb (EDateEdit *dedit,
struct icaltimetype start_tt = icaltime_null_time();
struct icaltimetype due_tt = icaltime_null_time();
+ tpage = TASK_PAGE (data);
+ priv = tpage->priv;
+
if (comp_editor_page_get_updating (COMP_EDITOR_PAGE (tpage)))
return;
diff --git a/calendar/gui/e-calendar-table.c b/calendar/gui/e-calendar-table.c
index e7c0efe417..4038c73c04 100644
--- a/calendar/gui/e-calendar-table.c
+++ b/calendar/gui/e-calendar-table.c
@@ -37,6 +37,7 @@
#include <glib/gi18n.h>
#include <glib/gstdio.h>
#include <gnome.h>
+#include <gtk/gtktooltip.h>
#include <misc/e-gui-utils.h>
#include <table/e-cell-checkbox.h>
#include <table/e-cell-toggle.h>
@@ -46,6 +47,8 @@
#include <e-util/e-util-private.h>
#include <misc/e-cell-date-edit.h>
#include <misc/e-cell-percent.h>
+#include <libecal/e-cal-time-util.h>
+#include <libedataserver/e-time-utils.h>
#include "calendar-component.h"
#include "calendar-config.h"
@@ -54,6 +57,7 @@
#include "dialogs/task-editor.h"
#include "e-cal-model-tasks.h"
#include "e-calendar-table.h"
+#include "e-calendar-view.h"
#include "e-cell-date-edit-text.h"
#include "e-comp-editor-registry.h"
#include "print.h"
@@ -260,6 +264,209 @@ row_appended_cb (ECalModel *model, ECalendarTable *cal_table)
}
static void
+get_time_as_text (struct icaltimetype *tt, icaltimezone *f_zone, icaltimezone *t_zone, char *buff, int buff_len)
+{
+ struct tm tmp_tm;
+
+ buff [0] = 0;
+
+ tmp_tm = icaltimetype_to_tm_with_zone (tt, f_zone, t_zone);
+ e_time_format_date_and_time (&tmp_tm,
+ calendar_config_get_24_hour_format (),
+ FALSE, FALSE,
+ buff, buff_len);
+}
+
+static gboolean
+query_tooltip_cb (GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip, gpointer user_data)
+{
+ ECalendarTable *cal_table;
+ ECalModelComponent *comp;
+ int row = -1, col = -1;
+ GtkWidget *box, *l, *w;
+ GtkStyle *style = gtk_widget_get_default_style ();
+ char *tmp;
+ const char *str;
+ GString *tmp2;
+ char buff[1001];
+ gboolean free_text = FALSE;
+ ECalComponent *new_comp;
+ ECalComponentOrganizer organizer;
+ ECalComponentDateTime dtstart, dtdue;
+ icaltimezone *zone, *default_zone;
+ GSList *desc, *p;
+ int len;
+ ETable *etable;
+ ESelectionModel *esm;
+
+ if (keyboard_mode)
+ return FALSE;
+
+ g_return_val_if_fail (widget != NULL, FALSE);
+ g_return_val_if_fail (E_IS_CALENDAR_TABLE (user_data), FALSE);
+ g_return_val_if_fail (tooltip != NULL, FALSE);
+
+ cal_table = E_CALENDAR_TABLE (user_data);
+
+ etable = e_calendar_table_get_table (cal_table);
+ e_table_get_mouse_over_cell (etable, x, y, &row, &col);
+ if (row == -1 || !etable)
+ return FALSE;
+
+ /* respect sorting option, the 'e_table_get_mouse_over_cell' returns sorted row, not the model one */
+ esm = e_table_get_selection_model (etable);
+ if (esm && esm->sorter && e_sorter_needs_sorting (esm->sorter))
+ row = e_sorter_sorted_to_model (esm->sorter, row);
+
+ comp = e_cal_model_get_component_at (cal_table->model, row);
+ if (!comp || !comp->icalcomp)
+ return FALSE;
+
+ new_comp = e_cal_component_new ();
+ if (!e_cal_component_set_icalcomponent (new_comp, icalcomponent_new_clone (comp->icalcomp))) {
+ g_object_unref (new_comp);
+ return FALSE;
+ }
+
+ box = gtk_vbox_new (FALSE, 0);
+
+ str = e_calendar_view_get_icalcomponent_summary (comp->client, comp->icalcomp, &free_text);
+ if (!(str && *str)) {
+ if (free_text)
+ g_free ((char *)str);
+ free_text = FALSE;
+ str = _("* No Summary *");
+ }
+
+ l = gtk_label_new (NULL);
+ tmp = g_markup_printf_escaped ("<b>%s</b>", str);
+ gtk_label_set_line_wrap (GTK_LABEL (l), TRUE);
+ gtk_label_set_markup (GTK_LABEL (l), tmp);
+ gtk_misc_set_alignment (GTK_MISC (l), 0.0, 0.5);
+ w = gtk_event_box_new ();
+
+ gtk_widget_modify_bg (w, GTK_STATE_NORMAL, &(style->bg[GTK_STATE_SELECTED]));
+ gtk_widget_modify_fg (l, GTK_STATE_NORMAL, &(style->text[GTK_STATE_SELECTED]));
+ gtk_container_add (GTK_CONTAINER (w), l);
+ gtk_box_pack_start (GTK_BOX (box), w, TRUE, TRUE, 0);
+ g_free (tmp);
+
+ if (free_text)
+ g_free ((char *)str);
+ free_text = FALSE;
+
+ w = gtk_event_box_new ();
+ gtk_widget_modify_bg (w, GTK_STATE_NORMAL, &(style->bg[GTK_STATE_NORMAL]));
+
+ l = gtk_vbox_new (FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (w), l);
+ gtk_box_pack_start (GTK_BOX (box), w, FALSE, FALSE, 0);
+ w = l;
+
+ e_cal_component_get_organizer (new_comp, &organizer);
+ if (organizer.cn) {
+ char *ptr ;
+ ptr = strchr( organizer.value, ':');
+
+ if (ptr) {
+ ptr++;
+ /* To Translators: It will display "Organiser: NameOfTheUser <email@ofuser.com>" */
+ tmp = g_strdup_printf (_("Organizer: %s <%s>"), organizer.cn, ptr);
+ } else {
+ /* With SunOne accounts, there may be no ':' in organiser.value */
+ tmp = g_strdup_printf (_("Organizer: %s"), organizer.cn);
+ }
+
+ l = gtk_label_new (tmp);
+ gtk_label_set_line_wrap (GTK_LABEL (l), FALSE);
+ gtk_misc_set_alignment (GTK_MISC (l), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (w), l, FALSE, FALSE, 0);
+ g_free (tmp);
+ }
+
+ e_cal_component_get_dtstart (new_comp, &dtstart);
+ e_cal_component_get_due (new_comp, &dtdue);
+
+ default_zone = e_cal_model_get_timezone (cal_table->model);
+
+ if (dtstart.tzid) {
+ zone = icalcomponent_get_timezone (e_cal_component_get_icalcomponent (new_comp), dtstart.tzid);
+ if (!zone)
+ e_cal_get_timezone (comp->client, dtstart.tzid, &zone, NULL);
+ if (!zone)
+ zone = default_zone;
+ } else {
+ zone = NULL;
+ }
+
+ tmp2 = g_string_new ("");
+
+ if (dtstart.value) {
+ get_time_as_text (dtstart.value, zone, default_zone, buff, 1000);
+
+ if (buff [0]) {
+ g_string_append (tmp2, _("Start: "));
+ g_string_append (tmp2, buff);
+ }
+ }
+
+ if (dtdue.value) {
+ get_time_as_text (dtdue.value, zone, default_zone, buff, 1000);
+
+ if (buff [0]) {
+ if (tmp2->len)
+ g_string_append (tmp2, "; ");
+
+ g_string_append (tmp2, _("Due: "));
+ g_string_append (tmp2, buff);
+ }
+ }
+
+ if (tmp2->len) {
+ l = gtk_label_new (tmp2->str);
+ gtk_misc_set_alignment (GTK_MISC (l), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (w), l, FALSE, FALSE, 0);
+ }
+
+ g_string_free (tmp2, TRUE);
+
+ e_cal_component_free_datetime (&dtstart);
+ e_cal_component_free_datetime (&dtdue);
+
+ tmp2 = g_string_new ("");
+ e_cal_component_get_description_list (new_comp, &desc);
+ for (len = 0, p = desc; p != NULL; p = p->next) {
+ ECalComponentText *text = p->data;
+
+ if (text->value != NULL) {
+ len += strlen (text->value);
+ g_string_append (tmp2, text->value);
+ if (len > 1024) {
+ g_string_set_size (tmp2, 1020);
+ g_string_append (tmp2, "...");
+ break;
+ }
+ }
+ }
+ e_cal_component_free_text_list (desc);
+
+ if (tmp2->len) {
+ l = gtk_label_new (tmp2->str);
+ gtk_misc_set_alignment (GTK_MISC (l), 0.0, 0.5);
+ gtk_box_pack_start (GTK_BOX (box), l, FALSE, FALSE, 0);
+ }
+
+ g_string_free (tmp2, TRUE);
+
+ gtk_widget_show_all (box);
+ gtk_tooltip_set_custom (tooltip, box);
+
+ g_object_unref (new_comp);
+
+ return TRUE;
+}
+
+static void
e_calendar_table_init (ECalendarTable *cal_table)
{
GtkWidget *table;
@@ -489,6 +696,8 @@ e_calendar_table_init (ECalendarTable *cal_table)
g_signal_connect (e_table, "right_click", G_CALLBACK (e_calendar_table_on_right_click), cal_table);
g_signal_connect (e_table, "key_press", G_CALLBACK (e_calendar_table_on_key_press), cal_table);
g_signal_connect (e_table, "popup_menu", G_CALLBACK (e_calendar_table_on_popup_menu), cal_table);
+ g_signal_connect (e_table, "query-tooltip", G_CALLBACK (query_tooltip_cb), cal_table);
+ gtk_widget_set_has_tooltip (GTK_WIDGET (e_table), TRUE);
a11y = gtk_widget_get_accessible ((GtkWidget *)e_table);
if (a11y)
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index b1ec9624c0..8fa9c61830 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -62,7 +62,7 @@
#include "misc.h"
/* Used for the status bar messages */
-#define EVOLUTION_CALENDAR_PROGRESS_IMAGE "stock_calendar"
+#define EVOLUTION_CALENDAR_PROGRESS_IMAGE "x-office-calendar"
static GdkPixbuf *progress_icon = NULL;
struct _ECalendarViewPrivate {
diff --git a/calendar/gui/memos-component.c b/calendar/gui/memos-component.c
index 0d95f2c2d8..d0d17b0945 100644
--- a/calendar/gui/memos-component.c
+++ b/calendar/gui/memos-component.c
@@ -1098,7 +1098,7 @@ create_component_view (MemosComponent *memos_component)
GTK_SHADOW_IN);
gtk_widget_show (selector_scrolled_window);
- component_view->info_label = (EInfoLabel *)e_info_label_new("stock_insert-note");
+ component_view->info_label = (EInfoLabel *)e_info_label_new("evolution-memos");
e_info_label_set_info(component_view->info_label, _("Memos"), "");
gtk_widget_show (GTK_WIDGET (component_view->info_label));
@@ -1258,7 +1258,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[0].id = CREATE_MEMO_ID;
list->_buffer[0].description = _("New memo");
- list->_buffer[0].menuDescription = _("Mem_o");
+ list->_buffer[0].menuDescription = (char *) C_("New", "Mem_o");
list->_buffer[0].tooltip = _("Create a new memo");
list->_buffer[0].menuShortcut = 'o';
list->_buffer[0].iconName = "stock_insert-note";
@@ -1266,7 +1266,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[1].id = CREATE_SHARED_MEMO_ID;
list->_buffer[1].description = _("New shared memo");
- list->_buffer[1].menuDescription = _("_Shared memo");
+ list->_buffer[1].menuDescription = (char *) C_("New", "_Shared memo");
list->_buffer[1].tooltip = _("Create a shared new memo");
list->_buffer[1].menuShortcut = 'h';
list->_buffer[1].iconName = "stock_insert-note";
@@ -1274,7 +1274,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[2].id = CREATE_MEMO_LIST_ID;
list->_buffer[2].description = _("New memo list");
- list->_buffer[2].menuDescription = _("Memo li_st");
+ list->_buffer[2].menuDescription = (char *) C_("New", "Memo li_st");
list->_buffer[2].tooltip = _("Create a new memo list");
list->_buffer[2].menuShortcut = '\0';
list->_buffer[2].iconName = "stock_notes";
diff --git a/calendar/gui/memotypes.xml b/calendar/gui/memotypes.xml
index f27da759cf..3b9a560a96 100644
--- a/calendar/gui/memotypes.xml
+++ b/calendar/gui/memotypes.xml
@@ -121,7 +121,7 @@
<_title>International</_title>
</option>
<option value="Next 7 days">
- <_title>Next 7 Days'</_title>
+ <_title>Next 7 Days</_title>
</option>
<option value="Birthday">
<_title>Birthday</_title>
@@ -139,7 +139,7 @@
<_title>Key Customer</_title>
</option>
<option value="Time &amp; Expenses">
- <_title>Time &amp; Expenses </_title>
+ <_title>Time &amp; Expenses</_title>
</option>
<option value="Miscellaneous">
<_title>Miscellaneous</_title>
diff --git a/calendar/gui/print.c b/calendar/gui/print.c
index f208d62bde..9caf4fbdf9 100644
--- a/calendar/gui/print.c
+++ b/calendar/gui/print.c
@@ -710,9 +710,10 @@ print_month_small (GtkPrintContext *context, GnomeCalendar *gcal, time_t month,
static double
bound_text (GtkPrintContext *context,
PangoFontDescription *font,
- const gchar *text,
+ const gchar *text, gint len,
gdouble x1, gdouble y1,
- gdouble x2, gdouble y2)
+ gdouble x2, gdouble y2,
+ gboolean can_wrap, gdouble *last_page_start, gint *pages)
{
PangoLayout *layout;
gint layout_width, layout_height;
@@ -722,23 +723,38 @@ bound_text (GtkPrintContext *context,
layout = gtk_print_context_create_pango_layout (context);
pango_layout_set_font_description (layout, font);
- pango_layout_set_text (layout, text, -1);
+ pango_layout_set_text (layout, text, len);
pango_layout_set_width (layout, pango_units_from_double (x2 - x1));
+
+ if (can_wrap)
+ pango_layout_set_wrap (layout, PANGO_WRAP_WORD_CHAR);
+
pango_layout_get_size (layout, &layout_width, &layout_height);
- cairo_save (cr);
+ if (last_page_start && y1 + pango_units_to_double (layout_height) > y2 + (*last_page_start)) {
+ /* draw this on new page */
+ if (pages)
+ *pages = *pages + 1;
- /* Set a clipping rectangle. */
- cairo_move_to (cr, x1, y1);
- cairo_rectangle (cr, x1, y1, x2, y2);
- cairo_clip (cr);
- cairo_new_path (cr);
+ *last_page_start = *last_page_start + y2;
+ y1 = *last_page_start + 10.0;
+ }
- cairo_move_to (cr, x1, y1);
- pango_cairo_show_layout (cr, layout);
- cairo_stroke (cr);
+ if (!last_page_start || (y1 >= 0.0 && y1 < y2)) {
+ cairo_save (cr);
- cairo_restore (cr);
+ /* Set a clipping rectangle. */
+ cairo_move_to (cr, x1, y1);
+ cairo_rectangle (cr, x1, y1, x2, y2);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+
+ cairo_move_to (cr, x1, y1);
+ pango_cairo_show_layout (cr, layout);
+ cairo_stroke (cr);
+
+ cairo_restore (cr);
+ }
g_object_unref (layout);
@@ -992,7 +1008,7 @@ get_role_as_string (icalparameter_role role)
static double
print_attendees (GtkPrintContext *context, PangoFontDescription *font, cairo_t *cr,
double left, double right, double top, double bottom,
- ECalComponent *comp)
+ ECalComponent *comp, gint page_nr, gint *pages)
{
GSList *attendees = NULL, *l;
@@ -1035,7 +1051,7 @@ print_attendees (GtkPrintContext *context, PangoFontDescription *font, cairo_t *
cairo_show_page (cr);
}
- top = bound_text (context, font, text->str, left + 40.0, top, right, bottom);
+ top = bound_text (context, font, text->str, -1, left + 40.0, top, right, bottom, FALSE, NULL, pages);
g_string_free (text, TRUE);
}
@@ -1213,7 +1229,7 @@ print_day_event (GtkPrintContext *context, PangoFontDescription *font,
g_free (t);
}
- bound_text (context, font, text, x1 + 2, y1, x2 - 2, y2);
+ bound_text (context, font, text, -1, x1 + 2, y1, x2 - 2, y2, FALSE, NULL, NULL);
if (free_text)
g_free (text);
@@ -2014,8 +2030,8 @@ print_todo_details (GtkPrintContext *context, GnomeCalendar *gcal,
cairo_stroke (cr);
}
- y = bound_text (context, font_summary, summary.value,
- x + 14, y + 4, xend, yend);
+ y = bound_text (context, font_summary, summary.value, -1,
+ x + 14, y + 4, xend, yend, FALSE, NULL, NULL);
y += get_font_size (font_summary)-5;
@@ -2404,8 +2420,9 @@ print_calendar (GnomeCalendar *gcal, GtkPrintOperationAction action,
g_object_unref (operation);
}
-static void
-print_comp_draw_page (GtkPrintOperation *operation,
+/* returns number of required pages, when page_nr is -1 */
+static gint
+print_comp_draw_real (GtkPrintOperation *operation,
GtkPrintContext *context,
gint page_nr,
PrintCompItem *pci)
@@ -2423,14 +2440,25 @@ print_comp_draw_page (GtkPrintOperation *operation,
char *categories_string, *location_string, *summary_string;
double header_size;
cairo_t *cr;
- gdouble width, height;
+ gdouble width, height, page_start;
double top;
+ gint pages = 1;
setup = gtk_print_context_get_page_setup (context);
width = gtk_page_setup_get_page_width (setup, GTK_UNIT_POINTS);
height = gtk_page_setup_get_page_height (setup, GTK_UNIT_POINTS);
+ top = 0.0;
+
+ /* either draw only the right page or do not draw anything when calculating number of pages */
+ if (page_nr != -1)
+ top = top - ((page_nr) * height);
+ else
+ top = height;
+
+ page_start = top;
+
/* PrintCompItem structure contains elements to be used
* with the Print Context , obtained in comp_draw_page
*/
@@ -2447,27 +2475,30 @@ print_comp_draw_page (GtkPrintOperation *operation,
else if (vtype == E_CAL_COMPONENT_JOURNAL)
title = _("Memo");
else
- return;
+ return pages;
cr = gtk_print_context_get_cairo_context (context);
/* Print the title in a box at the top of the page. */
font = get_font_for_size (18, PANGO_WEIGHT_BOLD);
header_size = 40;
- print_border (context, 0.0, width, 0.0, header_size,
- 1.0, 0.9);
- print_text (context, font, title, PANGO_ALIGN_CENTER, 0.0, width,
- 0.1, header_size - 0.1);
- pango_font_description_free (font);
- top = header_size + 30;
+ if (page_nr == 0) {
+ print_border (context, 0.0, width, 0.0, header_size,
+ 1.0, 0.9);
+ print_text (context, font, title, PANGO_ALIGN_CENTER, 0.0, width,
+ 0.1, header_size - 0.1);
+ pango_font_description_free (font);
+ }
+
+ top += header_size + 30;
/* Summary */
font = get_font_for_size (18, PANGO_WEIGHT_BOLD);
e_cal_component_get_summary (comp, &text);
summary_string = g_strdup_printf (_("Summary: %s"), text.value);
- top = bound_text (context, font, summary_string, 0.0, top, width,
- height);
+ top = bound_text (context, font, summary_string, -1, 0.0, top, width,
+ height, FALSE, &page_start, &pages);
g_free (summary_string);
@@ -2476,21 +2507,22 @@ print_comp_draw_page (GtkPrintOperation *operation,
if (location && location[0]) {
location_string = g_strdup_printf (_("Location: %s"),
location);
- top = bound_text (context, font, location_string, 0.0,
- top + 3, width, height);
+ top = bound_text (context, font, location_string, -1, 0.0,
+ top + 3, width, height, FALSE, &page_start, &pages);
g_free (location_string);
}
/* Date information */
- print_date_label (context, comp, client, 0.0, width, top + 3, top + 15);
+ if (page_nr == 0)
+ print_date_label (context, comp, client, 0.0, width, top + 3, top + 15);
top += 20;
/* Attendees */
if (e_cal_component_has_attendees (comp)) {
- top = bound_text (context, font, _("Attendees: "), 0.0, top, width, height);
+ top = bound_text (context, font, _("Attendees: "), -1, 0.0, top, width, height, FALSE, &page_start, &pages);
pango_font_description_free (font);
font = get_font_for_size (12, PANGO_WEIGHT_NORMAL);
- top = print_attendees (context, font, cr, 0.0, width, top, height, comp);
+ top = print_attendees (context, font, cr, 0.0, width, top, height, comp, page_nr, &pages);
top += get_font_size (font) - 6;
}
@@ -2529,8 +2561,8 @@ print_comp_draw_page (GtkPrintOperation *operation,
if (status_string) {
char *status_text = g_strdup_printf (_("Status: %s"),
status_string);
- top = bound_text (context, font, status_text,
- 0.0, top, width, height);
+ top = bound_text (context, font, status_text, -1,
+ 0.0, top, width, height, FALSE, &page_start, &pages);
top += get_font_size (font) - 6;
g_free (status_text);
}
@@ -2545,8 +2577,8 @@ print_comp_draw_page (GtkPrintOperation *operation,
e_cal_component_free_priority (priority);
pri_text = g_strdup_printf (_("Priority: %s"), priority_string);
- top = bound_text (context, font, pri_text,
- 0.0, top, width, height);
+ top = bound_text (context, font, pri_text, -1,
+ 0.0, top, width, height, FALSE, &page_start, &pages);
top += get_font_size (font) - 6;
g_free (pri_text);
}
@@ -2559,8 +2591,8 @@ print_comp_draw_page (GtkPrintOperation *operation,
percent_string = g_strdup_printf (_("Percent Complete: %i"), *percent);
e_cal_component_free_percent (percent);
- top = bound_text (context, font, percent_string,
- 0.0, top, width, height);
+ top = bound_text (context, font, percent_string, -1,
+ 0.0, top, width, height, FALSE, &page_start, &pages);
top += get_font_size (font) - 6;
}
@@ -2571,8 +2603,8 @@ print_comp_draw_page (GtkPrintOperation *operation,
char *url_string = g_strdup_printf (_("URL: %s"),
url);
- top = bound_text (context, font, url_string,
- 0.0, top, width, height);
+ top = bound_text (context, font, url_string, -1,
+ 0.0, top, width, height, TRUE, &page_start, &pages);
top += get_font_size (font) - 6;
g_free (url_string);
}
@@ -2583,8 +2615,8 @@ print_comp_draw_page (GtkPrintOperation *operation,
if (categories && categories[0]) {
categories_string = g_strdup_printf (_("Categories: %s"),
categories);
- top = bound_text (context, font, categories_string,
- 0.0, top, width, height);
+ top = bound_text (context, font, categories_string, -1,
+ 0.0, top, width, height, TRUE, &page_start, &pages);
top += get_font_size (font) - 6 ;
g_free (categories_string);
}
@@ -2602,8 +2634,8 @@ print_comp_draw_page (GtkPrintOperation *operation,
}
e_cal_component_free_text_list (contact_list);
- top = bound_text (context, font, contacts->str,
- 0.0, top, width, height);
+ top = bound_text (context, font, contacts->str, -1,
+ 0.0, top, width, height, TRUE, &page_start, &pages);
top += get_font_size (font) - 6;
g_string_free (contacts, TRUE);
}
@@ -2612,19 +2644,48 @@ print_comp_draw_page (GtkPrintOperation *operation,
/* Description */
e_cal_component_get_description_list (comp, &desc);
for (l = desc; l != NULL; l = l->next) {
- ECalComponentText *text = l->data;
- if (top > height) {
- top = 10; //FIXME
- cairo_show_page (cr);
+ ECalComponentText *ptext = l->data;
+ const char *line, *next_line;
+
+ for (line = ptext->value; line != NULL; line = next_line) {
+ next_line = strchr (line, '\n');
+
+ top = bound_text (context, font, line, next_line ? next_line - line : -1, 0.0, top + 3, width, height, TRUE, &page_start, &pages);
+
+ if (next_line) {
+ next_line ++;
+ if (!*next_line)
+ next_line = NULL;
+ }
}
- if (text->value != NULL)
- top = bound_text (context, font, text->value, 0.0, top + 3, width, height) + 30;
}
e_cal_component_free_text_list (desc);
pango_font_description_free (font);
+ return pages;
+}
+
+static void
+print_comp_draw_page (GtkPrintOperation *operation,
+ GtkPrintContext *context,
+ gint page_nr,
+ PrintCompItem *pci)
+{
+ print_comp_draw_real (operation, context, page_nr, pci);
+}
+
+static void
+print_comp_begin_print (GtkPrintOperation *operation,
+ GtkPrintContext *context,
+ PrintCompItem *pci)
+{
+ gint pages;
+
+ pages = print_comp_draw_real (operation, context, -1, pci);
+
+ gtk_print_operation_set_n_pages (operation, pages);
}
void
@@ -2642,6 +2703,10 @@ print_comp (ECalComponent *comp, ECal *client, GtkPrintOperationAction action)
gtk_print_operation_set_n_pages (operation, 1);
g_signal_connect (
+ operation, "begin-print",
+ G_CALLBACK (print_comp_begin_print), &pci);
+
+ g_signal_connect (
operation, "draw-page",
G_CALLBACK (print_comp_draw_page), &pci);
diff --git a/calendar/gui/tasks-component.c b/calendar/gui/tasks-component.c
index 3188b97d62..b7f6cc6ea2 100644
--- a/calendar/gui/tasks-component.c
+++ b/calendar/gui/tasks-component.c
@@ -1087,7 +1087,7 @@ create_component_view (TasksComponent *tasks_component)
GTK_SHADOW_IN);
gtk_widget_show (selector_scrolled_window);
- component_view->info_label = (EInfoLabel *)e_info_label_new("stock_task");
+ component_view->info_label = (EInfoLabel *)e_info_label_new("evolution-tasks");
e_info_label_set_info(component_view->info_label, _("Tasks"), "");
gtk_widget_show (GTK_WIDGET (component_view->info_label));
@@ -1323,7 +1323,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[0].id = CREATE_TASK_ID;
list->_buffer[0].description = _("New task");
- list->_buffer[0].menuDescription = _("_Task");
+ list->_buffer[0].menuDescription = (char *) C_("New", "_Task");
list->_buffer[0].tooltip = _("Create a new task");
list->_buffer[0].menuShortcut = 't';
list->_buffer[0].iconName = "stock_task";
@@ -1331,7 +1331,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[1].id = CREATE_TASK_ASSIGNED_ID;
list->_buffer[1].description = _("New assigned task");
- list->_buffer[1].menuDescription = _("Assigne_d Task");
+ list->_buffer[1].menuDescription = (char *) C_("New", "Assigne_d Task");
list->_buffer[1].tooltip = _("Create a new assigned task");
list->_buffer[1].menuShortcut = '\0';
list->_buffer[1].iconName = "stock_task";
@@ -1339,7 +1339,7 @@ impl__get_userCreatableItems (PortableServer_Servant servant,
list->_buffer[2].id = CREATE_TASK_LIST_ID;
list->_buffer[2].description = _("New task list");
- list->_buffer[2].menuDescription = _("Tas_k list");
+ list->_buffer[2].menuDescription = (char *) C_("New", "Tas_k list");
list->_buffer[2].tooltip = _("Create a new task list");
list->_buffer[2].menuShortcut = '\0';
list->_buffer[2].iconName = "stock_todo";
diff --git a/composer/ChangeLog b/composer/ChangeLog
index 1eeb5bb7e2..56e33a762b 100644
--- a/composer/ChangeLog
+++ b/composer/ChangeLog
@@ -1,3 +1,18 @@
+2008-08-01 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes bug #428384
+
+ * mail-composer.error.xml:
+ Improve buttons in the "exit-unsaved" dialog by replacing "Cancel"
+ with "Continue Editing" and "Save Message" with "Save Draft".
+ Suggested by bytesmythe.
+
+2008-07-20 Bharath Acharya <abharath@novell.com>
+
+ ** Fix for bug #200147
+
+ * evolution-composer.ui: Added a Template placeholder
+
2008-07-09 Milan Crha <mcrha@redhat.com>
** Fix for bug #206592
diff --git a/composer/evolution-composer.ui b/composer/evolution-composer.ui
index 7413770af9..1b8957640f 100644
--- a/composer/evolution-composer.ui
+++ b/composer/evolution-composer.ui
@@ -9,6 +9,7 @@
<menuitem action='save'/>
<menuitem action='save-as'/>
<menuitem action='save-draft'/>
+ <placeholder name='template-holder'/>
<separator/>
<menuitem action='print-preview'/>
<menuitem action='print'/>
diff --git a/composer/mail-composer.error.xml b/composer/mail-composer.error.xml
index 210756bb52..6f76887bc8 100644
--- a/composer/mail-composer.error.xml
+++ b/composer/mail-composer.error.xml
@@ -46,8 +46,8 @@
<_primary>Are you sure you want to discard the message, titled '{0}', you are composing?</_primary>
<_secondary>Closing this composer window will discard the message permanently, unless you choose to save the message in your Drafts folder. This will allow you to continue the message at a later date.</_secondary>
<button _label="_Discard Changes" response="GTK_RESPONSE_NO"/>
- <button stock="gtk-cancel" response="GTK_RESPONSE_CANCEL"/>
- <button _label="_Save Message" response="GTK_RESPONSE_YES"/>
+ <button _label="_Continue Editing" response="GTK_RESPONSE_CANCEL"/>
+ <button _label="_Save Draft" response="GTK_RESPONSE_YES"/>
</error>
<error id="no-build-message" type="error" modal="true">
diff --git a/configure.in b/configure.in
index 9b9d837414..a01bbc59e8 100644
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.52)
-AC_INIT(evolution, 2.23.5, http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution)
+AC_INIT(evolution, 2.23.90, http://bugzilla.gnome.org/enter_bug.cgi?product=Evolution)
AC_CONFIG_SRCDIR(README)
# Some requirements have versioned package names
@@ -13,7 +13,7 @@ GTKHTML_PACKAGE=3.14
# Required Packages
m4_define([glib_minimum_version], [2.16.0])
m4_define([gtk_minimum_version], [2.12.0])
-m4_define([eds_minimum_version], [2.23.5])
+m4_define([eds_minimum_version], [2.23.6])
m4_define([gnome_icon_theme_minimum_version], [2.19.91])
m4_define([libbonobo_minimum_version], [2.20.3])
m4_define([libbonoboui_minimum_version], [2.4.2])
@@ -184,7 +184,9 @@ PKG_CHECK_MODULES(EVOLUTION_DATA_SERVER,
libedataserver-$EDS_PACKAGE >= eds_minimum_version
libedataserverui-$EDS_PACKAGE >= eds_minimum_version
libegroupwise-$EDS_PACKAGE >= eds_minimum_version
- libebackend-$EDS_PACKAGE >= eds_minimum_version])
+ libebackend-$EDS_PACKAGE >= eds_minimum_version
+ libgdata-$EDS_PACKAGE >= eds_minimum_version
+ libgdata-google-$EDS_PACKAGE >= eds_minimum_version])
dnl ******************
@@ -1570,7 +1572,7 @@ EVO_SET_COMPILE_FLAGS(LIBSOUP, libsoup-2.4 >= 2.3.0)
AC_SUBST(LIBSOUP_CFLAGS)
AC_SUBST(LIBSOUP_LIBS)
-EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, libgnomeui-2.0 libbonoboui-2.0 libglade-2.0 gio-2.0 gconf-2.0 gobject-2.0 libgtkhtml-$GTKHTML_PACKAGE libebook-$EDS_PACKAGE libecal-$EDS_PACKAGE libedataserverui-$EDS_PACKAGE libebackend-$EDS_PACKAGE $HAL_REQUIREMENT $libnotify gtkhtml-editor)
+EVO_SET_COMPILE_FLAGS(EVOLUTION_CALENDAR, libgnomeui-2.0 libbonoboui-2.0 libglade-2.0 gio-2.0 gconf-2.0 gobject-2.0 libgtkhtml-$GTKHTML_PACKAGE libebook-$EDS_PACKAGE libecal-$EDS_PACKAGE libedataserverui-$EDS_PACKAGE libebackend-$EDS_PACKAGE $HAL_REQUIREMENT $libnotify gtkhtml-editor libgdata-$EDS_PACKAGE libgdata-google-$EDS_PACKAGE)
AC_SUBST(EVOLUTION_CALENDAR_CFLAGS)
AC_SUBST(EVOLUTION_CALENDAR_LIBS)
@@ -1731,17 +1733,17 @@ AC_ARG_ENABLE([plugins],
[enable_plugins="$enableval"],[enable_plugins=all])
dnl Add any new plugins here
-plugins_base_always="calendar-file calendar-http calendar-weather itip-formatter plugin-manager default-source addressbook-file startup-wizard mark-all-read groupwise-features groupwise-account-setup hula-account-setup mail-account-disable publish-calendar caldav imap-features google-account-setup"
+plugins_base_always="calendar-file calendar-http calendar-weather itip-formatter plugin-manager default-source addressbook-file startup-wizard mark-all-read groupwise-features groupwise-account-setup mail-account-disable publish-calendar caldav imap-features google-account-setup webdav-account-setup"
plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $BF_JUNK_PLUGIN $EXCHANGE_PLUGIN $MONO_PLUGIN "
all_plugins_base="$plugins_base_always sa-junk-plugin bogo-junk-plugin exchange-operations mono"
-plugins_standard_always="bbdb subject-thread save-calendar select-one-source copy-tool mail-to-task mark-calendar-offline audio-inline mailing-list-actions default-mailer import-ics-attachments prefer-plain mail-notification attachment-reminder face backup-restore email-custom-header"
+plugins_standard_always="bbdb subject-thread save-calendar select-one-source copy-tool mail-to-task mark-calendar-offline audio-inline mailing-list-actions default-mailer import-ics-attachments prefer-plain mail-notification attachment-reminder face backup-restore email-custom-header templates"
plugins_standard="$plugins_standard_always"
all_plugins_standard="$plugins_standard"
-plugins_experimental_always="folder-unsubscribe mail-to-meeting save-attachments external-editor"
+plugins_experimental_always="folder-unsubscribe mail-to-meeting save-attachments external-editor hula-account-setup"
plugins_experimental="$plugins_experimental_always $IPOD_SYNC $TNEF_ATTACHMENTS $PYTHON_PLUGIN"
all_plugins_experimental="$plugins_experimental_always ipod-sync tnef-attachments"
@@ -1824,8 +1826,8 @@ if ${PKG_CONFIG} --exists dbus-glib-1 ; then
# Get the version of the DBus API, so we can hack around API changes until the API stabilises:
# multiply by 1000 to convert decimal to integer; so e.g. 0.31 become 310
# since preprocessor values must be integral
- DBUS_VERSION="`$PKG_CONFIG --modversion dbus-1 | $AWK '{print 1000 * $1}'`"
- AC_SUBST(DBUS_VERSION)
+ FOUND_DBUS_VERSION="`$PKG_CONFIG --modversion dbus-1 | $AWK '{print 1000 * $1}'`"
+ AC_SUBST(FOUND_DBUS_VERSION)
AC_DEFINE(HAVE_DBUS,1,[Define if you have DBUS support])
AC_SUBST(HAVE_DBUS)
AM_CONDITIONAL(ENABLE_DBUS, true)
@@ -2046,8 +2048,10 @@ plugins/publish-calendar/Makefile
plugins/import-ics-attachments/Makefile
plugins/imap-features/Makefile
plugins/tnef-attachments/Makefile
+plugins/templates/Makefile
plugins/face/Makefile
plugins/external-editor/Makefile
+plugins/webdav-account-setup/Makefile
smime/Makefile
smime/lib/Makefile
smime/gui/Makefile
@@ -2080,6 +2084,6 @@ echo "\
SSL support: $msg_ssl
SMIME support: $msg_smime
Plugins: $msg_plugins
- DBus API version: $DBUS_VERSION
+ DBus API version: $FOUND_DBUS_VERSION
User documentation: $with_help
"
diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
index ba02344f43..e97397c5cc 100644
--- a/data/icons/Makefile.am
+++ b/data/icons/Makefile.am
@@ -2,10 +2,25 @@ NULL =
public_icons = \
hicolor_apps_16x16_evolution.png \
+ hicolor_apps_16x16_evolution-mail.png \
+ hicolor_apps_16x16_evolution-memos.png \
+ hicolor_apps_16x16_evolution-tasks.png \
hicolor_apps_22x22_evolution.png \
+ hicolor_apps_22x22_evolution-mail.png \
+ hicolor_apps_22x22_evolution-memos.png \
+ hicolor_apps_22x22_evolution-tasks.png \
hicolor_apps_24x24_evolution.png \
+ hicolor_apps_24x24_evolution-mail.png \
+ hicolor_apps_24x24_evolution-memos.png \
+ hicolor_apps_24x24_evolution-tasks.png \
hicolor_apps_32x32_evolution.png \
+ hicolor_apps_32x32_evolution-mail.png \
+ hicolor_apps_32x32_evolution-memos.png \
+ hicolor_apps_32x32_evolution-tasks.png \
hicolor_apps_48x48_evolution.png \
+ hicolor_apps_48x48_evolution-mail.png \
+ hicolor_apps_48x48_evolution-memos.png \
+ hicolor_apps_48x48_evolution-tasks.png \
hicolor_apps_scalable_evolution.svg \
$(NULL)
@@ -49,6 +64,7 @@ private_icons = \
hicolor_categories_48x48_preferences-composer.png \
hicolor_categories_48x48_preferences-mail.png \
hicolor_categories_48x48_preferences-mail-accounts.png \
+ hicolor_categories_48x48_preferences-system-network-proxy.png \
hicolor_places_16x16_mail-inbox.png \
hicolor_places_16x16_mail-outbox.png \
hicolor_places_16x16_mail-sent.png \
diff --git a/art/query-free-busy.png b/data/icons/hicolor_actions_24x24_query-free-busy.png
index 228c4a5b07..228c4a5b07 100644
--- a/art/query-free-busy.png
+++ b/data/icons/hicolor_actions_24x24_query-free-busy.png
Binary files differ
diff --git a/data/icons/hicolor_apps_16x16_evolution-mail.png b/data/icons/hicolor_apps_16x16_evolution-mail.png
new file mode 100644
index 0000000000..652d919c0a
--- /dev/null
+++ b/data/icons/hicolor_apps_16x16_evolution-mail.png
Binary files differ
diff --git a/data/icons/hicolor_apps_16x16_evolution-memos.png b/data/icons/hicolor_apps_16x16_evolution-memos.png
new file mode 100644
index 0000000000..ad4f90064c
--- /dev/null
+++ b/data/icons/hicolor_apps_16x16_evolution-memos.png
Binary files differ
diff --git a/data/icons/hicolor_apps_16x16_evolution-tasks.png b/data/icons/hicolor_apps_16x16_evolution-tasks.png
new file mode 100644
index 0000000000..b8faae63ae
--- /dev/null
+++ b/data/icons/hicolor_apps_16x16_evolution-tasks.png
Binary files differ
diff --git a/data/icons/hicolor_apps_22x22_evolution-mail.png b/data/icons/hicolor_apps_22x22_evolution-mail.png
new file mode 100644
index 0000000000..27f867e461
--- /dev/null
+++ b/data/icons/hicolor_apps_22x22_evolution-mail.png
Binary files differ
diff --git a/data/icons/hicolor_apps_22x22_evolution-memos.png b/data/icons/hicolor_apps_22x22_evolution-memos.png
new file mode 100644
index 0000000000..f03b6ab05b
--- /dev/null
+++ b/data/icons/hicolor_apps_22x22_evolution-memos.png
Binary files differ
diff --git a/data/icons/hicolor_apps_22x22_evolution-tasks.png b/data/icons/hicolor_apps_22x22_evolution-tasks.png
new file mode 100644
index 0000000000..3c0db1dcc5
--- /dev/null
+++ b/data/icons/hicolor_apps_22x22_evolution-tasks.png
Binary files differ
diff --git a/data/icons/hicolor_apps_24x24_evolution-mail.png b/data/icons/hicolor_apps_24x24_evolution-mail.png
new file mode 100644
index 0000000000..876715661a
--- /dev/null
+++ b/data/icons/hicolor_apps_24x24_evolution-mail.png
Binary files differ
diff --git a/data/icons/hicolor_apps_24x24_evolution-memos.png b/data/icons/hicolor_apps_24x24_evolution-memos.png
new file mode 100644
index 0000000000..11b3168d41
--- /dev/null
+++ b/data/icons/hicolor_apps_24x24_evolution-memos.png
Binary files differ
diff --git a/data/icons/hicolor_apps_24x24_evolution-tasks.png b/data/icons/hicolor_apps_24x24_evolution-tasks.png
new file mode 100644
index 0000000000..14f6278c14
--- /dev/null
+++ b/data/icons/hicolor_apps_24x24_evolution-tasks.png
Binary files differ
diff --git a/data/icons/hicolor_apps_32x32_evolution-mail.png b/data/icons/hicolor_apps_32x32_evolution-mail.png
new file mode 100644
index 0000000000..736a134d82
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_evolution-mail.png
Binary files differ
diff --git a/data/icons/hicolor_apps_32x32_evolution-memos.png b/data/icons/hicolor_apps_32x32_evolution-memos.png
new file mode 100644
index 0000000000..a3c2bb12b2
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_evolution-memos.png
Binary files differ
diff --git a/data/icons/hicolor_apps_32x32_evolution-tasks.png b/data/icons/hicolor_apps_32x32_evolution-tasks.png
new file mode 100644
index 0000000000..2d12fb51e3
--- /dev/null
+++ b/data/icons/hicolor_apps_32x32_evolution-tasks.png
Binary files differ
diff --git a/data/icons/hicolor_apps_48x48_evolution-mail.png b/data/icons/hicolor_apps_48x48_evolution-mail.png
new file mode 100644
index 0000000000..33ad416682
--- /dev/null
+++ b/data/icons/hicolor_apps_48x48_evolution-mail.png
Binary files differ
diff --git a/data/icons/hicolor_apps_48x48_evolution-memos.png b/data/icons/hicolor_apps_48x48_evolution-memos.png
new file mode 100644
index 0000000000..8bdc4b42d1
--- /dev/null
+++ b/data/icons/hicolor_apps_48x48_evolution-memos.png
Binary files differ
diff --git a/data/icons/hicolor_apps_48x48_evolution-tasks.png b/data/icons/hicolor_apps_48x48_evolution-tasks.png
new file mode 100644
index 0000000000..694c921140
--- /dev/null
+++ b/data/icons/hicolor_apps_48x48_evolution-tasks.png
Binary files differ
diff --git a/data/icons/hicolor_categories_48x48_preferences-system-network-proxy.png b/data/icons/hicolor_categories_48x48_preferences-system-network-proxy.png
new file mode 100644
index 0000000000..e3a4ce2887
--- /dev/null
+++ b/data/icons/hicolor_categories_48x48_preferences-system-network-proxy.png
Binary files differ
diff --git a/e-util/ChangeLog b/e-util/ChangeLog
index ca1e193c40..785383c11b 100644
--- a/e-util/ChangeLog
+++ b/e-util/ChangeLog
@@ -1,3 +1,10 @@
+2008-07-31 Matthew Barnes <mbarnes@redhat.com>
+
+ ** Fixes part of bug #545568
+
+ * e-plugin.c (ep_load):
+ Make sure system plugins are enabled on startup.
+
2008-07-01 Matthew Barnes <mbarnes@redhat.com>
** Fixes part of bug #540282
diff --git a/e-util/e-plugin.c b/e-util/e-plugin.c
index b22c59b5f9..85c1edb060 100644
--- a/e-util/e-plugin.c
+++ b/e-util/e-plugin.c
@@ -470,9 +470,10 @@ ep_load(const char *filename, int load_level)
/* README: May be we can use load_levels to achieve the same thing.
But it may be confusing for a plugin writer */
is_system_plugin = e_plugin_xml_prop (root, "system_plugin");
- if (is_system_plugin && !strcmp (is_system_plugin, "true"))
+ if (is_system_plugin && !strcmp (is_system_plugin, "true")) {
+ e_plugin_enable (ep, TRUE);
ep->flags |= E_PLUGIN_FLAGS_SYSTEM_PLUGIN;
- else
+ } else
ep->flags &= ~E_PLUGIN_FLAGS_SYSTEM_PLUGIN;
g_free (is_system_plugin);
diff --git a/filter/ChangeLog b/filter/ChangeLog
index 1e713d561e..145ae2c029 100644
--- a/filter/ChangeLog
+++ b/filter/ChangeLog
@@ -1,3 +1,22 @@
+2008-07-30 Takao Fujiwara <takao.fujiwara@sun.com>
+
+ Reviewed by Srinivasa Ragavan <sragavan@novell.com>
+
+ ** Fix for bug #545303
+
+ * filter-rule.c: (xml_decode): Add gettext in the xml string.
+
+2008-07-28 Milan Crha <mcrha@redhat.com>
+
+ ** Fix for bug #530388
+
+ * filter-label.c: (filter_label_init), (filter_label_finalise),
+ (fill_options), (filter_label_count), (filter_label_label),
+ (filter_label_index): Make 'cache_lock' a rec mutex.
+ * filter-label.c: (regen_label_options): Guard also regeneration
+ of each tracked item with the rec lock, thus noone will touch
+ 'tracked_filters' GSList until we are fully done with it.
+
2008-07-03 Milan Crha <mcrha@redhat.com>
** Fix for bug #243201
diff --git a/filter/filter-label.c b/filter/filter-label.c
index 90906e8ba1..7291e36b4c 100644
--- a/filter/filter-label.c
+++ b/filter/filter-label.c