...
 
Commits (41)
......@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.1)
cmake_policy(VERSION 3.1)
project(evolution
VERSION 3.33.2
VERSION 3.33.3
LANGUAGES C)
set(PROJECT_BUGREPORT "https://gitlab.gnome.org/GNOME/evolution/issues/")
set(PROJECT_URL "http://wiki.gnome.org/Apps/Evolution/")
......@@ -286,7 +286,7 @@ pkg_check_modules(GNOME_PLATFORM REQUIRED
pkg_check_modules(EVOLUTION_DATA_SERVER REQUIRED
camel-1.2>=${eds_minimum_version}
libebook-1.2>=${eds_minimum_version}
libecal-1.2>=${eds_minimum_version}
libecal-2.0>=${eds_minimum_version}
libedataserver-1.2>=${eds_minimum_version}
libedataserverui-1.2>=${eds_minimum_version}
libebackend-1.2>=${eds_minimum_version}
......@@ -589,49 +589,6 @@ set(HAVE_LIBNOTIFY ${LIBNOTIFY_FOUND})
pkg_check_modules(LIBUNITY unity>=${libunity_minimum_version})
set(HAVE_LIBUNITY ${LIBUNITY_FOUND})
# ******************************
# libical tweaks
# ******************************
set(CMAKE_REQUIRED_DEFINITIONS ${EVOLUTION_DATA_SERVER_CFLAGS_OTHER})
set(CMAKE_REQUIRED_INCLUDES ${EVOLUTION_DATA_SERVER_INCLUDE_DIRS})
set(CMAKE_REQUIRED_LIBRARIES ${EVOLUTION_DATA_SERVER_LDFLAGS})
CHECK_C_SOURCE_COMPILES("#include <libical/ical.h>
int main(void) {
ical_set_unknown_token_handling_setting (ICAL_DISCARD_TOKEN);
return 0;
}" HAVE_ICAL_UNKNOWN_TOKEN_HANDLING)
CHECK_C_SOURCE_COMPILES("#include <libical/ical.h>
int main(void) {
icaltzutil_set_exact_vtimezones_support (0);
return 0;
}" HAVE_ICALTZUTIL_SET_EXACT_VTIMEZONES_SUPPORT)
CHECK_C_SOURCE_COMPILES("#include <libical/ical.h>
int main(void) {
icalparameter *param;
param = icalproperty_get_first_parameter (NULL, ICAL_FILENAME_PARAMETER);
icalparameter_get_filename (param);
icalparameter_new_filename (NULL);
return 0;
}" HAVE_ICAL_FILENAME_PARAMETER)
CHECK_C_SOURCE_COMPILES("#include <libical/ical.h>
int main(void) {
icalproperty *prop;
prop = icalcomponent_get_first_property (NULL, ICAL_COLOR_PROPERTY);
icalproperty_get_color (prop);
icalproperty_set_color (prop, \"white\");
prop = icalproperty_new_color (NULL);
return 0;
}" HAVE_ICAL_COLOR_PROPERTY)
unset(CMAKE_REQUIRED_DEFINITIONS)
unset(CMAKE_REQUIRED_INCLUDES)
unset(CMAKE_REQUIRED_LIBRARIES)
# ******************************
# gspell
# ******************************
......
Evolution 3.33.2 2019-05-20
---------------------------
Bug Fixes:
I#240 - Make SRV config lookup check also TXT records for CalDAV/CardDAV (Дилян Палаузов)
I#400 - [To Do Bar] False runtime warning with 'Show Tasks without Due date' set (Milan Crha)
I#405 - Time zone change not properly propagated in the Month View (Milan Crha)
I#406 - Use a special icon for a configured Archive folder (Milan Crha)
I#407 - Inconsistent folder icons between side bar and top grey bar (Milan Crha)
I#417 - Add support for CSS property "-MessageList-new-mail-fg-color" (Steven Bakker)
I#429 - Do not mark empty string for translation (Milan Crha)
I#430 - The first user's Search Folder not auto-shown in the folder tree (Milan Crha)
I#432 - Prefer Reply-To from To/Cc in Group Reply (Milan Crha)
I#437 - [To Do Bar] Leftover task after DUE date change (Milan Crha)
I#439 - Calendar Month view weekday names unreadable in dark theme (Milan Crha)
M!10 - Remove unneeded g_srv_target_list_sort() call in srv_config_lookup_domain_sync() (Дилян Палаузов)
M!11 - shell: print equal sign after --component in --help text (Дилян Палаузов)
M!12 - [SRV config lookup] Do not write default ports in CalDAV/CardDAV URLs (Дилян Палаузов)
M!13 - Improve icons in previews with hiDPI monitors (Milan Crha)
M!16 - Add copyright and OASR content rating info into .appdata.xml file (Jiri Eischmann)
eds-I#112 - Credentials prompter re-asks for credentials of disabled accounts (Milan Crha)
eds-M!14 - Correct typo in a comment in the main CMakeLists.txt (Дилян Палаузов)
Miscellaneous:
Fixed typo in string (Daniel Mustieles)
[Flatpak] Change how already running services are detected in the wrapper script (Milan Crha)
Prevent crash in cal_data_model_notify_recurrences_cb() (Milan Crha)
[Flatpak] Give access to filesystem's ~/.gnupg (Milan Crha)
Correct code typo in test-keyfile-settings-backend.c (Milan Crha)
Fix a possible memory leak in e-web-view.c:web_view_initialize() (Milan Crha)
Reference a GDBusProxy object in the synchronous call wrappers (Milan Crha)
Fix a crash when filling mail threaded view (Milan Crha)
Port to libecal-2.0 and adapt to libebook API changes (Milan Crha)
Address some issues reported by static analyzers (Coverity Scan, clang) (Milan Crha)
Correct type of ECalDataModel::timezone property (Milan Crha)
Miscellaneous changes for issues overlooked during port to libical-glib (Milan Crha)
Translations:
Daniel Mustieles (es)
Jordi Mas (ca)
Kukuh Syafaat (id)
Asier Sarasua Garmendia (eu)
Carmen Bianca BAKKER (eo)
Fabio Tomat (fur)
Ask Hjorth Larsen (da)
Evolution 3.33.1 2019-04-22
---------------------------
......
......@@ -78,8 +78,8 @@ macro(setup_build_flags _maintainer_mode)
endif(CMAKE_CXX_COMPILER_ID)
if(("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES "BSD"))
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--no-undefined")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_EXE_LINKER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_MODULE_LINKER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_SHARED_LINKER_FLAGS}")
endif(("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") OR ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES "BSD"))
endmacro()
......@@ -99,18 +99,6 @@
/* Define if you have libunity */
#cmakedefine HAVE_LIBUNITY 1
/* libical provides ical_set_unknown_token_handling_setting function */
#cmakedefine HAVE_ICAL_UNKNOWN_TOKEN_HANDLING 1
/* libical provides icaltzutil_set_exact_vtimezones_support function */
#cmakedefine HAVE_ICALTZUTIL_SET_EXACT_VTIMEZONES_SUPPORT 1
/* libical provides ICAL_FILENAME_PARAMETER */
#cmakedefine HAVE_ICAL_FILENAME_PARAMETER 1
/* libical provides ICAL_COLOR_PROPERTY */
#cmakedefine HAVE_ICAL_COLOR_PROPERTY 1
/* When defined GSpell usage is enabled */
#cmakedefine HAVE_GSPELL 1
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2019-05-20 The Evolution Team <evolution-hackers@gnome.org> -->
<component type="desktop">
<id>org.gnome.Evolution.desktop</id>
<metadata_license>CC0-1.0</metadata_license>
......@@ -45,4 +46,8 @@
<releases>
<release version="@APPDATA_RELEASE_VERSION@" type="@APPDATA_RELEASE_TYPE@" date="@APPDATA_RELEASE_BUILD_DATE@"/>
</releases>
<content_rating type="oars-1.1">
<content_attribute id="social-chat">intense</content_attribute>
<content_attribute id="social-contacts">intense</content_attribute>
</content_rating>
</component>
......@@ -46,6 +46,10 @@
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-34" role="3.34">
<title>Index of new symbols in 3.34</title>
<xi:include href="xml/api-index-3.34.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-30" role="3.30">
<title>Index of new symbols in 3.30</title>
<xi:include href="xml/api-index-3.30.xml"><xi:fallback /></xi:include>
......
......@@ -41,6 +41,10 @@
<title>Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-34" role="3.34">
<title>Index of new symbols in 3.34</title>
<xi:include href="xml/api-index-3.34.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-32" role="3.32">
<title>Index of new symbols in 3.32</title>
<xi:include href="xml/api-index-3.32.xml"><xi:fallback /></xi:include>
......
......@@ -324,6 +324,10 @@
<title>Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-34" role="3.34">
<title>Index of new symbols in 3.34</title>
<xi:include href="xml/api-index-3.34.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-32" role="3.32">
<title>Index of new symbols in 3.32</title>
<xi:include href="xml/api-index-3.32.xml"><xi:fallback /></xi:include>
......
......@@ -28,6 +28,7 @@
"--socket=wayland",
"--socket=pulseaudio",
"--device=dri",
"--filesystem=~/.gnupg:rw",
"--filesystem=xdg-run/dconf",
"--filesystem=~/.config/dconf:ro",
"--env=DCONF_USER_CONFIG_DIR=.config/dconf",
......@@ -264,20 +265,20 @@
" export GIO_USE_NETWORK_MONITOR=base",
" gsettings reset org.gnome.evolution-data-server network-monitor-gio-name",
"",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @SOURCES_SERVICE@",
" if [ \"${PIPESTATUS[0]}\" != \"0\" ]; then",
" LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @SOURCES_SERVICE@ | wc -l)",
" if [ \"${LINES}\" = \"0\" ]; then",
" /app/libexec/evolution-source-registry &",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @SOURCES_SERVICE@",
" fi",
"",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @ADDRESSBOOK_SERVICE@",
" if [ \"${PIPESTATUS[0]}\" != \"0\" ]; then",
" LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @ADDRESSBOOK_SERVICE@ | wc -l)",
" if [ \"${LINES}\" = \"0\" ]; then",
" /app/libexec/evolution-addressbook-factory -r &",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @ADDRESSBOOK_SERVICE@",
" fi",
"",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @CALENDAR_SERVICE@",
" if [ \"${PIPESTATUS[0]}\" != \"0\" ]; then",
" LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @CALENDAR_SERVICE@ | wc -l)",
" if [ \"${LINES}\" = \"0\" ]; then",
" /app/libexec/evolution-calendar-factory -r &",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @CALENDAR_SERVICE@",
" fi",
......
......@@ -27,6 +27,7 @@
"--socket=wayland",
"--socket=pulseaudio",
"--device=dri",
"--filesystem=~/.gnupg:rw",
"--filesystem=xdg-run/dconf",
"--filesystem=~/.config/dconf:ro",
"--env=DCONF_USER_CONFIG_DIR=.config/dconf",
......@@ -263,20 +264,20 @@
" export GIO_USE_NETWORK_MONITOR=base",
" gsettings reset org.gnome.evolution-data-server network-monitor-gio-name",
"",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @SOURCES_SERVICE@",
" if [ \"${PIPESTATUS[0]}\" != \"0\" ]; then",
" LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @SOURCES_SERVICE@ | wc -l)",
" if [ \"${LINES}\" = \"0\" ]; then",
" /app/libexec/evolution-source-registry &",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @SOURCES_SERVICE@",
" fi",
"",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @ADDRESSBOOK_SERVICE@",
" if [ \"${PIPESTATUS[0]}\" != \"0\" ]; then",
" LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @ADDRESSBOOK_SERVICE@ | wc -l)",
" if [ \"${LINES}\" = \"0\" ]; then",
" /app/libexec/evolution-addressbook-factory -r &",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @ADDRESSBOOK_SERVICE@",
" fi",
"",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @CALENDAR_SERVICE@",
" if [ \"${PIPESTATUS[0]}\" != \"0\" ]; then",
" LINES=$(gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.ListNames | grep @CALENDAR_SERVICE@ | wc -l)",
" if [ \"${LINES}\" = \"0\" ]; then",
" /app/libexec/evolution-calendar-factory -r &",
" gdbus wait --session --timeout=1@TIMEOUTMULT@ @CALENDAR_SERVICE@",
" fi",
......
......@@ -1588,7 +1588,7 @@ msgstr ""
#: ../data/org.gnome.evolution.mail.gschema.xml.in.h:82
msgid "Whether start Plain Text composer with Preformatted paragraph mode"
msgstr ""
"Si s'ha d'iniciar el editor de text pla amb el mode de paràgraf preformatat"
"Si s'ha d'iniciar l'editor de text pla amb el mode de paràgraf preformatat"
#: ../data/org.gnome.evolution.mail.gschema.xml.in.h:83
msgid ""
......@@ -3387,7 +3387,7 @@ msgid ""
"selection is escaped and appended to this string. The URI should start with "
"https://."
msgstr ""
"El prefix d’una URL a usar per a fer cerques a la web. La selecció de text "
"El prefix d’un URL a usar per a fer cerques a la web. La selecció de text "
"actual s'escapa i s'afegeix a aquesta cadena. La URI ha de començar amb "
"https://."
......@@ -9139,7 +9139,7 @@ msgstr "Per fer"
#: ../src/calendar/gui/e-week-view-main-item.c:222
#: ../src/calendar/gui/print.c:2081
msgid "%d %B"
msgstr "%d %B"
msgstr "%-d %B"
#: ../src/calendar/gui/itip-utils.c:786 ../src/calendar/gui/itip-utils.c:848
#: ../src/calendar/gui/itip-utils.c:982
......@@ -12610,7 +12610,7 @@ msgstr "_Icona de la categoria"
#: ../src/e-util/e-category-editor.c:236
msgid "_Unset icon"
msgstr "_Desassigna la emoticona"
msgstr "_Desassigna l'emoticona"
#: ../src/e-util/e-category-editor.c:262
msgid "Category Properties"
......@@ -13190,7 +13190,7 @@ msgstr "Següent %a"
#: ../src/e-util/e-datetime-format.c:367 ../src/e-util/e-datetime-format.c:377
#: ../src/e-util/e-datetime-format.c:386
msgid "Use locale default"
msgstr "Utilitza els valors per defecte de la localització"
msgstr "Utilitza els valors per defecte de la configuració local"
#: ../src/e-util/e-datetime-format.c:610
msgid "Format:"
......@@ -15346,8 +15346,7 @@ msgstr "No s'ha pogut suprimir el recurs «{0}»."
#: ../src/e-util/e-system.error.xml.h:11
msgid "The address book backend servicing “{0}” has quit unexpectedly."
msgstr ""
"Ha sortit inesperadament el rerefons de llibreta d'adreces que servia &quot;"
"{0}&quot;."
"Ha sortit inesperadament el rerefons de llibreta d'adreces que servia «{0}»."
#: ../src/e-util/e-system.error.xml.h:12
msgid ""
......@@ -15359,7 +15358,7 @@ msgstr ""
#: ../src/e-util/e-system.error.xml.h:13
msgid "The calendar backend servicing “{0}” has quit unexpectedly."
msgstr ""
"Ha sortit inesperadament el rerefons de calendari que servia &quot;{0}&quot;."
"Ha sortit inesperadament el rerefons de calendari que servia «{0}»."
#: ../src/e-util/e-system.error.xml.h:14
msgid ""
......@@ -15371,8 +15370,7 @@ msgstr ""
#: ../src/e-util/e-system.error.xml.h:15
msgid "The memo list backend servicing “{0}” has quit unexpectedly."
msgstr ""
"Ha sortit inesperadament el rerefons de llista d'anotacions que servia &quot;"
"{0}&quot;."
"Ha sortit inesperadament el rerefons de llista d'anotacions que servia «{0}»."
#: ../src/e-util/e-system.error.xml.h:16
msgid "Some of your memos may not be available until Evolution is restarted."
......@@ -15383,8 +15381,7 @@ msgstr ""
#: ../src/e-util/e-system.error.xml.h:17
msgid "The task list backend servicing “{0}” has quit unexpectedly."
msgstr ""
"Ha sortit inesperadament el rerefons de llista de tasques que servia &quot;"
"{0}&quot;."
"Ha sortit inesperadament el rerefons de llista de tasques que servia «{0}»."
#: ../src/e-util/e-system.error.xml.h:18
msgid "Some of your tasks may not be available until Evolution is restarted."
......@@ -15919,7 +15916,7 @@ msgstr "Desa la imatge a un fitxer"
#: ../src/e-util/e-web-view.c:474 ../src/mail/e-mail-browser.c:179
#: ../src/mail/e-mail-reader.c:2820
msgid "Search _Web…"
msgstr "Cerca web…"
msgstr "_Cerca web…"
#: ../src/e-util/e-web-view.c:476 ../src/mail/e-mail-browser.c:181
#: ../src/mail/e-mail-reader.c:2822
......@@ -18412,7 +18409,7 @@ msgstr "Trieu a quines carpetes s'enviarà el missatge."
#: ../src/mail/em-filter-editor.c:43
msgid "Description of Filters"
msgstr "Descripció dels filstres"
msgstr "Descripció dels filtres"
#. Translators: The first '%s' is replaced with the rule name;
#. the second '%s' with 'enabled' or 'disabled' word;
......@@ -18424,11 +18421,11 @@ msgstr "%s (%s, per al compte %s)"
#: ../src/mail/em-filter-editor.c:167 ../src/mail/em-filter-editor.c:171
msgid "enabled"
msgstr "Habilitat"
msgstr "habilitat"
#: ../src/mail/em-filter-editor.c:167 ../src/mail/em-filter-editor.c:171
msgid "disabled"
msgstr "Inhabilitat"
msgstr "inhabilitat"
#. Translators: The first '%s' is replaced with the rule name;
#. the second '%s' with 'enabled' or 'disabled' word
......@@ -18488,7 +18485,7 @@ msgstr "_Utilitza una icona personalitzada"
#: ../src/mail/em-folder-properties.c:312
msgid "Use te_xt color"
msgstr "Useu el color del text"
msgstr "_Useu el color del text"
#: ../src/mail/em-folder-properties.c:494
msgid "Unread messages:"
......@@ -21801,7 +21798,7 @@ msgstr "Evita l'IfMatch (necessari per a l'Apache < 2.2.8)"
#: ../src/modules/cal-config-caldav/evolution-cal-config-caldav.c:426
#: ../src/modules/cal-config-webcal/evolution-cal-config-webcal.c:185
msgid "URL is not a valid http:// nor https:// URL"
msgstr "L'URL no és una URL vàlida http:// ni https://"
msgstr "L'URL no és un URL vàlid http:// ni https://"
#: ../src/modules/book-config-google/evolution-book-config-google.c:93
#: ../src/modules/book-config-ldap/evolution-book-config-ldap.c:1069
......@@ -22428,7 +22425,7 @@ msgstr "Amaga les tasqu_es completades després de"
#: ../src/modules/calendar/e-calendar-preferences.ui.h:68
msgid "Hid_e cancelled tasks"
msgstr "Amaga les tasques cancel·lades"
msgstr "_Amaga les tasques cancel·lades"
#: ../src/modules/calendar/e-calendar-preferences.ui.h:69
msgid "To Do bar"
......@@ -22494,7 +22491,7 @@ msgid ""
"Specify login user name as part of the URL in case the server requires "
"authentication, like: https://USER@example.com/"
msgstr ""
"Especifica el nom d'usuari com a part de la URL en el cas que el servidor "
"Especifica el nom d'usuari com a part de l'URL en el cas que el servidor "
"requereixi autenticació, semblant a: https://USUARI@exemple.com/"
#: ../src/modules/calendar/e-calendar-preferences.ui.h:94
......@@ -24423,7 +24420,7 @@ msgstr "Suprimeix permanentment la carpeta"
#: ../src/modules/mail/e-mail-shell-view-actions.c:1635
msgid "Edit Sort _Order…"
msgstr "Edita el criteri d'ordenació…"
msgstr "_Edita el criteri d'ordenació…"
#: ../src/modules/mail/e-mail-shell-view-actions.c:1637
msgid "Change sort order of the folders in the folder tree"
......@@ -26603,7 +26600,7 @@ msgstr "Col·lecció de _comptes"
#: ../src/shell/e-shell-window-actions.c:795
msgid "Create a new collection account"
msgstr "Crea una col·leció de comptes nova"
msgstr "Crea una col·lecció de comptes nova"
#: ../src/shell/e-shell-window-actions.c:805
msgid "Show information about Evolution"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -33,8 +33,8 @@ msgid ""
msgstr ""
"Project-Id-Version: evolution.HEAD\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/evolution/issues\n"
"POT-Creation-Date: 2019-03-10 18:02+0000\n"
"PO-Revision-Date: 2019-03-10 22:17+0100\n"
"POT-Creation-Date: 2019-03-11 09:00+0000\n"
"PO-Revision-Date: 2019-04-01 15:04+0200\n"
"Last-Translator: Guillaume Bernard <associations@guillaume-bernard.fr>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Language: fr\n"
......@@ -2105,9 +2105,9 @@ msgid ""
"Forward and reply attribution language tag, like en_US. Empty string means "
"to use the same language as the user interface."
msgstr ""
"Étiquettes de langue pour l’attribution des réponses et "
"transferts, comme fr_FR. Une chaîne vide indique que la langue de "
"l’interface utilisateur sera utilisée."
"Étiquettes de langue pour l’attribution des réponses et transferts, comme "
"fr_FR. Une chaîne vide indique que la langue de l’interface utilisateur sera "
"utilisée."
#: ../data/org.gnome.evolution.mail.gschema.xml.in.h:173
msgid "Prompt on send when using key accelerator (Ctrl+Enter)"
......@@ -8725,7 +8725,7 @@ msgstr "Semaine %d"
#: ../src/calendar/gui/e-day-view-time-item.c:804
#, c-format
msgid "%02i minute divisions"
msgstr "%02i divisions par minute"
msgstr "divisions de %02i minutes"
#: ../src/calendar/gui/e-day-view-time-item.c:829
msgid "Show the second time zone"
......
This diff is collapsed.
This diff is collapsed.
......@@ -4449,7 +4449,7 @@ contact_added_cb (EBookClient *book_client,
!error && ce->priv->is_new_contact == FALSE) {
ecs->new_id = g_strdup (id);
e_book_client_remove_contact (
ce->priv->source_client, ce->priv->contact, NULL, contact_removed_cb, ecs);
ce->priv->source_client, ce->priv->contact, E_BOOK_OPERATION_FLAG_NONE, NULL, contact_removed_cb, ecs);
return;
}
......@@ -4556,7 +4556,7 @@ real_save_contact (EContactEditor *ce,
ce->priv->contact, contact_modified_cb, ecs);
else
e_book_client_modify_contact (
ce->priv->target_client, ce->priv->contact, NULL,
ce->priv->target_client, ce->priv->contact, E_BOOK_OPERATION_FLAG_NONE, NULL,
contact_modified_ready_cb, ecs);
}
}
......@@ -5419,12 +5419,12 @@ e_contact_editor_set_property (GObject *object,
e_client_get_backend_property (
E_CLIENT (editor->priv->target_client),
BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS,
E_BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS,
NULL, supported_fields_cb, editor);
e_client_get_backend_property (
E_CLIENT (editor->priv->target_client),
BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS,
E_BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS,
NULL, required_fields_cb, editor);
}
......@@ -5466,12 +5466,12 @@ e_contact_editor_set_property (GObject *object,
e_client_get_backend_property (
E_CLIENT (editor->priv->target_client),
BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS,
E_BOOK_BACKEND_PROPERTY_SUPPORTED_FIELDS,
NULL, supported_fields_cb, editor);
e_client_get_backend_property (
E_CLIENT (editor->priv->target_client),
BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS,
E_BOOK_BACKEND_PROPERTY_REQUIRED_FIELDS,
NULL, required_fields_cb, editor);
if (!editor->priv->is_new_contact)
......
......@@ -152,7 +152,8 @@ addressbook_selector_merge_next_cb (EBookClient *book_client,
/* Remove previous contact from source. */
e_book_client_remove_contact (
merge_context->source_client,
merge_context->current_contact, NULL,
merge_context->current_contact,
E_BOOK_OPERATION_FLAG_NONE, NULL,
addressbook_selector_removed_cb, merge_context);
merge_context->pending_removals++;
}
......
......@@ -1439,7 +1439,7 @@ e_addressbook_view_delete_selection (EAddressbookView *view,
/* Remove the cards all at once. */
e_book_client_remove_contacts (
book_client, ids, NULL, remove_contacts_cb, NULL);
book_client, ids, E_BOOK_OPERATION_FLAG_NONE, NULL, remove_contacts_cb, NULL);
g_slist_free (ids);
} else {
......@@ -1448,7 +1448,7 @@ e_addressbook_view_delete_selection (EAddressbookView *view,
/* Remove the card. */
e_book_client_remove_contact (
book_client, contact, NULL,
book_client, contact, E_BOOK_OPERATION_FLAG_NONE, NULL,
remove_contact_cb, NULL);
}
}
......
......@@ -368,7 +368,7 @@ contact_display_link_clicked (EWebView *web_view,
}
length = strlen ("open-map:");
if (g_str_has_prefix (uri, "open-map:")) {
if (g_ascii_strncasecmp (uri, "open-map:", length)) {
SoupURI *suri;
suri = soup_uri_new (uri);
......
......@@ -243,11 +243,11 @@ doit (EContactMergingLookup *lookup,
{
if (lookup->op == E_CONTACT_MERGING_ADD) {
if (force_modify)
e_book_client_modify_contact (lookup->book_client, lookup->contact, NULL, modify_contact_ready_cb, lookup);
e_book_client_modify_contact (lookup->book_client, lookup->contact, E_BOOK_OPERATION_FLAG_NONE, NULL, modify_contact_ready_cb, lookup);
else
e_book_client_add_contact (lookup->book_client, lookup->contact, NULL, add_contact_ready_cb, lookup);
e_book_client_add_contact (lookup->book_client, lookup->contact, E_BOOK_OPERATION_FLAG_NONE, NULL, add_contact_ready_cb, lookup);
} else if (lookup->op == E_CONTACT_MERGING_COMMIT)
e_book_client_modify_contact (lookup->book_client, lookup->contact, NULL, modify_contact_ready_cb, lookup);
e_book_client_modify_contact (lookup->book_client, lookup->contact, E_BOOK_OPERATION_FLAG_NONE, NULL, modify_contact_ready_cb, lookup);
}
static void
......@@ -339,7 +339,7 @@ remove_contact_ready_cb (GObject *source_object,
}
e_book_client_add_contact (
book_client, lookup->contact, NULL,
book_client, lookup->contact, E_BOOK_OPERATION_FLAG_NONE, NULL,
add_contact_ready_cb, lookup);
}
......@@ -581,7 +581,7 @@ mergeit (EContactMergingLookup *lookup)
lookup->contact = g_object_ref (lookup->match);
e_book_client_remove_contact (
lookup->book_client,
lookup->match, NULL,
lookup->match, E_BOOK_OPERATION_FLAG_NONE, NULL,
remove_contact_ready_cb, lookup);
value = 1;
break;
......
......@@ -448,7 +448,7 @@ do_delete_from_source (gpointer data,
g_return_if_fail (book_client != NULL);
process->count++;
e_book_client_remove_contact_by_uid (book_client, id, NULL, remove_contact_ready_cb, process);
e_book_client_remove_contact_by_uid (book_client, id, E_BOOK_OPERATION_FLAG_NONE, NULL, remove_contact_ready_cb, process);
}
static void
......
......@@ -730,7 +730,7 @@ csv_import_contacts (gpointer d)
gchar *uid = NULL;
e_book_client_add_contact_sync (
gci->book_client, contact, &uid, NULL, NULL);
gci->book_client, contact, E_BOOK_OPERATION_FLAG_NONE, &uid, NULL, NULL);
if (uid != NULL) {
e_contact_set (contact, E_CONTACT_UID, uid);
g_free (uid);
......
......@@ -507,7 +507,7 @@ ldif_import_contacts (gpointer d)
e_book_client_add_contact_sync (
gci->book_client,
contact, &uid, NULL, NULL);
contact, E_BOOK_OPERATION_FLAG_NONE, &uid, NULL, NULL);
if (uid != NULL) {
e_contact_set (contact, E_CONTACT_UID, uid);
g_free (uid);
......@@ -528,7 +528,7 @@ ldif_import_contacts (gpointer d)
contact = iter->data;
resolve_list_card (gci, contact);
e_book_client_add_contact_sync (
gci->book_client, contact, &uid, NULL, NULL);
gci->book_client, contact, E_BOOK_OPERATION_FLAG_NONE, &uid, NULL, NULL);
if (uid != NULL) {
e_contact_set (contact, E_CONTACT_UID, uid);
g_free (uid);
......
......@@ -214,7 +214,7 @@ vcard_import_contact (VCardImporter *gci,
/* FIXME Error checking */
e_book_client_add_contact_sync (
gci->book_client, contact, &uid, NULL, NULL);
gci->book_client, contact, E_BOOK_OPERATION_FLAG_NONE, &uid, NULL, NULL);
if (uid != NULL) {
e_contact_set (contact, E_CONTACT_UID, uid);
g_free (uid);
......
......@@ -35,8 +35,8 @@ set(SOURCES
e-cal-dialogs.c
e-cal-event.c
e-cal-list-view.c
e-cal-model-calendar.c
e-cal-model.c
e-cal-model-calendar.c
e-cal-model-memos.c
e-cal-model-tasks.c
e-cal-ops.c
......@@ -55,11 +55,11 @@ set(SOURCES
e-comp-editor-property-parts.c
e-comp-editor-task.c
e-date-time-list.c
e-day-view.c
e-day-view-layout.c
e-day-view-main-item.c
e-day-view-time-item.c
e-day-view-top-item.c
e-day-view.c
e-meeting-attendee.c
e-meeting-list-view.c
e-meeting-store.c
......@@ -73,11 +73,11 @@ set(SOURCES
e-send-options-utils.c
e-task-table.c
e-to-do-pane.c
e-week-view.c
e-week-view-event-item.c
e-week-view-layout.c
e-week-view-main-item.c
e-week-view-titles-item.c
e-week-view.c
e-weekday-chooser.c
e-timezone-entry.c
itip-utils.c
......
......@@ -113,17 +113,17 @@ calendar_config_get_timezone (void)
return calendar_config_get_timezone_stored ();
}
icaltimezone *
ICalTimezone *
calendar_config_get_icaltimezone (void)
{
gchar *location;
icaltimezone *zone = NULL;
ICalTimezone *zone = NULL;
calendar_config_init ();
location = calendar_config_get_timezone ();
if (location) {
zone = icaltimezone_get_builtin_timezone (location);
zone = i_cal_timezone_get_builtin_timezone (location);
g_free (location);
}
......@@ -228,30 +228,33 @@ calendar_config_get_hide_completed_tasks_sexp (gboolean get_completed)
sexp = g_strdup ("(is-completed?)");
} else {
gchar *isodate;
icaltimezone *zone;
struct icaltimetype tt;
ICalTimezone *zone;
ICalTime *tt;
time_t t;
/* Get the current time, and subtract the appropriate
* number of days/hours/minutes. */
zone = calendar_config_get_icaltimezone ();
tt = icaltime_current_time_with_zone (zone);
tt = i_cal_time_new_current_with_zone (zone);
switch (units) {
case E_DURATION_DAYS:
icaltime_adjust (&tt, -value, 0, 0, 0);
i_cal_time_adjust (tt, -value, 0, 0, 0);
break;
case E_DURATION_HOURS:
icaltime_adjust (&tt, 0, -value, 0, 0);
i_cal_time_adjust (tt, 0, -value, 0, 0);
break;
case E_DURATION_MINUTES:
icaltime_adjust (&tt, 0, 0, -value, 0);
i_cal_time_adjust (tt, 0, 0, -value, 0);
break;
default:
g_clear_object (&tt);
g_return_val_if_reached (NULL);
}
t = icaltime_as_timet_with_zone (tt, zone);
t = i_cal_time_as_timet_with_zone (tt, zone);
g_clear_object (&tt);
/* Convert the time to an ISO date string, and build
* the query sub-expression. */
......@@ -399,14 +402,14 @@ calendar_config_get_day_second_zone (void)
void
calendar_config_select_day_second_zone (GtkWidget *parent)
{
icaltimezone *zone = NULL;
ICalTimezone *zone = NULL;
ETimezoneDialog *tzdlg;
GtkWidget *dialog;
gchar *second_location;
second_location = calendar_config_get_day_second_zone ();
if (second_location && *second_location)
zone = icaltimezone_get_builtin_timezone (second_location);
zone = i_cal_timezone_get_builtin_timezone (second_location);
g_free (second_location);
if (!zone)
......@@ -424,10 +427,10 @@ calendar_config_select_day_second_zone (GtkWidget *parent)
const gchar *location = NULL;
zone = e_timezone_dialog_get_timezone (tzdlg);
if (zone == icaltimezone_get_utc_timezone ()) {
if (zone == i_cal_timezone_get_utc_timezone ()) {
location = "UTC";
} else if (zone) {
location = icaltimezone_get_location (zone);
location = i_cal_timezone_get_location (zone);
}
calendar_config_set_day_second_zone (location);
......
......@@ -47,7 +47,7 @@ void calendar_config_remove_notification (CalendarConfigChangedFunc func, gpoint
*/
/* The current timezone, e.g. "Europe/London". */
icaltimezone *calendar_config_get_icaltimezone (void);
ICalTimezone *calendar_config_get_icaltimezone (void);
/* Whether we use 24-hour format or 12-hour format (AM/PM). */
gboolean calendar_config_get_24_hour_format (void);
......
This diff is collapsed.
......@@ -32,24 +32,28 @@
struct _EShell;
void cal_comp_util_add_exdate (ECalComponent *comp, time_t t, icaltimezone *zone);
void cal_comp_util_add_exdate (ECalComponent *comp,
time_t t,
ICalTimezone *zone);
/* Returns TRUE if the component uses the given timezone for both DTSTART
* and DTEND, or if the UTC offsets of the start and end times are the same
* as in the given zone. */
gboolean cal_comp_util_compare_event_timezones (ECalComponent *comp,
ECalClient *client,
icaltimezone *zone);
gboolean cal_comp_util_compare_event_timezones
(ECalComponent *comp,
ECalClient *client,
ICalTimezone *zone);
/* Returns the number of icons owned by the ECalComponent */
gint cal_comp_util_get_n_icons (ECalComponent *comp, GSList **pixbufs);
gint cal_comp_util_get_n_icons (ECalComponent *comp,
GSList **pixbufs);
gboolean cal_comp_is_on_server_sync (ECalComponent *comp,
ECalClient *client,
GCancellable *cancellable,
GError **error);
gboolean cal_comp_is_icalcomp_on_server_sync
(icalcomponent *icalcomp,
(ICalComponent *icomp,
ECalClient *client,
GCancellable *cancellable,
GError **error);
......@@ -79,13 +83,23 @@ ECalComponent * cal_comp_memo_new_with_defaults_sync
GCancellable *cancellable,
GError **error);
void cal_comp_update_time_by_active_window (ECalComponent *comp, struct _EShell *shell);
void cal_comp_update_time_by_active_window
(ECalComponent *comp,
struct _EShell *shell);
void cal_comp_selection_set_string_list (GtkSelectionData *data, GSList *str_list);
GSList *cal_comp_selection_get_string_list (GtkSelectionData *data);
void cal_comp_selection_set_string_list
(GtkSelectionData *data,
GSList *str_list);
GSList * cal_comp_selection_get_string_list
(GtkSelectionData *data);
void cal_comp_set_dtstart_with_oldzone (ECalClient *client, ECalComponent *comp, const ECalComponentDateTime *pdate);
void cal_comp_set_dtend_with_oldzone (ECalClient *client, ECalComponent *comp, const ECalComponentDateTime *pdate);
void cal_comp_set_dtstart_with_oldzone
(ECalClient *client,
ECalComponent *comp,
const ECalComponentDateTime *pdate);
void cal_comp_set_dtend_with_oldzone (ECalClient *client,
ECalComponent *comp,
const ECalComponentDateTime *pdate);
gboolean comp_util_sanitize_recurrence_master_sync
(ECalComponent *comp,
......@@ -93,43 +107,39 @@ gboolean comp_util_sanitize_recurrence_master_sync
GCancellable *cancellable,
GError **error);
gchar *icalcomp_suggest_filename (icalcomponent *icalcomp, const gchar *default_name);
gchar * comp_util_suggest_filename (ICalComponent *icomp,
const gchar *default_name);
void cal_comp_get_instance_times (ECalClient *client,
icalcomponent *icalcomp,
const icaltimezone *default_zone,
time_t *instance_start,
gboolean *start_is_date,
time_t *instance_end,
gboolean *end_is_date,
ICalComponent *icomp,
const ICalTimezone *default_zone,
ICalTime **out_instance_start,
ICalTime **out_instance_end,
GCancellable *cancellable);
time_t cal_comp_gdate_to_timet (const GDate *date,
const icaltimezone *with_zone);
const ICalTimezone *with_zone);
void cal_comp_transfer_item_to (ECalClient *src_client,
void cal_comp_transfer_item_to (ECalClient *src_client,
ECalClient *dest_client,
icalcomponent *icalcomp_vcal,
ICalComponent *icomp_vcal,
gboolean do_copy,
GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data);
gboolean cal_comp_transfer_item_to_finish (ECalClient *client,
gboolean cal_comp_transfer_item_to_finish(ECalClient *client,
GAsyncResult *result,
GError **error);
gboolean cal_comp_transfer_item_to_sync (ECalClient *src_client,
gboolean cal_comp_transfer_item_to_sync (ECalClient *src_client,
ECalClient *dest_client,
icalcomponent *icalcomp_event,
ICalComponent *icomp_event,
gboolean do_copy,
GCancellable *cancellable,
GError **error);
void cal_comp_util_update_tzid_parameter
(icalproperty *prop,
const struct icaltimetype tt);
(ICalProperty *prop,
const ICalTime *tt);
gint cal_comp_util_compare_time_with_today
(const struct icaltimetype time_tt);
gboolean cal_comp_util_remove_all_properties
(icalcomponent *component,
icalproperty_kind kind);
(const ICalTime *time_tt);
gboolean cal_comp_util_have_in_new_attendees
(const GSList *new_attendees_mails,
const gchar *eml);
......@@ -139,9 +149,9 @@ void cal_comp_util_copy_new_attendees
void cal_comp_util_set_added_attendees_mails
(ECalComponent *comp,
GSList *emails);
const gchar * cal_comp_util_find_parameter_xvalue
(icalproperty *prop,
gchar * cal_comp_util_dup_parameter_xvalue
(ICalProperty *prop,
const gchar *name);
gchar * cal_comp_util_get_attendee_comments
(icalcomponent *icalcomp);
(ICalComponent *icomp);
#endif
......@@ -246,7 +246,7 @@ free_alarm (ECalComponentAlarm *alarm)
static ECalComponentAlarm *
copy_alarm (const ECalComponentAlarm *alarm)
{
return e_cal_component_alarm_clone ((ECalComponentAlarm *) alarm);
return e_cal_component_alarm_copy ((ECalComponentAlarm *) alarm);
}
void
......@@ -355,64 +355,63 @@ e_alarm_list_get_path (GtkTreeModel *tree_model,
/* Builds a string for the duration of the alarm. If the duration is zero, returns NULL. */
static gchar *
get_alarm_duration_string (struct icaldurationtype *duration)
get_alarm_duration_string (ICalDuration *duration)
{
GString *string = g_string_new (NULL);
gchar *ret;
gboolean have_something;
guint value;
have_something = FALSE;
if (duration->days >= 1) {
value = i_cal_duration_get_days (duration);
if (value >= 1) {
/* Translator: Entire string is like "Pop up an alert %d days before start" */
g_string_printf (string, ngettext ("%d day", "%d days", duration->days), duration->days);
g_string_printf (string, ngettext ("%d day", "%d days", value), value);
have_something = TRUE;
}
if (duration->weeks >= 1) {
value = i_cal_duration_get_weeks (duration);
if (value >= 1) {
/* Translator: Entire string is like "Pop up an alert %d weeks before start" */
g_string_printf (string, ngettext ("%d week","%d weeks", duration->weeks), duration->weeks);
g_string_printf (string, ngettext ("%d week","%d weeks", value), value);
have_something = TRUE;
}
if (duration->hours >= 1) {
value = i_cal_duration_get_hours (duration);
if (value >= 1) {
/* Translator: Entire string is like "Pop up an alert %d hours before start" */
g_string_printf (string, ngettext ("%d hour", "%d hours", duration->hours), duration->hours);
g_string_printf (string, ngettext ("%d hour", "%d hours", value), value);
have_something = TRUE;
}
if (duration->minutes >= 1) {
value = i_cal_duration_get_minutes (duration);
if (value >= 1) {
/* Translator: Entire string is like "Pop up an alert %d minutes before start" */
g_string_printf (string, ngettext ("%d minute", "%d minutes", duration->minutes), duration->minutes);
g_string_printf (string, ngettext ("%d minute", "%d minutes", value), value);
have_something = TRUE;
}
if (duration->seconds >= 1) {
value = i_cal_duration_get_seconds (duration);
if (value >= 1) {
/* Translator: Entire string is like "Pop up an alert %d seconds before start" */
g_string_printf (string, ngettext ("%d second", "%d seconds", duration->seconds), duration->seconds);
g_string_printf (string, ngettext ("%d second", "%d seconds", value), value);
have_something = TRUE;
}
if (have_something) {
ret = string->str;
g_string_free (string, FALSE);
return ret;
} else {
g_string_free (string, TRUE);
return NULL;
}
return g_string_free (string, !have_something);
}
static gchar *
get_alarm_string (ECalComponentAlarm *alarm)
{
ECalComponentAlarmAction action;
ECalComponentAlarmTrigger trigger;
ECalComponentAlarmTrigger *trigger;
ICalDuration *duration;
const gchar *base;
gchar *str = NULL, *dur;
e_cal_component_alarm_get_action (alarm, &action);
e_cal_component_alarm_get_trigger (alarm, &trigger);
action = e_cal_component_alarm_get_action (alarm);
trigger = e_cal_component_alarm_get_trigger (alarm);
switch (action) {
case E_CAL_COMPONENT_ALARM_AUDIO:
......@@ -440,12 +439,13 @@ get_alarm_string (ECalComponentAlarm *alarm)
/* FIXME: This does not look like it will localize correctly. */
switch (trigger.type) {
switch (trigger ? e_cal_component_alarm_trigger_get_kind (trigger) : E_CAL_COMPONENT_ALARM_TRIGGER_NONE) {
case E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_START:
dur = get_alarm_duration_string (&trigger.u.rel_duration);
duration = e_cal_component_alarm_trigger_get_duration (trigger);
dur = get_alarm_duration_string (duration);
if (dur) {
if (trigger.u.rel_duration.is_neg)
if (i_cal_duration_is_neg (duration))
str = g_strdup_printf (
/*Translator: The first %s refers to the base, which would be actions like
* "Play a Sound". Second %s refers to the duration string e.g:"15 minutes"*/
......@@ -467,10 +467,11 @@ get_alarm_string (ECalComponentAlarm *alarm)
break;
case E_CAL_COMPONENT_ALARM_TRIGGER_RELATIVE_END:
dur = get_alarm_duration_string (&trigger.u.rel_duration);
duration = e_cal_component_alarm_trigger_get_duration (trigger);
dur = get_alarm_duration_string (duration);
if (dur) {
if (trigger.u.rel_duration.is_neg)
if (i_cal_duration_is_neg (duration))
str = g_strdup_printf (
/* Translator: The first %s refers to the base, which would be actions like
* "Play a Sound". Second %s refers to the duration string e.g:"15 minutes" */
......@@ -492,19 +493,19 @@ get_alarm_string (ECalComponentAlarm *alarm)
break;
case E_CAL_COMPONENT_ALARM_TRIGGER_ABSOLUTE: {
struct icaltimetype itt;
icaltimezone *utc_zone, *current_zone;
ICalTime *itt;
ICalTimezone *utc_zone, *current_zone;
struct tm tm;
gchar buf[256];
/* Absolute triggers come in UTC, so convert them to the local timezone */
itt = trigger.u.abs_time;
itt = e_cal_component_alarm_trigger_get_absolute_time (trigger);
utc_zone = icaltimezone_get_utc_timezone ();
utc_zone = i_cal_timezone_get_utc_timezone ();
current_zone = calendar_config_get_icaltimezone ();
tm = icaltimetype_to_tm_with_zone (&itt, utc_zone, current_zone);
tm = e_cal_util_icaltime_to_tm_with_zone (itt, utc_zone, current_zone);
e_time_format_date_and_time (&tm, calendar_config_get_24_hour_format (),
FALSE, FALSE, buf, sizeof (buf));
......
......@@ -49,12 +49,12 @@ struct _ECalComponentPreviewPrivate {
* if it didn't change then the preview is not updated */
gchar *cal_uid;
gchar *comp_uid;
struct icaltimetype comp_last_modified;
ICalTime *comp_last_modified;
gint comp_sequence;
ECalClient *client;
ECalComponent *comp;
icaltimezone *timezone;
ICalTimezone *timezone;
gboolean use_24_hour_format;
};
......@@ -79,25 +79,22 @@ clear_comp_info (ECalComponentPreview *preview)
priv->cal_uid = NULL;
g_free (priv->comp_uid);
priv->comp_uid = NULL;
priv->comp_last_modified = icaltime_null_time ();
priv->comp_sequence = -1;
g_clear_object (&priv->comp_last_modified);
g_clear_object (&priv->client);
g_clear_object (&priv->comp);
if (priv->timezone) {
icaltimezone_free (priv->timezone, 1);
priv->timezone = NULL;
}
g_clear_object (&priv->timezone);
}
/* Stores information about actually shown component and
* returns whether component in the preview changed */
static gboolean
update_comp_info (ECalComponentPreview *preview,
ECalClient *client,
ECalComponent *comp,
icaltimezone *zone,
gboolean use_24_hour_format)
ECalClient *client,
ECalComponent *comp,
ICalTimezone *zone,
gboolean use_24_hour_format)
{
ECalComponentPreviewPrivate *priv;
gboolean changed;
......@@ -115,32 +112,27 @@ update_comp_info (ECalComponentPreview *preview,
const gchar *uid;
gchar *cal_uid;
gchar *comp_uid;
struct icaltimetype comp_last_modified, *itm = NULL;
gint *sequence = NULL;
ICalTime *comp_last_modified;
gint comp_sequence;
source = e_client_get_source (E_CLIENT (client));
cal_uid = g_strdup (e_source_get_uid (source));
e_cal_component_get_uid (comp, &uid);
uid = e_cal_component_get_uid (comp);
comp_uid = g_strdup (uid);
e_cal_component_get_last_modified (comp, &itm);
if (itm) {
comp_last_modified = *itm;
e_cal_component_free_icaltimetype (itm);
} else
comp_last_modified = icaltime_null_time ();
e_cal_component_get_sequence (comp, &sequence);
if (sequence) {
comp_sequence = *sequence;
e_cal_component_free_sequence (sequence);
} else
comp_last_modified = e_cal_component_get_last_modified (comp);
comp_sequence = e_cal_component_get_sequence (comp);
if (comp_sequence < 0)
comp_sequence = 0;
changed = !priv->cal_uid || !priv->comp_uid || !cal_uid || !comp_uid ||
!g_str_equal (priv->cal_uid, cal_uid) ||
!g_str_equal (priv->comp_uid, comp_uid) ||
priv->comp_sequence != comp_sequence ||
icaltime_compare (priv->comp_last_modified, comp_last_modified) != 0;
priv->comp_sequence != comp_sequence;
if (comp_last_modified && priv->comp_last_modified)
changed = changed || i_cal_time_compare (priv->comp_last_modified, comp_last_modified) != 0;
else
changed = changed || comp_last_modified != priv->comp_last_modified;
clear_comp_info (preview);
......@@ -151,7 +143,7 @@ update_comp_info (ECalComponentPreview *preview,
priv->comp = g_object_ref (comp);
priv->client = g_object_ref (client);
priv->timezone = icaltimezone_copy (zone);
priv->timezone = i_cal_timezone_copy (zone);
priv->use_24_hour_format = use_24_hour_format;
}
......@@ -161,26 +153,30 @@ update_comp_info (ECalComponentPreview *preview,
/* Converts a time_t to a string, relative to the specified timezone */
static gchar *
timet_to_str_with_zone (ECalComponentDateTime *dt,
ECalClient *client,
icaltimezone *default_zone)
ECalClient *client,
ICalTimezone *default_zone)
{
struct icaltimetype itt;
icaltimezone *zone = NULL;
ICalTime *itt;
ICalTimezone *zone = NULL;
struct tm tm;
if (dt->tzid != NULL) {
e_cal_client_get_timezone_sync (
client, dt->tzid, &zone, NULL, NULL);
} else if (icaltime_is_utc (*dt->value)) {
zone = icaltimezone_get_utc_timezone ();
if (!dt)
return NULL;
itt = e_cal_component_datetime_get_value (dt);
if (e_cal_component_datetime_get_tzid (dt)) {
if (!e_cal_client_get_timezone_sync (client, e_cal_component_datetime_get_tzid (dt), &zone, NULL, NULL))
zone = NULL;
} else if (i_cal_time_is_utc (itt)) {
zone = i_cal_timezone_get_utc_timezone ();
}
itt = *dt->value;
if (zone != NULL)
icaltimezone_convert_time (&itt, zone, default_zone);
tm = icaltimetype_to_tm (&itt);
i_cal_time_convert_timezone (itt, zone, default_zone);
tm = e_cal_util_icaltime_to_tm (itt);
return e_datetime_format_format_tm ("calendar", "table", itt.is_date ? DTFormatKindDate : DTFormatKindDateTime, &tm);
return e_datetime_format_format_tm ("calendar", "table", i_cal_time_is_date (itt) ? DTFormatKindDate : DTFormatKindDateTime, &tm);
}
static void
......@@ -213,17 +209,18 @@ cal_component_preview_write_html (ECalComponentPreview *preview,
{
ECalClient *client;
ECalComponent *comp;
icaltimezone *default_zone;
ECalComponentText text;
ECalComponentDateTime dt;
ICalTimezone *default_zone;
ECalComponentText *text;
ECalComponentDateTime *dt;
gchar *str;
GString *string;
GSList *list, *iter;
icalcomponent *icalcomp;
icalproperty *icalprop;
icalproperty_status status;
const gchar *location, *url, *tmp;
gint *priority_value;
ICalComponent *icomp;