diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ChangeLog | 6 | ||||
-rw-r--r-- | shell/Evolution-Shortcuts.idl | 7 | ||||
-rw-r--r-- | shell/e-corba-shortcuts.c | 12 |
3 files changed, 23 insertions, 2 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index 2a09776847..79b0d524ef 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,5 +1,11 @@ 2001-10-02 Ettore Perazzoli <ettore@ximian.com> + * e-shell-view.c (e_shell_view_construct): Use + `bonobo_ui_component_new_default()', not + `bonobo_ui_component_new()'. + +2001-10-02 Ettore Perazzoli <ettore@ximian.com> + * e-shell-view.c (storage_set_removed_folder_callback): New, callback for the ::removed_folder signal on the shell's EStorageSet. diff --git a/shell/Evolution-Shortcuts.idl b/shell/Evolution-Shortcuts.idl index 7ffb55a164..ffd3a9cf21 100644 --- a/shell/Evolution-Shortcuts.idl +++ b/shell/Evolution-Shortcuts.idl @@ -29,6 +29,8 @@ module Evolution { typedef sequence<Group> GroupList; exception NotFound {}; + exception InvalidPosition {}; + exception CannotRemove {}; readonly attribute GroupList groups; // FIXME: Could be non-readonly @@ -39,9 +41,10 @@ module Evolution { Shortcut get (in short group_num, in short item_num) raises (NotFound); - void addGroup (in short position, in string name); + void addGroup (in short position, in string name) + raises (InvalidPosition); void removeGroup (in short group_num) - raises (NotFound); + raises (NotFound, CannotRemove); Group getGroup (in short group_num) raises (NotFound); diff --git a/shell/e-corba-shortcuts.c b/shell/e-corba-shortcuts.c index 076b49d796..6a583d3b00 100644 --- a/shell/e-corba-shortcuts.c +++ b/shell/e-corba-shortcuts.c @@ -179,6 +179,12 @@ impl_addGroup (PortableServer_Servant servant, corba_shortcuts = E_CORBA_SHORTCUTS (bonobo_object_from_servant (servant)); priv = corba_shortcuts->priv; + if (position == 0) { + CORBA_exception_set (ev, CORBA_USER_EXCEPTION, + ex_GNOME_Evolution_Shortcuts_InvalidPosition, NULL); + return; + } + e_shortcuts_add_group (priv->shortcuts, position, name); } @@ -193,6 +199,12 @@ impl_removeGroup (PortableServer_Servant servant, corba_shortcuts = E_CORBA_SHORTCUTS (bonobo_object_from_servant (servant)); priv = corba_shortcuts->priv; + if (group_num == 0) { + CORBA_exception_set (ev, CORBA_USER_EXCEPTION, + ex_GNOME_Evolution_Shortcuts_CannotRemove, NULL); + return; + } + e_shortcuts_remove_group (priv->shortcuts, group_num); } |