diff options
author | Bharath Acharya <abharath@novell.com> | 2011-02-07 12:35:22 +0800 |
---|---|---|
committer | Bharath Acharya <abharath@novell.com> | 2011-02-07 12:35:22 +0800 |
commit | ba348cbed126b4b636339d1317ad6a1e908a37b7 (patch) | |
tree | 582059e8b8204cc1c3705cabb98ef809c11e8d23 | |
parent | 596dbbc42212ff54dc71db538cc93969d1ed8bc8 (diff) | |
download | gsoc2013-evolution-ba348cbed126b4b636339d1317ad6a1e908a37b7.tar.gz gsoc2013-evolution-ba348cbed126b4b636339d1317ad6a1e908a37b7.tar.zst gsoc2013-evolution-ba348cbed126b4b636339d1317ad6a1e908a37b7.zip |
Bug #641451 - Crash in folder_selection_button_new
Crash when importing any pst file.
-rw-r--r-- | plugins/dbx-import/dbx-importer.c | 16 | ||||
-rw-r--r-- | plugins/pst-import/pst-importer.c | 14 |
2 files changed, 20 insertions, 10 deletions
diff --git a/plugins/dbx-import/dbx-importer.c b/plugins/dbx-import/dbx-importer.c index 0105dfe236..c7d1e6cb92 100644 --- a/plugins/dbx-import/dbx-importer.c +++ b/plugins/dbx-import/dbx-importer.c @@ -67,6 +67,7 @@ #include <mail/e-mail-backend.h> #include <mail/e-mail-local.h> +#include <mail/em-folder-selection-button.h> #include <mail/mail-mt.h> #include <mail/mail-tools.h> #include <mail/em-utils.h> @@ -90,10 +91,6 @@ gint e_plugin_lib_enable (EPlugin *ep, gint enable); so declare the functions here TODO: sort out whether this should really be private */ -typedef struct _EMFolderSelectionButton EMFolderSelectionButton; -GtkWidget *em_folder_selection_button_new (const gchar *title, const gchar *caption); -void em_folder_selection_button_set_selection (EMFolderSelectionButton *button, const gchar *uri); -const gchar *em_folder_selection_button_get_selection (EMFolderSelectionButton *button); typedef struct { MailMsg base; @@ -189,6 +186,9 @@ folder_selected (EMFolderSelectionButton *button, EImportTargetURI *target) GtkWidget * org_gnome_evolution_readdbx_getwidget (EImport *ei, EImportTarget *target, EImportImporter *im) { + EShell *shell; + EShellBackend *shell_backend; + EMailSession *session; GtkWidget *hbox, *w; GtkLabel *label; gchar *select_uri = NULL; @@ -229,8 +229,14 @@ org_gnome_evolution_readdbx_getwidget (EImport *ei, EImportTarget *target, EImpo label = GTK_LABEL (w); + shell = e_shell_get_default (); + shell_backend = e_shell_get_backend_by_name (shell, "mail"); + session = e_mail_backend_get_session (E_MAIL_BACKEND (shell_backend)); + w = em_folder_selection_button_new ( - _("Select folder"), _("Select folder to import OE folder into")); + session, _("Select folder"), + _("Select folder to import into")); + gtk_label_set_mnemonic_widget (label, w); em_folder_selection_button_set_selection ((EMFolderSelectionButton *)w, select_uri); folder_selected ((EMFolderSelectionButton *)w, (EImportTargetURI *)target); diff --git a/plugins/pst-import/pst-importer.c b/plugins/pst-import/pst-importer.c index d0a69ddece..40cd745bbf 100644 --- a/plugins/pst-import/pst-importer.c +++ b/plugins/pst-import/pst-importer.c @@ -54,6 +54,7 @@ #include <mail/e-mail-backend.h> #include <mail/e-mail-local.h> +#include <mail/em-folder-selection-button.h> #include <mail/mail-mt.h> #include <mail/mail-tools.h> #include <mail/em-utils.h> @@ -100,10 +101,6 @@ gint e_plugin_lib_enable (EPlugin *ep, gint enable); so declare the functions here TODO: sort out whether this should really be private */ -typedef struct _EMFolderSelectionButton EMFolderSelectionButton; -GtkWidget *em_folder_selection_button_new (const gchar *title, const gchar *caption); -void em_folder_selection_button_set_selection (EMFolderSelectionButton *button, const gchar *uri); -const gchar *em_folder_selection_button_get_selection (EMFolderSelectionButton *button); static guchar pst_signature[] = { '!', 'B', 'D', 'N' }; @@ -295,6 +292,9 @@ get_suggested_foldername (EImportTargetURI *target) GtkWidget * org_credativ_evolution_readpst_getwidget (EImport *ei, EImportTarget *target, EImportImporter *im) { + EShell *shell; + EShellBackend *shell_backend; + EMailSession *session; GtkWidget *hbox, *framebox, *w; gchar *foldername; @@ -313,7 +313,11 @@ org_credativ_evolution_readpst_getwidget (EImport *ei, EImportTarget *target, EI g_signal_connect (w, "toggled", G_CALLBACK (checkbox_mail_toggle_cb), target); gtk_box_pack_start ((GtkBox *) hbox, w, FALSE, FALSE, 0); - w = em_folder_selection_button_new (_("Select folder"), _("Select folder to import into")); + shell = e_shell_get_default (); + shell_backend = e_shell_get_backend_by_name (shell, "mail"); + session = e_mail_backend_get_session (E_MAIL_BACKEND (shell_backend)); + + w = em_folder_selection_button_new (session, _("Select folder"), _("Select folder to import into")); foldername = get_suggested_foldername ((EImportTargetURI *) target); ((EImportTargetURI *) target)->uri_dest = g_strdup (foldername); em_folder_selection_button_set_selection ((EMFolderSelectionButton *) w, foldername); |