diff options
Diffstat (limited to 'shell/e-shell.c')
-rw-r--r-- | shell/e-shell.c | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c index 203f3bbec4..b5d6cc5b97 100644 --- a/shell/e-shell.c +++ b/shell/e-shell.c @@ -125,7 +125,7 @@ struct _EShellPrivate { GtkWidget *settings_dialog; /* Configuration Database */ - Bonobo_ConfigDatabase db; + EConfigListener *config_listener; /* Whether the shell is succesfully initialized. This is needed during the start-up sequence, to avoid CORBA calls to do make wrong things @@ -1037,8 +1037,6 @@ destroy (GtkObject *object) priv->is_initialized = FALSE; - e_shell_disconnect_db (shell); - if (priv->iid != NULL) oaf_active_server_unregister (priv->iid, bonobo_object_corba_objref (BONOBO_OBJECT (shell))); @@ -1098,6 +1096,16 @@ destroy (GtkObject *object) e_free_string_list (priv->crash_type_names); + if (priv->settings_dialog != NULL) { + gtk_object_destroy (priv->settings_dialog); + priv->settings_dialog = NULL; + } + + if (priv->config_listener != NULL) { + g_object_unref (priv->config_listener); + priv->config_listener = NULL; + } + g_free (priv); (* GTK_OBJECT_CLASS (parent_class)->destroy) (object); @@ -1254,25 +1262,9 @@ e_shell_construct (EShell *shell, cannot register their own storages. */ if (! setup_corba_storages (shell)) return FALSE; - - CORBA_exception_init (&ev); - - priv->db = bonobo_get_object ("wombat:", "Bonobo/ConfigDatabase", &ev); - if (BONOBO_EX (&ev) || priv->db == CORBA_OBJECT_NIL) { - g_warning ("Cannot access Bonobo/ConfigDatabase on wombat: (%s)", ev._repo_id); - - /* Make sure the DB object is NIL so we don't mess up - (`bonobo_get_object()' might return an undefined value in - the case of an exception). */ - priv->db = CORBA_OBJECT_NIL; - - CORBA_exception_free (&ev); - return E_SHELL_CONSTRUCT_RESULT_NOCONFIGDB; - } - e_setup_check_db (priv->db, local_directory); - - CORBA_exception_free (&ev); + e_setup_check_db (priv->config_listener, local_directory); + /* Now we can register into OAF. Notice that we shouldn't be registering into OAF until we are sure we can complete. */ @@ -2106,11 +2098,11 @@ e_shell_show_settings (EShell *shell, const char *type, EShellView *shell_view) Bonobo_ConfigDatabase -e_shell_get_config_db (EShell *shell) +e_shell_get_config_listener (EShell *shell) { g_return_val_if_fail (E_IS_SHELL (shell), CORBA_OBJECT_NIL); - return shell->priv->db; + return shell->priv->config_listener; } EComponentRegistry * |