If setting the owner fails, print the a warning message out. Then restart

* e-shell.c (set_owner_on_components): If setting the owner fails,
print the a warning message out.  Then restart the component.

* e-component-registry.c (component_free): Return a boolean value.
%FALSE if ::unsetOwner raises an exception.
(register_type): New arg @override_duplicate, to avoid complaining
if a component gets re-registered.
(register_component): Likewise.
(e_component_registry_restart_component): New.

* e-uri-schema-registry.c
(e_uri_schema_registry_set_handler_for_schema): Changed return
type to `void'.  Just remove the old handler and set up the new
one.

* evolution-shell-component-client.c (corba_exception_to_result):
Translate ::OldOwnerHasDied into
EVOLUTION_SHELL_COMPONENT_OLDOWNERHASDIED.

* evolution-shell-component.h: New enum value
`EVOLUTION_SHELL_COMPONENT_OLDOWNERHASDIED'.

* evolution-shell-component.c (impl_setOwner): If the old owner is
not alive anymore [use CORBA_Object_non_existent() to figure this
out], emit OWNER_UNSET and raise `OldOwnerHasDied'.
(evolution_shell_component_result_to_string): New.

* Evolution-ShellComponent.idl: New exception `OldOwnerHasDied'.
(ShellComponent::setOwner): Can raise it.

* e-folder-type-registry.c
(e_folder_type_register_type_registered): New.
(e_folder_type_register_unregister_type): New.

svn path=/trunk/; revision=13446
This commit is contained in:
Ettore Perazzoli
2001-10-05 17:49:35 +00:00
parent a1750a292e
commit fc1e5673bb
12 changed files with 274 additions and 24 deletions

View File

@ -67,6 +67,7 @@ enum _EvolutionShellComponentResult {
EVOLUTION_SHELL_COMPONENT_PERMISSIONDENIED,
EVOLUTION_SHELL_COMPONENT_HASSUBFOLDERS,
EVOLUTION_SHELL_COMPONENT_NOSPACE,
EVOLUTION_SHELL_COMPONENT_OLDOWNERHASDIED,
EVOLUTION_SHELL_COMPONENT_UNKNOWNERROR
};
typedef enum _EvolutionShellComponentResult EvolutionShellComponentResult;
@ -178,6 +179,8 @@ void evolution_shell_component_add_user_creatable_item (EvolutionShellComponen
const char *menu_description,
char menu_shortcut);
const char *evolution_shell_component_result_to_string (EvolutionShellComponentResult result);
#ifdef cplusplus
}
#endif /* cplusplus */