aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@gnome-db.org>2011-10-13 18:55:34 +0800
committerRodrigo Moya <rodrigo@gnome-db.org>2011-10-13 18:55:34 +0800
commitcb3e037f8f55f95892104326807d9988be87fbe4 (patch)
treeacac7b63e7a8b1ea4f37273363cb423dbff491ed
parentb77871e4fd7a4464e3a2e4e458f0d10e71805a02 (diff)
parentee5ca188d56abc91ca9fce034322466d5b0f4b9f (diff)
downloadgsoc2013-evolution-cb3e037f8f55f95892104326807d9988be87fbe4.tar.gz
gsoc2013-evolution-cb3e037f8f55f95892104326807d9988be87fbe4.tar.zst
gsoc2013-evolution-cb3e037f8f55f95892104326807d9988be87fbe4.zip
Merge branch 'master' into wip/gsettings
-rw-r--r--addressbook/gui/contact-list-editor/e-contact-list-editor.c51
-rw-r--r--calendar/gui/e-calendar-view.c16
-rw-r--r--calendar/gui/e-calendar-view.h3
-rw-r--r--configure.ac7
-rw-r--r--mail/e-mail-store.c4
-rw-r--r--mail/em-folder-tree.c38
-rw-r--r--mail/mail-config.ui2
-rw-r--r--modules/addressbook/autocompletion-config.c2
-rw-r--r--modules/online-accounts/e-online-accounts-google.c4
-rw-r--r--plugins/backup-restore/org-gnome-backup-restore.error.xml8
-rw-r--r--plugins/google-account-setup/google-source.c9
-rw-r--r--plugins/mark-all-read/mark-all-read.c33
-rw-r--r--plugins/pst-import/pst-importer.c121
-rw-r--r--po/es.po60
-rw-r--r--shell/e-shell-migrate.c10
-rw-r--r--shell/e-shell-window-actions.c2
-rw-r--r--widgets/text/e-text.c6
-rw-r--r--widgets/text/e-text.h1
18 files changed, 251 insertions, 126 deletions
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 57d2acde99..e95d87e3e9 100644
--- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c
+++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
@@ -266,22 +266,38 @@ contact_list_editor_add_email (EContactListEditor *editor,
{
CamelInternetAddress *addr;
EContactListEditorPrivate *priv = editor->priv;
- EDestination *dest = e_destination_new ();
+ EDestination *dest = NULL;
+ gint addr_length;
addr = camel_internet_address_new ();
- if (camel_address_unformat (CAMEL_ADDRESS (addr), email) == 1) {
+ addr_length = camel_address_unformat (CAMEL_ADDRESS (addr), email);
+ if (addr_length >= 1) {
const gchar *name, *mail;
- camel_internet_address_get (addr, 0, &name, &mail);
- e_destination_set_email (dest, mail);
- e_destination_set_name (dest, name);
+ gint ii;
+
+ for (ii = 0; ii < addr_length; ii++) {
+ camel_internet_address_get (addr, ii, &name, &mail);
+
+ if (name || mail) {
+ dest = e_destination_new ();
+ if (mail)
+ e_destination_set_email (dest, mail);
+ if (name)
+ e_destination_set_name (dest, name);
+
+ priv->changed = contact_list_editor_add_destination (WIDGET (DIALOG), dest)
+ || priv->changed;
+ }
+ }
} else {
+ dest = e_destination_new ();
e_destination_set_email (dest, email);
+
+ priv->changed = contact_list_editor_add_destination (WIDGET (DIALOG), dest)
+ || priv->changed;
}
g_object_unref (addr);
- priv->changed = contact_list_editor_add_destination (
- WIDGET (DIALOG), dest) || priv->changed;
-
contact_list_editor_update (editor);
}
@@ -1229,22 +1245,6 @@ setup_custom_widgets (EContactListEditor *editor)
/***************************** GObject Callbacks *****************************/
-static GObject *
-contact_list_editor_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_properties)
-{
- GObject *object;
-
- /* Chain up to parent's constructor() method. */
- object = G_OBJECT_CLASS (parent_class)->constructor (
- type, n_construct_properties, construct_properties);
-
- contact_list_editor_update (E_CONTACT_LIST_EDITOR (object));
-
- return object;
-}
-
static void
contact_list_editor_set_property (GObject *object,
guint property_id,
@@ -1413,6 +1413,8 @@ contact_list_editor_constructed (GObject *object)
setup_custom_widgets (editor);
e_name_selector_load_books (editor->priv->name_selector);
+
+ contact_list_editor_update (E_CONTACT_LIST_EDITOR (object));
}
/**************************** EABEditor Callbacks ****************************/
@@ -1562,7 +1564,6 @@ contact_list_editor_class_init (EContactListEditorClass *class)
g_type_class_add_private (class, sizeof (EContactListEditorPrivate));
object_class = G_OBJECT_CLASS (class);
- object_class->constructor = contact_list_editor_constructor;
object_class->set_property = contact_list_editor_set_property;
object_class->get_property = contact_list_editor_get_property;
object_class->dispose = contact_list_editor_dispose;
diff --git a/calendar/gui/e-calendar-view.c b/calendar/gui/e-calendar-view.c
index 109ce4539d..2a762e411d 100644
--- a/calendar/gui/e-calendar-view.c
+++ b/calendar/gui/e-calendar-view.c
@@ -1826,8 +1826,7 @@ e_calendar_view_move_tip (GtkWidget *widget,
*/
gboolean
-e_calendar_view_get_tooltips (ECalendarView *cal_view,
- const ECalendarViewEventData *data)
+e_calendar_view_get_tooltips (const ECalendarViewEventData *data)
{
GtkWidget *label, *box, *hbox, *ebox, *frame;
const gchar *str;
@@ -1838,7 +1837,7 @@ e_calendar_view_get_tooltips (ECalendarView *cal_view,
time_t t_start, t_end;
ECalendarViewEvent *pevent;
GtkStyle *style = gtk_widget_get_default_style ();
- GtkWidget *widget = (GtkWidget *) g_object_get_data (G_OBJECT (data->cal_view), "tooltip-window");
+ GtkWidget *widget;
GdkWindow *window;
ECalComponent *newcomp = e_cal_component_new ();
icaltimezone *zone, *default_zone;
@@ -1846,12 +1845,17 @@ e_calendar_view_get_tooltips (ECalendarView *cal_view,
ECalClient *client = NULL;
gboolean free_text = FALSE;
- g_return_val_if_fail (E_IS_CALENDAR_VIEW (cal_view), FALSE);
+ /* This function is a timeout callback. */
- model = e_calendar_view_get_model (cal_view);
+ g_return_val_if_fail (data != NULL, FALSE);
+ g_return_val_if_fail (E_IS_CALENDAR_VIEW (data->cal_view), FALSE);
+
+ model = e_calendar_view_get_model (data->cal_view);
/* Delete any stray tooltip if left */
- if (widget)
+ widget = g_object_get_data (
+ G_OBJECT (data->cal_view), "tooltip-window");
+ if (GTK_IS_WIDGET (widget))
gtk_widget_destroy (widget);
default_zone = e_calendar_view_get_timezone (data->cal_view);
diff --git a/calendar/gui/e-calendar-view.h b/calendar/gui/e-calendar-view.h
index 7ebcef7d1c..8d54275d1d 100644
--- a/calendar/gui/e-calendar-view.h
+++ b/calendar/gui/e-calendar-view.h
@@ -248,8 +248,7 @@ void e_calendar_view_modify_and_send (ECalendarView *cal_view,
GtkWindow *toplevel,
gboolean new);
-gboolean e_calendar_view_get_tooltips (ECalendarView *cal_view,
- const ECalendarViewEventData *data);
+gboolean e_calendar_view_get_tooltips (const ECalendarViewEventData *data);
void e_calendar_view_move_tip (GtkWidget *widget,
gint x,
diff --git a/configure.ac b/configure.ac
index b41b83e2ac..f0234435a1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -43,6 +43,7 @@ m4_define([gnome_desktop_minimum_version], [2.91.3])
m4_define([gnome_icon_theme_minimum_version], [2.30.2.1])
m4_define([gsettings_desktop_schemas_minimum_version], [2.91.92])
m4_define([gconf_minimum_version], [2.0.0]) dnl XXX Just a Guess
+m4_define([libgdata_minimum_version], [0.10])
m4_define([libsoup_minimum_version], [2.31.2])
m4_define([libxml_minimum_version], [2.7.3])
m4_define([shared_mime_info_minimum_version], [0.22])
@@ -1250,14 +1251,10 @@ PKG_CHECK_MODULES([LIBSOUP], [libsoup-gnome-2.4 >= libsoup_minimum_version])
AC_SUBST(LIBSOUP_CFLAGS)
AC_SUBST(LIBSOUP_LIBS)
-PKG_CHECK_MODULES([GDATA], [libgdata >= 0.7.0])
+PKG_CHECK_MODULES([GDATA], [libgdata >= libgdata_minimum_version])
AC_SUBST(GDATA_CFLAGS)
AC_SUBST(GDATA_LIBS)
-if `$PKG_CONFIG --atleast-version=0.9 libgdata`; then
- AC_DEFINE(HAVE_LIBGDATA_0_9,1,[libgdata is 0.9 or higher])
-fi
-
dnl ****************************
dnl Check for ical_set_unknown_token_handling_setting function
dnl ****************************
diff --git a/mail/e-mail-store.c b/mail/e-mail-store.c
index e59e7b2abd..4785eb5177 100644
--- a/mail/e-mail-store.c
+++ b/mail/e-mail-store.c
@@ -383,7 +383,7 @@ handle_transport:
camel_url_free (url);
}
- if (!skip && (provider->flags & CAMEL_PROVIDER_IS_STORAGE))
+ if (!skip && (provider->flags & CAMEL_PROVIDER_IS_STORAGE) != 0 && store_table != NULL)
e_mail_store_add (backend, CAMEL_STORE (service));
return CAMEL_STORE (service);
@@ -457,7 +457,7 @@ e_mail_store_remove_by_account (EMailBackend *backend,
provider = camel_service_get_provider (service);
g_return_if_fail (provider != NULL);
- if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE))
+ if (!(provider->flags & CAMEL_PROVIDER_IS_STORAGE) || store_table == NULL)
return;
e_mail_store_remove (backend, CAMEL_STORE (service));
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 1d831cc4e4..973051324f 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -612,6 +612,7 @@ folder_tree_cell_edited_cb (EMFolderTree *folder_tree,
gchar *old_name = NULL;
gchar *old_full_name = NULL;
gchar *new_full_name = NULL;
+ gchar *folder_uri;
gchar **strv;
gpointer parent;
guint index;
@@ -681,7 +682,11 @@ folder_tree_cell_edited_cb (EMFolderTree *folder_tree,
goto exit;
}
-exit:
+ folder_uri = e_mail_folder_uri_build (store, new_full_name);
+ em_folder_tree_set_selected (folder_tree, folder_uri, FALSE);
+ g_free (folder_uri);
+
+ exit:
g_free (old_name);
g_free (old_full_name);
@@ -2004,9 +2009,11 @@ struct _DragDataReceivedAsync {
/* Only selection->data and selection->length are valid */
GtkSelectionData *selection;
+ EMFolderTree *folder_tree;
EMailSession *session;
CamelStore *store;
gchar *full_name;
+ gchar *dest_folder_uri;
guint32 action;
guint info;
@@ -2021,6 +2028,7 @@ folder_tree_drop_folder (struct _DragDataReceivedAsync *m)
CamelFolder *folder;
CamelStore *parent_store;
GCancellable *cancellable;
+ const gchar *folder_name;
const gchar *full_name;
const guchar *data;
@@ -2043,6 +2051,22 @@ folder_tree_drop_folder (struct _DragDataReceivedAsync *m)
parent_store, full_name, m->store,
m->full_name ? m->full_name : "", m->move);
+ folder_name = strrchr (full_name, '/');
+ if (folder_name)
+ folder_name++;
+ else
+ folder_name = full_name;
+
+ if (m->full_name) {
+ gchar *dest_root_name;
+
+ dest_root_name = g_strconcat (m->full_name, "/", folder_name, NULL);
+ m->dest_folder_uri = e_mail_folder_uri_build (m->store, dest_root_name);
+ g_free (dest_root_name);
+ } else {
+ m->dest_folder_uri = e_mail_folder_uri_build (m->store, folder_name);
+ }
+
g_object_unref (folder);
}
@@ -2127,10 +2151,20 @@ folder_tree_drop_async__exec (struct _DragDataReceivedAsync *m,
static void
folder_tree_drop_async__free (struct _DragDataReceivedAsync *m)
{
+ if (m->move && m->dest_folder_uri) {
+ GList *selected_list;
+
+ selected_list = g_list_append (NULL, m->dest_folder_uri);
+ em_folder_tree_set_selected_list (m->folder_tree, selected_list, FALSE);
+ g_list_free (selected_list);
+ }
+
+ g_object_unref (m->folder_tree);
g_object_unref (m->session);
g_object_unref (m->context);
g_object_unref (m->store);
g_free (m->full_name);
+ g_free (m->dest_folder_uri);
gtk_selection_data_free (m->selection);
}
@@ -2213,10 +2247,12 @@ tree_drag_data_received (GtkWidget *widget,
}
m = mail_msg_new (&folder_tree_drop_async_info);
+ m->folder_tree = g_object_ref (folder_tree);
m->session = g_object_ref (session);
m->context = g_object_ref (context);
m->store = g_object_ref (store);
m->full_name = full_name;
+ m->dest_folder_uri = NULL;
m->action = gdk_drag_context_get_selected_action (context);
m->info = info;
diff --git a/mail/mail-config.ui b/mail/mail-config.ui
index 8c788b69ad..616d4eab15 100644
--- a/mail/mail-config.ui
+++ b/mail/mail-config.ui
@@ -605,6 +605,7 @@ for display purposes only. </property>
<property name="xalign">1</property>
<property name="label" translatable="yes">_Reply style:</property>
<property name="use_underline">True</property>
+ <property name="mnemonic_widget">comboboxReplyStyle</property>
</object>
<packing>
<property name="x_options">GTK_FILL</property>
@@ -618,6 +619,7 @@ for display purposes only. </property>
<property name="xalign">1</property>
<property name="label" translatable="yes">_Forward style:</property>
<property name="use_underline">True</property>
+ <property name="mnemonic_widget">comboboxForwardStyle</property>
</object>
<packing>
<property name="top_attach">1</property>
diff --git a/modules/addressbook/autocompletion-config.c b/modules/addressbook/autocompletion-config.c
index be9ddcc427..52a9195b44 100644
--- a/modules/addressbook/autocompletion-config.c
+++ b/modules/addressbook/autocompletion-config.c
@@ -196,7 +196,7 @@ acc_get_general_page (EConfig *ec,
itembox = add_section (vbox, _("Address formatting"), FALSE);
- widget = gtk_check_button_new_with_label (
+ widget = gtk_check_button_new_with_mnemonic (
_("_Format address according to standard of its destination country"));
g_object_bind_property (
shell_settings, "enable-address-formatting",
diff --git a/modules/online-accounts/e-online-accounts-google.c b/modules/online-accounts/e-online-accounts-google.c
index 04d7f9f39a..666c407511 100644
--- a/modules/online-accounts/e-online-accounts-google.c
+++ b/modules/online-accounts/e-online-accounts-google.c
@@ -249,6 +249,8 @@ online_accounts_google_sync_mail (GoaObject *goa_object,
g_object_unref (account);
}
+ e_account_list_save (account_list);
+
g_object_unref (goa_account);
g_object_unref (goa_mail);
}
@@ -327,6 +329,7 @@ online_accounts_google_sync_calendar (GoaObject *goa_object,
}
g_object_unref (source_group);
+ g_object_unref (source_list);
g_object_unref (goa_account);
}
@@ -387,6 +390,7 @@ online_accounts_google_sync_contacts (GoaObject *goa_object,
}
g_object_unref (source_group);
+ g_object_unref (source_list);
g_object_unref (goa_account);
}
diff --git a/plugins/backup-restore/org-gnome-backup-restore.error.xml b/plugins/backup-restore/org-gnome-backup-restore.error.xml
index 398715eb91..6034d89d12 100644
--- a/plugins/backup-restore/org-gnome-backup-restore.error.xml
+++ b/plugins/backup-restore/org-gnome-backup-restore.error.xml
@@ -2,8 +2,8 @@
<error-list domain="org.gnome.backup-restore">
<error id="invalid-backup" type="warning">
- <_primary>Invalid Evolution back up file</_primary>
- <_secondary>Please select a valid back up file to restore.</_secondary>
+ <_primary>Invalid Evolution backup file</_primary>
+ <_secondary>Please select a valid backup file to restore.</_secondary>
</error>
<error id="backup-confirm" type="warning" default="GTK_RESPONSE_CANCEL">
<_primary>Are you sure you want to close Evolution?</_primary>
@@ -12,8 +12,8 @@
<button stock="gtk-cancel" response="GTK_RESPONSE_CANCEL"/>
</error>
<error id="restore-confirm" type="warning" default="GTK_RESPONSE_CANCEL">
- <_primary>Are you sure you want to restore Evolution from the selected back up file?</_primary>
- <_secondary xml:space="preserve">To restore your data and settings, you must first close Evolution. Please make sure that you save any unsaved data before proceeding. This will delete all your current Evolution data and settings and restore them from your back up.</_secondary>
+ <_primary>Are you sure you want to restore Evolution from the selected backup file?</_primary>
+ <_secondary xml:space="preserve">To restore your data and settings, you must first close Evolution. Please make sure that you save any unsaved data before proceeding. This will delete all your current Evolution data and settings and restore them from your backup.</_secondary>
<button _label="Close and Restore Evolution" response="GTK_RESPONSE_YES"/>
<button stock="gtk-cancel" response="GTK_RESPONSE_CANCEL"/>
</error>
diff --git a/plugins/google-account-setup/google-source.c b/plugins/google-account-setup/google-source.c
index e8d3f5a410..a9785ad844 100644
--- a/plugins/google-account-setup/google-source.c
+++ b/plugins/google-account-setup/google-source.c
@@ -434,9 +434,7 @@ retrieve_list_clicked (GtkButton *button,
GtkComboBox *combo)
{
ESource *source;
- #ifdef HAVE_LIBGDATA_0_9
GDataClientLoginAuthorizer *authorizer;
- #endif
GDataCalendarService *service;
GDataFeed *feed;
gchar *user, *password, *tmp;
@@ -467,14 +465,9 @@ retrieve_list_clicked (GtkButton *button,
return;
}
- #ifdef HAVE_LIBGDATA_0_9
authorizer = gdata_client_login_authorizer_new ("evolution-client-0.1.0", GDATA_TYPE_CALENDAR_SERVICE);
service = gdata_calendar_service_new (GDATA_AUTHORIZER (authorizer));
if (!gdata_client_login_authorizer_authenticate (authorizer, user, password, NULL, &error)) {
- #else
- service = gdata_calendar_service_new ("evolution-client-0.1.0");
- if (!gdata_service_authenticate (GDATA_SERVICE (service), user, password, NULL, &error)) {
- #endif
/* Error! */
claim_error (parent, error->message);
g_error_free (error);
@@ -584,9 +577,7 @@ retrieve_list_clicked (GtkButton *button,
}
g_object_unref (service);
- #ifdef HAVE_LIBGDATA_0_9
g_object_unref (authorizer);
- #endif
g_free (user);
}
diff --git a/plugins/mark-all-read/mark-all-read.c b/plugins/mark-all-read/mark-all-read.c
index 4fe19cf71b..5e48a59920 100644
--- a/plugins/mark-all-read/mark-all-read.c
+++ b/plugins/mark-all-read/mark-all-read.c
@@ -277,10 +277,8 @@ scan_folder_tree_for_unread_helper (GtkTreeModel *model,
folder_has_unread =
!is_store && !is_draft &&
- (folder_flags & CAMEL_FOLDER_VTRASH) == 0 &&
((folder_flags & CAMEL_FOLDER_VIRTUAL) == 0 ||
- ((folder_flags & CAMEL_FOLDER_TYPE_MASK) != CAMEL_FOLDER_TYPE_TRASH &&
- (folder_flags & CAMEL_FOLDER_TYPE_MASK) != CAMEL_FOLDER_TYPE_JUNK)) &&
+ (folder_flags & CAMEL_FOLDER_TYPE_MASK) != CAMEL_FOLDER_TYPE_TRASH) &&
unread > 0 && unread != ~((guint) 0);
if (folder_has_unread) {
@@ -384,6 +382,8 @@ mar_got_folder (CamelStore *store,
CamelFolder *folder;
gchar *folder_name;
GError *error = NULL;
+ GPtrArray *uids;
+ gint ii;
alert_sink = e_activity_get_alert_sink (context->activity);
cancellable = e_activity_get_cancellable (context->activity);
@@ -408,26 +408,20 @@ mar_got_folder (CamelStore *store,
g_return_if_fail (CAMEL_IS_FOLDER (folder));
- /* Skip virtual trash/junk folders. */
- if (!CAMEL_IS_VTRASH_FOLDER (folder)) {
- GPtrArray *uids;
- gint ii;
- camel_folder_freeze (folder);
+ camel_folder_freeze (folder);
- uids = camel_folder_get_uids (folder);
+ uids = camel_folder_get_uids (folder);
- for (ii = 0; ii < uids->len; ii++)
- camel_folder_set_message_flags (
- folder, uids->pdata[ii],
- CAMEL_MESSAGE_SEEN,
- CAMEL_MESSAGE_SEEN);
+ for (ii = 0; ii < uids->len; ii++)
+ camel_folder_set_message_flags (
+ folder, uids->pdata[ii],
+ CAMEL_MESSAGE_SEEN,
+ CAMEL_MESSAGE_SEEN);
- camel_folder_free_uids (folder, uids);
-
- camel_folder_thaw (folder);
- }
+ camel_folder_free_uids (folder, uids);
+ camel_folder_thaw (folder);
g_object_unref (folder);
/* If the folder name queue is empty, we're done. */
@@ -602,7 +596,8 @@ update_actions_cb (EShellView *shell_view,
g_object_get (shell_sidebar, "folder-tree", &folder_tree, NULL);
folder_uri = em_folder_tree_get_selected_uri (folder_tree);
- visible = (scan_folder_tree_for_unread (folder_uri) > 0);
+ visible = em_folder_tree_get_selected (folder_tree, NULL, NULL)
+ && scan_folder_tree_for_unread (folder_uri) > 0;
gtk_action_set_visible (action, visible);
g_object_unref (folder_tree);
diff --git a/plugins/pst-import/pst-importer.c b/plugins/pst-import/pst-importer.c
index fc19d7a4fd..89e45e6785 100644
--- a/plugins/pst-import/pst-importer.c
+++ b/plugins/pst-import/pst-importer.c
@@ -384,7 +384,8 @@ add_source_list_with_check (GtkWidget *frame,
const gchar *caption,
EClientSourceType source_type,
GCallback toggle_callback,
- EImportTarget *target)
+ EImportTarget *target,
+ gboolean active)
{
GtkWidget *check, *hbox;
ESourceList *source_list = NULL;
@@ -397,7 +398,7 @@ add_source_list_with_check (GtkWidget *frame,
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 2);
check = gtk_check_button_new_with_mnemonic (caption);
- gtk_toggle_button_set_active ((GtkToggleButton *) check, FALSE);
+ gtk_toggle_button_set_active ((GtkToggleButton *) check, active);
g_signal_connect (check, "toggled", toggle_callback, target);
gtk_box_pack_start ((GtkBox *) hbox, check, FALSE, FALSE, 0);
@@ -429,6 +430,93 @@ add_source_list_with_check (GtkWidget *frame,
}
}
+static void
+pst_import_check_items (EImportTarget *target)
+{
+ gboolean has_mail = FALSE, has_addr = FALSE, has_appt = FALSE, has_task = FALSE, has_journal = FALSE;
+ gchar *filename;
+ pst_file pst;
+ pst_item *item = NULL, *subitem;
+ pst_desc_tree *d_ptr, *topitem;
+
+ filename = g_filename_from_uri (((EImportTargetURI *) target)->uri_src, NULL, NULL);
+
+ if (pst_init (&pst, filename) < 0) {
+ goto end;
+ }
+
+ if ((item = pst_parse_item (&pst, pst.d_head, NULL)) == NULL) {
+ goto end;
+ }
+
+ if ((topitem = pst_getTopOfFolders (&pst, item)) == NULL) {
+ goto end;
+ }
+
+ d_ptr = topitem->child;
+
+ /* Walk through folder tree */
+ while (d_ptr != NULL && (!has_mail || !has_addr || !has_appt || !has_task || !has_journal)) {
+ subitem = pst_parse_item (&pst, d_ptr, NULL);
+
+ if (subitem != NULL &&
+ subitem->message_store == NULL &&
+ subitem->folder == NULL) {
+ switch (subitem->type) {
+ case PST_TYPE_CONTACT:
+ if (subitem->contact)
+ has_addr = TRUE;
+ break;
+ case PST_TYPE_APPOINTMENT:
+ if (subitem->appointment)
+ has_appt = TRUE;
+ break;
+ case PST_TYPE_TASK:
+ if (subitem->appointment)
+ has_task = TRUE;
+ break;
+ case PST_TYPE_JOURNAL:
+ if (subitem->appointment)
+ has_journal = TRUE;
+ break;
+ case PST_TYPE_NOTE:
+ case PST_TYPE_SCHEDULE:
+ case PST_TYPE_REPORT:
+ if (subitem->email)
+ has_mail = TRUE;
+ break;
+ }
+ }
+
+ pst_freeItem (subitem);
+
+ if (d_ptr->child != NULL) {
+ d_ptr = d_ptr->child;
+ } else if (d_ptr->next != NULL) {
+ d_ptr = d_ptr->next;
+ } else {
+ while (d_ptr != topitem && d_ptr->next == NULL) {
+ d_ptr = d_ptr->parent;
+ }
+
+ if (d_ptr == topitem)
+ break;
+
+ d_ptr = d_ptr->next;
+ }
+ }
+
+ pst_freeItem (item);
+
+ end:
+ g_free (filename);
+ g_datalist_set_data (&target->data, "pst-do-mail", GINT_TO_POINTER (has_mail));
+ g_datalist_set_data (&target->data, "pst-do-addr", GINT_TO_POINTER (has_addr));
+ g_datalist_set_data (&target->data, "pst-do-appt", GINT_TO_POINTER (has_appt));
+ g_datalist_set_data (&target->data, "pst-do-task", GINT_TO_POINTER (has_task));
+ g_datalist_set_data (&target->data, "pst-do-journal", GINT_TO_POINTER (has_journal));
+}
+
GtkWidget *
org_credativ_evolution_readpst_getwidget (EImport *ei,
EImportTarget *target,
@@ -439,18 +527,14 @@ org_credativ_evolution_readpst_getwidget (EImport *ei,
GtkWidget *hbox, *framebox, *w, *check;
gchar *foldername;
- g_datalist_set_data (&target->data, "pst-do-mail", GINT_TO_POINTER (TRUE));
- g_datalist_set_data (&target->data, "pst-do-addr", GINT_TO_POINTER (FALSE));
- g_datalist_set_data (&target->data, "pst-do-appt", GINT_TO_POINTER (FALSE));
- g_datalist_set_data (&target->data, "pst-do-task", GINT_TO_POINTER (FALSE));
- g_datalist_set_data (&target->data, "pst-do-journal", GINT_TO_POINTER (FALSE));
+ pst_import_check_items (target);
framebox = gtk_vbox_new (FALSE, 2);
/* Mail */
hbox = gtk_hbox_new (FALSE, 0);
check = gtk_check_button_new_with_mnemonic (_("_Mail"));
- gtk_toggle_button_set_active ((GtkToggleButton *) check, TRUE);
+ gtk_toggle_button_set_active ((GtkToggleButton *) check, GPOINTER_TO_INT (g_datalist_get_data (&target->data, "pst-do-mail")));
g_signal_connect (check, "toggled", G_CALLBACK (checkbox_mail_toggle_cb), target);
gtk_box_pack_start ((GtkBox *) hbox, check, FALSE, FALSE, 0);
@@ -477,19 +561,23 @@ org_credativ_evolution_readpst_getwidget (EImport *ei,
add_source_list_with_check (
framebox, _("_Address Book"),
E_CLIENT_SOURCE_TYPE_CONTACTS,
- G_CALLBACK (checkbox_addr_toggle_cb), target);
+ G_CALLBACK (checkbox_addr_toggle_cb), target,
+ GPOINTER_TO_INT (g_datalist_get_data (&target->data, "pst-do-addr")));
add_source_list_with_check (
framebox, _("A_ppointments"),
E_CLIENT_SOURCE_TYPE_EVENTS,
- G_CALLBACK (checkbox_appt_toggle_cb), target);
+ G_CALLBACK (checkbox_appt_toggle_cb), target,
+ GPOINTER_TO_INT (g_datalist_get_data (&target->data, "pst-do-appt")));
add_source_list_with_check (
framebox, _("_Tasks"),
E_CLIENT_SOURCE_TYPE_TASKS,
- G_CALLBACK (checkbox_task_toggle_cb), target);
+ G_CALLBACK (checkbox_task_toggle_cb), target,
+ GPOINTER_TO_INT (g_datalist_get_data (&target->data, "pst-do-task")));
add_source_list_with_check (
framebox, _("_Journal entries"),
E_CLIENT_SOURCE_TYPE_MEMOS,
- G_CALLBACK (checkbox_journal_toggle_cb), target);
+ G_CALLBACK (checkbox_journal_toggle_cb), target,
+ GPOINTER_TO_INT (g_datalist_get_data (&target->data, "pst-do-journal")));
gtk_widget_show_all (framebox);
@@ -1839,6 +1927,7 @@ static void
pst_process_component (PstImporter *m,
pst_item *item,
const gchar *comp_type,
+ ECalComponentVType vtype,
ECalClient *cal)
{
ECalComponent *ec;
@@ -1848,7 +1937,7 @@ pst_process_component (PstImporter *m,
g_return_if_fail (item->appointment != NULL);
ec = e_cal_component_new ();
- e_cal_component_set_new_vtype (ec, E_CAL_COMPONENT_EVENT);
+ e_cal_component_set_new_vtype (ec, vtype);
fill_calcomponent (m, item, ec, comp_type);
set_cal_attachments (cal, ec, m, item->attach);
@@ -1868,21 +1957,21 @@ static void
pst_process_appointment (PstImporter *m,
pst_item *item)
{
- pst_process_component (m, item, "appointment", m->calendar);
+ pst_process_component (m, item, "appointment", E_CAL_COMPONENT_EVENT, m->calendar);
}
static void
pst_process_task (PstImporter *m,
pst_item *item)
{
- pst_process_component (m, item, "task", m->tasks);
+ pst_process_component (m, item, "task", E_CAL_COMPONENT_TODO, m->tasks);
}
static void
pst_process_journal (PstImporter *m,
pst_item *item)
{
- pst_process_component (m, item, "journal", m->journal);
+ pst_process_component (m, item, "journal", E_CAL_COMPONENT_JOURNAL, m->journal);
}
/* Print an error message - maybe later bring up an error dialog? */
diff --git a/po/es.po b/po/es.po
index 4e560f609f..0064f2c731 100644
--- a/po/es.po
+++ b/po/es.po
@@ -18,8 +18,8 @@ msgstr ""
"Project-Id-Version: evolution.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=evolution&keywords=I18N+L10N\n"
-"POT-Creation-Date: 2011-10-07 14:28+0000\n"
-"PO-Revision-Date: 2011-10-08 14:47+0200\n"
+"POT-Creation-Date: 2011-10-12 13:44+0000\n"
+"PO-Revision-Date: 2011-10-12 17:24+0200\n"
"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"MIME-Version: 1.0\n"
@@ -284,7 +284,7 @@ msgstr "_Usar tal cual es"
#: ../addressbook/gui/contact-editor/contact-editor.ui.h:1
#: ../addressbook/gui/widgets/eab-contact-display.c:715
-#: ../calendar/gui/e-calendar-view.c:2064
+#: ../calendar/gui/e-calendar-view.c:2068
msgid "Anniversary"
msgstr "Aniversario"
@@ -295,7 +295,7 @@ msgstr "Aniversario"
#. * the directory components.
#: ../addressbook/gui/contact-editor/contact-editor.ui.h:2
#: ../addressbook/gui/widgets/eab-contact-display.c:714
-#: ../calendar/gui/e-calendar-view.c:2063 ../capplet/anjal-settings-main.c:79
+#: ../calendar/gui/e-calendar-view.c:2067 ../capplet/anjal-settings-main.c:79
#: ../shell/main.c:138
msgid "Birthday"
msgstr "Cumpleaños"
@@ -705,7 +705,7 @@ msgid "_Suffix:"
msgstr "_Sufijo:"
#: ../addressbook/gui/contact-list-editor/contact-list-editor.ui.h:1
-#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:746
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:762
msgid "Contact List Editor"
msgstr "Editor de listas de contactos"
@@ -731,7 +731,7 @@ msgid "_Type an email address or drag a contact into the list below:"
msgstr ""
"_Teclee una dirección de correo o arrastre un contacto a la lista inferior:"
-#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:869
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:885
msgid "Contact List Members"
msgstr "Miembros de la lista de contactos"
@@ -739,15 +739,15 @@ msgstr "Miembros de la lista de contactos"
msgid "_Members"
msgstr "_Miembros"
-#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:1514
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:1516
msgid "Error adding list"
msgstr "Error al añadir la lista"
-#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:1529
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:1531
msgid "Error modifying list"
msgstr "Error al modificar la lista"
-#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:1544
+#: ../addressbook/gui/contact-list-editor/e-contact-list-editor.c:1546
msgid "Error removing list"
msgstr "Error al eliminar la lista"
@@ -4055,7 +4055,7 @@ msgstr "Actualizando objetos"
#. To Translators: It will display "Organiser: NameOfTheUser <email@ofuser.com>"
#. To Translators: It will display
#. * "Organizer: NameOfTheUser <email@ofuser.com>"
-#: ../calendar/gui/e-calendar-view.c:1908 ../calendar/gui/e-memo-table.c:539
+#: ../calendar/gui/e-calendar-view.c:1912 ../calendar/gui/e-memo-table.c:539
#: ../calendar/gui/e-task-table.c:771
#, c-format
msgid "Organizer: %s <%s>"
@@ -4064,20 +4064,20 @@ msgstr "Organizador: %s <%s>"
#. With SunOne accouts, there may be no ':' in organiser.value
#. With SunOne accounts, there may be no ':' in
#. * organizer.value.
-#: ../calendar/gui/e-calendar-view.c:1912 ../calendar/gui/e-memo-table.c:544
+#: ../calendar/gui/e-calendar-view.c:1916 ../calendar/gui/e-memo-table.c:544
#: ../calendar/gui/e-task-table.c:775
#, c-format
msgid "Organizer: %s"
msgstr "Organizador: %s"
#. To Translators: It will display "Location: PlaceOfTheMeeting"
-#: ../calendar/gui/e-calendar-view.c:1928 ../calendar/gui/print.c:3344
+#: ../calendar/gui/e-calendar-view.c:1932 ../calendar/gui/print.c:3344
#, c-format
msgid "Location: %s"
msgstr "Lugar: %s"
#. To Translators: It will display "Time: ActualStartDateAndTime (DurationOfTheMeeting)"
-#: ../calendar/gui/e-calendar-view.c:1959
+#: ../calendar/gui/e-calendar-view.c:1963
#, c-format
msgid "Time: %s %s"
msgstr "Hora: %s %s"
@@ -11394,13 +11394,13 @@ msgstr "Carpeta de _destino:"
#: ../mail/importers/evolution-mbox-importer.c:145
#: ../plugins/dbx-import/dbx-importer.c:260
-#: ../plugins/pst-import/pst-importer.c:462
+#: ../plugins/pst-import/pst-importer.c:546
msgid "Select folder"
msgstr "Seleccionar carpeta"
#: ../mail/importers/evolution-mbox-importer.c:146
#: ../plugins/dbx-import/dbx-importer.c:261
-#: ../plugins/pst-import/pst-importer.c:463
+#: ../plugins/pst-import/pst-importer.c:547
msgid "Select folder to import into"
msgstr "Seleccione la carpeta en la que importar"
@@ -11430,7 +11430,7 @@ msgstr "Importando buzón de correo"
#. Destination folder, was set in our widget
#: ../mail/importers/mail-importer.c:153
#: ../plugins/dbx-import/dbx-importer.c:610
-#: ../plugins/pst-import/pst-importer.c:663
+#: ../plugins/pst-import/pst-importer.c:751
#, c-format
msgid "Importing '%s'"
msgstr "Importando «%s»"
@@ -13468,7 +13468,6 @@ msgid "EFolderList XML for the list of completion URIs."
msgstr "XML EFolderList para la lista de URI de completado."
#: ../modules/addressbook/apps_evolution_addressbook.schemas.in.h:7
-#| msgid "Calendar information"
msgid "Enable address formatting"
msgstr "Activar formateado de direcciones"
@@ -13571,7 +13570,6 @@ msgid "_Table column:"
msgstr "Columna de _tabla:"
#: ../modules/addressbook/autocompletion-config.c:197
-#| msgid "Free/Busy information"
msgid "Address formatting"
msgstr "Formateado de direcciones"
@@ -18537,7 +18535,7 @@ msgstr "En la carpeta actual y _subcarpetas"
msgid "In Current _Folder Only"
msgstr "Sólo en la carpeta _actual"
-#: ../plugins/mark-all-read/mark-all-read.c:575
+#: ../plugins/mark-all-read/mark-all-read.c:569
msgid "Mark Me_ssages as Read"
msgstr "Marcar los mensajes como _leídos"
@@ -18614,31 +18612,31 @@ msgstr "Importador PST de Outlook"
msgid "Outlook personal folders (.pst)"
msgstr "Carpetas personales de Outlook (.pst)"
-#: ../plugins/pst-import/pst-importer.c:452
+#: ../plugins/pst-import/pst-importer.c:536
msgid "_Mail"
msgstr "Co_rreo"
-#: ../plugins/pst-import/pst-importer.c:471
+#: ../plugins/pst-import/pst-importer.c:555
msgid "Destination folder:"
msgstr "Carpeta de destino:"
-#: ../plugins/pst-import/pst-importer.c:478
+#: ../plugins/pst-import/pst-importer.c:562
msgid "_Address Book"
msgstr "Libreta de _direcciones"
-#: ../plugins/pst-import/pst-importer.c:482
+#: ../plugins/pst-import/pst-importer.c:567
msgid "A_ppointments"
msgstr "Ci_tas"
-#: ../plugins/pst-import/pst-importer.c:486 ../views/tasks/galview.xml.h:3
+#: ../plugins/pst-import/pst-importer.c:572 ../views/tasks/galview.xml.h:3
msgid "_Tasks"
msgstr "_Tareas"
-#: ../plugins/pst-import/pst-importer.c:490
+#: ../plugins/pst-import/pst-importer.c:577
msgid "_Journal entries"
msgstr "Entradas del dia_rio"
-#: ../plugins/pst-import/pst-importer.c:600
+#: ../plugins/pst-import/pst-importer.c:688
msgid "Importing Outlook data"
msgstr "_Importando datos de Outlook"
@@ -19655,6 +19653,12 @@ msgstr "Cambiar la configuración de página para la impresora actual"
msgid "Switch to %s"
msgstr "Cambiar a %s"
+#: ../shell/e-shell-window-actions.c:2314
+#, c-format
+#| msgid "Select A File"
+msgid "Select view: %s"
+msgstr "Seleccionar vista: %s"
+
#: ../shell/e-shell-window-actions.c:2414
msgid "Execute these search parameters"
msgstr "Ejecutar estos parámetros de búsqueda"
@@ -21572,11 +21576,11 @@ msgstr "pulsar"
msgid "sort"
msgstr "ordenar"
-#: ../widgets/text/e-text.c:2325
+#: ../widgets/text/e-text.c:2328
msgid "Select All"
msgstr "Seleccionar todo"
-#: ../widgets/text/e-text.c:2337
+#: ../widgets/text/e-text.c:2340
msgid "Input Methods"
msgstr "Métodos de entrada"
diff --git a/shell/e-shell-migrate.c b/shell/e-shell-migrate.c
index 89f94b0f83..dd75a40b82 100644
--- a/shell/e-shell-migrate.c
+++ b/shell/e-shell-migrate.c
@@ -739,6 +739,10 @@ shell_migrate_get_version (EShell *shell,
const gchar *key;
gchar *string;
+ *major = 0;
+ *minor = 0;
+ *micro = 0;
+
key = GCONF_VERSION_KEY;
client = e_shell_get_gconf_client (shell);
string = gconf_client_get_string (client, key, NULL);
@@ -747,12 +751,6 @@ shell_migrate_get_version (EShell *shell,
/* Since 1.4.0 we've kept the version key in GConf. */
sscanf (string, "%d.%d.%d", major, minor, micro);
g_free (string);
-
- } else {
- /* Otherwise, assume it's a new installation. */
- *major = 0;
- *minor = 0;
- *micro = 0;
}
}
diff --git a/shell/e-shell-window-actions.c b/shell/e-shell-window-actions.c
index f389b4ea00..de4ce86569 100644
--- a/shell/e-shell-window-actions.c
+++ b/shell/e-shell-window-actions.c
@@ -2311,7 +2311,7 @@ e_shell_window_update_view_menu (EShellWindow *shell_window)
action_name = g_strdup_printf (
"gal-view-%s-%d", view_name, ii);
- tooltip = g_strdup_printf ("Select view: %s", item->title);
+ tooltip = g_strdup_printf (_("Select view: %s"), item->title);
radio_action = gtk_radio_action_new (
action_name, item->title, tooltip, NULL, ii);
diff --git a/widgets/text/e-text.c b/widgets/text/e-text.c
index d7512a509a..8e2149cd10 100644
--- a/widgets/text/e-text.c
+++ b/widgets/text/e-text.c
@@ -773,6 +773,7 @@ e_text_set_property (GObject *object,
(color.green & 0xff00) << 8 |
(color.blue & 0xff00) |
0xff);
+ text->rgba_set = TRUE;
text->needs_redraw = 1;
needs_update = 1;
break;
@@ -787,6 +788,7 @@ e_text_set_property (GObject *object,
(color.green & 0xff00) << 8 |
(color.blue & 0xff00) |
0xff);
+ text->rgba_set = TRUE;
text->needs_redraw = 1;
needs_update = 1;
break;
@@ -796,6 +798,7 @@ e_text_set_property (GObject *object,
color.red = ((text->rgba >> 24) & 0xff) * 0x101;
color.green = ((text->rgba >> 16) & 0xff) * 0x101;
color.blue = ((text->rgba >> 8) & 0xff) * 0x101;
+ text->rgba_set = TRUE;
text->needs_redraw = 1;
needs_update = 1;
break;
@@ -1308,7 +1311,7 @@ e_text_draw (GnomeCanvasItem *item,
cairo_save (cr);
- if (text->draw_background || text->draw_button) {
+ if (text->draw_background || text->draw_button || !text->rgba_set) {
gdk_cairo_set_source_color (cr, &style->fg[state]);
} else {
cairo_set_source_rgba (cr,
@@ -3500,6 +3503,7 @@ e_text_init (EText *text)
text->im_context_signals_registered = FALSE;
text->handle_popup = FALSE;
+ text->rgba_set = FALSE;
e_canvas_item_set_reflow_callback (GNOME_CANVAS_ITEM (text), e_text_reflow);
}
diff --git a/widgets/text/e-text.h b/widgets/text/e-text.h
index ef9aefdf34..aa84553ade 100644
--- a/widgets/text/e-text.h
+++ b/widgets/text/e-text.h
@@ -128,6 +128,7 @@ struct _EText {
gint height; /* Rendered text height in pixels */
guint32 rgba; /* RGBA color for text */
+ gboolean rgba_set; /* whether RGBA is set */
gchar *ellipsis; /* The ellipsis characters. NULL = "...". */
gdouble ellipsis_width; /* The width of the ellipsis. */