[evolution/wip/gsettings] Fix crash when adding account in express mode
- From: Rodrigo Moya <rodrigo src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/wip/gsettings] Fix crash when adding account in express mode
- Date: Wed, 29 Jun 2011 17:57:01 +0000 (UTC)
commit aa37f59cfff379a3ee43d846e22ffeea514202e4
Author: Gustavo Noronha Silva <gustavo noronha collabora com>
Date: Tue Jun 28 15:44:45 2011 -0300
Fix crash when adding account in express mode
The settings library started using an EMailBackend object, but since
it is abstract it can't be instantiated directly. So we use the EShell
to get the mail backend for us instead, after loading the modules.
capplet/settings/Makefile.am | 1 +
capplet/settings/mail-capplet-shell.c | 28 +++++++++++++++++++++++++++-
2 files changed, 28 insertions(+), 1 deletions(-)
---
diff --git a/capplet/settings/Makefile.am b/capplet/settings/Makefile.am
index e6ea573..dd8c3c9 100644
--- a/capplet/settings/Makefile.am
+++ b/capplet/settings/Makefile.am
@@ -25,6 +25,7 @@ libevolution_mail_settings_la_CPPFLAGS = \
-DEVOLUTION_PRIVDATADIR=\""$(privdatadir)"\" \
-DEVOLUTION_ETSPECDIR=\""$(etspecdir)"\" \
-DEVOLUTION_ICONSDIR=\""$(imagesdir)"\" \
+ -DEVOLUTION_MODULEDIR=\""$(moduledir)"\" \
-DEVOLUTION_IMAGES=\""$(imagesdir)"\" \
-DEVOLUTION_GALVIEWSDIR=\""$(viewsdir)"\" \
-DEVOLUTION_BUTTONSDIR=\""$(buttonsdir)"\" \
diff --git a/capplet/settings/mail-capplet-shell.c b/capplet/settings/mail-capplet-shell.c
index 5a70fad..ebcb5cd 100644
--- a/capplet/settings/mail-capplet-shell.c
+++ b/capplet/settings/mail-capplet-shell.c
@@ -43,6 +43,8 @@
#include <mail/mail-mt.h>
#include <mail/e-mail-store.h>
+#include <shell/e-shell.h>
+
enum {
CTRL_W_PRESSED,
CTRL_Q_PRESSED,
@@ -202,6 +204,7 @@ mail_capplet_shell_construct (MailCappletShell *shell, gint socket_id, gboolean
{
MailCappletShellPrivate *priv = shell->priv;
GtkStyle *style = gtk_widget_get_default_style ();
+ EShell *eshell;
EMailSession *session;
gchar *custom_dir;
@@ -239,7 +242,30 @@ mail_capplet_shell_construct (MailCappletShell *shell, gint socket_id, gboolean
camel_provider_init ();
- shell->priv->backend = g_object_new (E_TYPE_MAIL_BACKEND, NULL);
+ eshell = e_shell_get_default ();
+
+ if (eshell == NULL) {
+ GError *error = NULL;
+
+ eshell = g_initable_new (
+ E_TYPE_SHELL, NULL, &error,
+ "application-id", "org.gnome.Evolution",
+ "flags", 0,
+ "geometry", NULL,
+ "module-directory", EVOLUTION_MODULEDIR,
+ "meego-mode", FALSE,
+ "express-mode", FALSE,
+ "small-screen-mode", FALSE,
+ "online", FALSE,
+ NULL);
+
+ if (error != NULL)
+ g_error ("%s", error->message);
+
+ e_shell_load_modules (eshell);
+ }
+
+ shell->priv->backend = E_MAIL_BACKEND (e_shell_get_backend_by_name (eshell, "mail"));
session = e_mail_backend_get_session (shell->priv->backend);
shell->view = mail_view_new ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]