aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/e-shell.c')
-rw-r--r--shell/e-shell.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index d4b8fdf131..e69b04a0a3 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -78,6 +78,7 @@ struct _EShellPrivate {
GList *windows;
+ EUserCreatableItemsHandler *user_creatable_items_handler;
EUriSchemaRegistry *uri_schema_registry;
EComponentRegistry *component_registry;
@@ -354,6 +355,11 @@ impl_dispose (GObject *object)
priv->is_initialized = FALSE;
+ if (priv->user_creatable_items_handler != NULL) {
+ g_object_unref (priv->user_creatable_items_handler);
+ priv->user_creatable_items_handler = NULL;
+ }
+
if (priv->uri_schema_registry != NULL) {
g_object_unref (priv->uri_schema_registry);
priv->uri_schema_registry = NULL;
@@ -460,8 +466,9 @@ e_shell_init (EShell *shell)
EShellPrivate *priv;
priv = g_new0 (EShellPrivate, 1);
- priv->line_status = E_SHELL_LINE_STATUS_OFFLINE;
- priv->component_registry = e_component_registry_new ();
+ priv->line_status = E_SHELL_LINE_STATUS_OFFLINE;
+ priv->component_registry = e_component_registry_new ();
+ priv->user_creatable_items_handler = e_user_creatable_items_handler_new (priv->component_registry);
shell->priv = priv;
}
@@ -866,14 +873,6 @@ e_shell_show_settings (EShell *shell,
}
-EShellUserCreatableItemsHandler *
-e_shell_get_user_creatable_items_handler (EShell *shell)
-{
- g_assert_not_reached (); /* FIXME */
- return NULL;
-}
-
-
const char *
e_shell_construct_result_to_string (EShellConstructResult result)
{
@@ -954,4 +953,13 @@ e_shell_prepare_for_quit (EShell *shell)
}
+EUserCreatableItemsHandler *
+e_shell_peek_user_creatable_items_handler (EShell *shell)
+{
+ g_return_val_if_fail (E_IS_SHELL (shell), NULL);
+
+ return shell->priv->user_creatable_items_handler;
+}
+
+
BONOBO_TYPE_FUNC_FULL (EShell, GNOME_Evolution_Shell, PARENT_TYPE, e_shell)