aboutsummaryrefslogblamecommitdiffstats
path: root/shell/ChangeLog
blob: 338c7798d6207e9dc9801e960c857d0793375a5b (plain) (tree)
1
2

                                                    
















































                                                                          

                                                                         












                                                                         

                                                    




                                                                      




                                                                        


                                                                   












                                                                          





                                                                         




                                                                   




                                                                      

                                                    




                                                                       


























                                                                          




                                                                          










                                                                          



                                                                 




                                                                       





                                                                  







                                                                          







                                                                        




                                                                             
                                                    





















                                                                        










































































                                                                          




























































                                                                                





                                                                         




                                                                       


































































                                                                               



                                                                             





                                                           





                                                             




                                                                  

                                             




                                                                         


                                                                        
                                                    
 



                                                            






                                                                        
 










                                                                      





























                                                                          

                                                    



                                                      
















                                                                        











                                                                      


                                                         





                                                                          



















































                                                                          

                                                    























































                                                                          


                                                                          



                                                                  




                                                                   








                                                                          





































































































                                                                          




                                                                        






















































                                                                          

                                                           





                                                                      



                                                           



































                                                                          




                                                                        

                                                    





























                                                                          





















                                                                          

                                                    












































                                                                          














                                                                          





































                                                                             






                                                                          

                                                    






                                                                   






                                                                         




















































                                                                          

                                                           



                                                           




                                                                         



                                                                          
                                                               
 

                                                    
















                                                                          


                                                                        
                                                    




                                                                


                                                    




                                                                      

                                                    




                                                              





                                                                   




































                                                                          

                                                    








                                                                




                                                                  



                                                                    





                                                                            






                                                                        
                                                    









                                                      






                                                               



                                            





                                                                         












                                                                      






                                                                         







                                                                         




                                                                         

















                                                                          



                                                                           



                                                           




                                                                  




                                                                        








                                                                        



























































































































































































                                                                               
2000-07-01  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (impl_Shell_user_select_folder): New arg
    @allowed_types.  Pass it to the EShellFolderSelectionDialog.
    Connect to the "cancelled" and "folder_selected" signals instead
    of "clicked".
    (corba_listener_destroy_notify): New callback.
    (impl_Shell_user_select_folder): Associate it to the DestroyNotify
    for the "corba_listener" GtkObject data, so we don't leak it.
    (folder_selection_dialog_clicked_cb): Don't release the listener
    interface here.
    (folder_selection_dialog_cancelled_cb): New callback for the
    "cancelled" signal.
    (folder_selection_dialog_folder_selected_cb): New callback for the
    "folder_selected" signal.

    * e-shell-view-menu.c (command_goto_folder): Don't connect to
    "clicked".  Connect to "cancelled" and "folder_selected" instead.
    (folder_selection_dialog_cancelled_cb): New, callback for the
    "cancelled" signal.
    (folder_selection_dialog_folder_selected_cb): New, callback for
    the "folder_selected" signal.

    * e-shell-folder-selection-dialog.c New members `allowed_types',
    `storage_set' in `EShellFolderSelectionDialogPrivate'.
    (class_init): Install signals "folder_selected", "cancelled".
    (init): Init to NULL.
    (impl_destroy): Free/unref them.
    (e_shell_folder_selection_dialog_new): New arg @allowed_types.
    (e_shell_folder_selection_dialog_construct): New arg
    @allowed_types.  Initialize `priv->allowed_types' from it.
    (check_folder_type): New function.  Check if the selected folder
    is of the appropriate type and, if not, return FALSE and pop up an
    error dialog.  Otherwise, return TRUE.
    (impl_clicked): Use `check_folder_type()' to check if the folder
    type is OK.  If it is not, stop emission of the "clicked" signal.

    * e-shell-folder-selection-dialog.h: New signals
    "folder_selected", "cancelled".

    * evolution-shell-client.c
    (evolution_shell_client_user_select_folder): New arg
    @allowed_types.
    (user_select_folder): New arg @allowed_types.  Pass this to the
    ::user_select_folder method.

    * Evolution-Shell.idl: New arg @required_types in
    ::user_select_folder.

2000-07-01  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (setup_components): Don't ref the component registry.

2000-06-30  Dan Winship  <danw@helixcode.com>

    * Evolution-Shell.idl: add "cancel" to FolderSelectionListener.

    * evolution-shell-client.c (impl_FolderSelectionListener_cancel):
    Implement cancel (set *uri and *physical_uri to NULL).
    (evolution_shell_client_user_select_folder): document %NULL uri
    and physical_uri return values.
    
    * e-shell.c (folder_selection_dialog_clicked_cb): If the user
    clicked "Cancel" or used the wm to close the dialog, call _cancel
    instead of _selected.

2000-06-30  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-shell-component.c (impl_ShellComponent_set_owner):
    Duplicate the object before storing it, you doofus.

2000-06-30  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-shell-component.c (impl_ShellComponent_unset_owner):
    NULL the owner_client.

2000-06-30  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-shell-client.h
    (evolution_shell_client_user_select_folder): Add prototype.

2000-06-29  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-shell-component.c: New member `owner_client'.  Removed
    member `corba_owner'.  All the code updated to use it.
    (evolution_shell_component_get_owner): Changed so that it returns
    an EvolutionShellClient instead of the raw CORBA object.

    * evolution-shell-component.h: Change signal "owner_set" to get an
    EvolutionShellClient wrapper instead of a CORBA interface.

    * evolution-shell-client.c: New.
    * evolution-shell-client.h: New.

2000-06-29  Dan Winship  <danw@helixcode.com>

    * evolution-shell-component-client.c
    (evolution_shell_component_client_new): Update warning message to
    not say "CRASHING", since it won't if you have current bonobo.

2000-06-29  Peter Williams  <peter@beta.newton.cx>

    * e-shell.c (e_shell_restore_from_settings): Check for the 
    insanely invalid NumberOfViews = 0 case.

2000-06-29  Peter Williams  <peter@helixcode.com>

    * e-shell.c (e_shell_construct): Ref the various E-things that
    we create to go with our unrefs in the destructor.

2000-06-29  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c (e_shell_view_construct): Don't ref the shell.
    (destroy): Don't unref the shell.

2000-06-29  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c (e_shortcuts_construct): Fix typo: @shortcuts
    should unset `GTK_FLOATING', not @storage_set.

    * e-shell-view.c (get_storage_set_path_from_uri): If @uri is NULL,
    return NULL.

    * main.c (idle_cb): Restore the shell from the settings.  If this
    fails, just create a new view.

    * e-shell.c (e_shell_save_settings): New.
    (e_shell_quit): Save settings before exiting.
    (e_shell_restore_from_settings): New.

    * e-shell-view.c (e_shell_view_save_settings): New.
    (e_shell_view_load_settings): New.

    * main.c (idle_cb): Initialize Gconf, create the GConfClient and
    pass it to `e_shell_new()'.

    * e-shell.c: New member `gconf_client' in `EShellPrivate'.
    (destroy): Unref it if not NULL.
    (init): Init to NULL.
    (e_shell_new): New param @gconf_client.
    (e_shell_construct): Likewise.

    * Makefile.am (INCLUDES): Add `GCONF_CFLAGS'.

2000-06-27  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct):
    Enable the title bar button.

2000-06-27  Michael Zucchi  <zucchi@zedzone.mmc.com.au>

    * e-shell.c (folder_selection_dialog_clicked_cb): Close the dialog
    when done.  Dont do anything if 'new' was pressed, and always
    return empty strings if 'cancel' was pressed.

2000-06-27  Michael Zucchi  <zucchi@zedzone.mmc.com.au>

    * e-shell.c (impl_Shell_user_select_folder): Set the listener as
    the corba_listener data, not the shell.

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

    * glade/Makefile.am: Added EXTRA_DIST for make distcheck.

2000-06-19  Ettore Perazzoli  <ettore@helixcode.com>

    * e-local-storage.c: Don't #define POSIX_SOURCE at all; this is
    not needed anymore as we no longer use `readdir_r'.

2000-06-19  Chris Toshok  <toshok@helixcode.com>

    * e-local-storage.c: #undef _POSIX_SOURCE after including
    dirent.h.  this breaks the build on freebsd if we leave it
    #defined.  go figure.

2000-06-19  Dan Winship  <danw@helixcode.com>

    * evolution-shell-component-client.c
    (evolution_shell_component_client_new): Add a warning before
    crashing due to a known bug when it can't activate a component, so
    people don't have to waste any time trying to figure out what's
    up.

2000-06-13  Ettore Perazzoli  <ettore@helixcode.com>

    * Makefile.am: Compile the CORBA-built files,
    evolution-shell-component.c and evolution-storage.c into a
    separate `libeshell.a' library.  Link the `evolution' executable
    to it.  Also cleaned up a bit and got rid of the `CPP_FLAGS'
    assignment.

2000-06-12  Michael Meeks  <michael@helixcode.com>

    * e-shell-folder-selection-dialog.c: include gnome-dialog.h
    (PARENT_TYPE): GNOME_TYPE_DIALOG replaced with gnome_dialog_get_type.

2000-06-10  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (impl_Shell_user_select_folder): New, implementation
    for `Shell:user_select_folder'.
    (corba_class_init): Install it.
    (folder_selection_dialog_clicked_cb): Callback for the folder
    selection dialog.

    * Evolution-Shell.idl: New method `Shell::user_select_folder'.
    New interface `FolderSelectionListener'.

    * glade/e-shell-folder-creation-dialog.glade: Make it larger.

    * e-shell-folder-creation-dialog.h: Fix typo: #include
    <gtk/gtkwindow.h>, not <gtk/gtkwidget.h>.

    * e-shell-view-menu.c: Added "Go to folder..." command.
    (commmand_goto_folder): Implementation for it.

    * e-shell-folder-selection-dialog.c: New.
    * e-shell-folder-selection-dialog.h: New.

2000-06-10  Ettore Perazzoli  <ettore@helixcode.com>

    * e-local-folder.c (save_metadata): Don't set the description in
    the XML file if null.  Compute the physical path correctly.

    * e-folder.c (e_folder_construct): Allow NULL description.

    * evolution-shell-component-client.c (init): Initalize
    `listener_interface' to `CORBA_OBJECT_NIL' and `listener_servant'
    to NULL.
    (create_listener_interface): Return void and set the `servant' and
    `listener_servant' fields directly.
    (evolution_shell_component_client_async_create_folder): Updated
    accordingly.

    * e-shell-folder-creation-dialog.c: New struct `DialogData' to be
    passed to the dialog's callbacks.
    (dialog_data_destroy): New.
    (e_shell_show_folder_creation_dialog): Set up a `DialogData'
    object and pass it as the data for the signals.
    (shell_destroy_cb): New handler for the "destroy" signal on the
    shell.
    (e_shell_show_folder_creation_dialog): Connect it.
    (dialog_destroy_cb): New handler for the "destroy" signal on the
    dialog; it frees the associated `DialogData'.
    (e_shell_show_folder_creation_dialog): Connect it.
    (async_create_cb): New function, callback for the async folder
    creation function.
    (entry_name_is_valid): New function to check if the entered folder
    name is valid.
    (dialog_clicked_cb): Check if the specified folder name is valid
    and, if so, asynchronously create the new folder.
    (add_folder_types): Set "type_name" data on each menu item.

    * e-storage-set-view.c (e_storage_set_view_get_current_folder):
    New function.

    * e-storage-set.c (get_storage_for_path): New helper function.
    (e_storage_set_get_folder): Use it.

    * e-storage.c (e_storage_async_create_folder): Renamed from
    `e_storage_create_folder'.
    (e_storage_remove_folder): Renamed from `e_storage_remove_folder'.
    (impl_create_create_folder): Renamed from `impl_create_folder'.
    (impl_create_remove_folder): Renamed from `impl_remove_folder'.
    (class_init): Updated accordingly.
    (e_storage_result_to_string): New function.

    * e-storage.h: `::create_folder' renamed to
    `::async_create_folder'.  `::remove_folder' renamed to
    `::async_remove_folder'.

    * evolution-shell-component.h: Return type of
    `EvolutionShellComponentCreateFolderFn' and
    `EvolutionShellComponentRemoveFolderFn' changed to `void'.

    * e-local-storage.c: `EComponentRegistry component_registry'
    replaced with `EFolderTypeRegistry folder_type_registry' in
    `ELocalStoragePrivate'
    (component_async_create_folder_callback): New function, to handle
    the callback from EvolutionShellComponent.
    (construct): Likewise.
    (e_local_storage_open): Replaced @component_registry with
    @folder_type_registry.
    (impl_create_folder): Implemented.

    * e-local-folder.c (e_local_folder_new): New.
    (e_local_folder_construct): New.
    (e_local_folder_save): Precondition: physical URI is not NULL.
    (save_metadata): Unlink the metadata file if `xmlSaveFile()'
    fails.

    * e-storage.c (e_storage_create_folder): Precondition: @path is
    absolute.
    (e_storage_remove_folder): Likewise.

2000-06-09  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view-menu.c: Removed folder menu and "save as..." command.

    * main.c (main): Call `glade_gnome_init()'.

    * e-shell-view-menu.c (command_new_folder): Implemented.

    * e-shell-folder-creation-dialog.c: New.
    * e-shell-folder-creation-dialog.h: New.

    * glade/Makefile.am: New.
    * glade/e-shell-folder-creation-dialog.glade: New.

    * e-shell-view.c (e_shell_view_get_current_uri): New.

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

    * e-shell-view.c (get_control_for_uri): Updated to use
    `EvolutionShellComponentClient'.

    * e-folder-type-registry.c: Use `EvolutionShellComponentClient's
    instead of `BonoboObjectClient's.

    * e-component-registry.c: Use `EvolutionShellComponentClient'
    instead of `BonoboObjectClient' in `Component'.
    (component_new): Updated accordingly.
    (register_component): Likewise.

    * evolution-shell-component-client.h: New.
    * evolution-shell-component-client.c: New.

    * evolution-shell-component.c
    (impl_ShellComponent_async_create_folder): New, implementation of
    `::async_create_folder'.
    (impl_ShellComponent_async_remove_folder): New, implementation of
    `::async_remove_folder'.
    (corba_class_init): Install them.
    (evolution_shell_component_new): New args `create_folder_fn' and
    `remove_folder_fn' for setting the handlers for these new methods.
    (evolution_shell_component_construct): Likewise.

    * Evolution-ShellComponent.idl
    (ShellComponent::async_create_folder): New.
    (ShellComponent::async_remove_folder): New.
    (ShellComponentListener): New.

    * evolution-shell-component.c (impl_ShellComponent_create_view):
    New param @type.  Use the new `EvolutionShellComponentCreateViewFn'.

    * evolution-shell-component.h: New enum `EvolutionShellComponentResult'.
    Changed `EvolutionShellComponentCreateViewFn' to return an
    `EvolutionShellComponentResult'.

    * e-shell-view.c (get_control_for_uri): Pass the folder type to
    `ShellComponent::create_view'.

    * Evolution-ShellComponent.idl: New param @type for
    `ShellComponent::create_view'.

2000-06-08  Miguel de Icaza  <miguel@helixcode.com>

    * main.c (development_warning): Use version here.  Add padding to
    the message.
    Only destroy object if its window was not closed.

2000-06-08  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c (setup_bonobo_ui_handler): Oops.  Don't create
    the toolbar.  This was not supposed to be committed.

2000-06-07  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage.c (folder_destroy): Don't destroy the subfolders.
    (remove_folder): New helper function.
    (free_private): Use it.
    (e_storage_removed_folder): Use it here too.
    (folder_destroy): Don't unref the EFolder if NULL.

    * e-storage-set-view.c (e_storage_set_view_construct): Use
    `gtk_signal_connect_while_alive()' instead of just
    `gtk_signal_connect()' so that the signal handler is automatically
    removed when we are destroyed.

    * e-storage-set.c (e_storage_set_remove_all_storages): New
    function.

    * e-shell-view.c (e_shell_view_construct): Use `bonobo_object_ref'
    on the shell instead of `gtk_object_ref'.
    (destroy): Unref the shell.

    * e-local-storage.h: #include "e-component-registry.h".

    * e-shell.c (setup_local_storage): Renamed from `setup_storages'.
    Only set up the local storage, not the CORBA one, and don't create
    the storage set.
    (e_shell_construct): Create the storage set here instead.  Call
    `setup_local_storage' after setting up the components.

    * e-local-storage.c: New member `component_registry' in
    `ELocalStoragePrivate'.
    (init): Init to NULL.
    (destroy): If not null, unref it.
    (e_local_storage_open): New arg @component_registry.
    (construct): New arg @component_registry.  Init
    `priv->component_registry' from it.

    * e-local-storage.c (impl_get_name): Renamed from `get_name'.
    (impl_create_folder): New function, implementing
    `EStorage::create_folder'.  Just a stub for now.
    (impl_remove_folder): New function, implementing
    `EStorage::remove_folder'.  Just a stub for now.
    (class_init): Install these stub implementations.

    * e-storage.c (e_storage_remove_folder): New function.
    (e_storage_create_folder): New function.
    (impl_create_folder): New function, default implementation for
    `::create_folder'.
    (impl_remove_folder): New function, default implementation for
    `::remove_folder'.
    (class_init): Install the implementations.

    * e-storage.c (impl_get_name): Renamed from `get_name'.
    (impl_get_folder): Renamed from `get_folder'.
    (impl_list_folders): Renamed from `list_folders'.

    * e-storage.h: New virtual methods `remove_folder',
    `create_folder'.

    * e-storage.c (e_storage_removed_folder): Renamed from
    `e_storage_remove_folder'.
    * e-corba-storage.c (impl_StorageListener_removed_folder): Updated
    accordingly.

2000-06-02  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c (setup_bonobo_ui_handler): Create the default toolbar.

2000-06-02  Jeffrey Stedfast  <fejj@helixcode.com>

    * e-shell-view-menu.c: Changed "Using the Shell" to "Getting Started"

2000-06-02  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view.c: Free the uri variable.

    * e-shell.c: Free the local_directory variable.

2000-06-02  Ettore Perazzoli  <ettore@helixcode.com>

    * main.c (view_delete_event_cb): New callback for the
    "delete_event" on the view.
    (idle_cb): Connect it.

2000-06-01  Christopher James Lahey  <clahey@helixcode.com>

    * e-storage-set-view.c (set_e_shortcut_selection): Added a
    g_return_if_fail check.

2000-06-01  Dan Winship  <danw@helixcode.com>

    * e-shell-view-menu.c (command_help): New menu callback to launch
    the help browser.
    (menu_help): add pointers to the users' guide.
    (e_shell_view_menu_setup): Add the help menu stuff to the uih.

    * main.c (main): Set up gettext. (Problem noted by Héctor García
    Alvarez)

2000-06-01  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c (DEFAULT_WIDTH): Add more 5 pixels.

2000-06-01  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c (DEFAULT_WIDTH): Made the default window a bit
    narrower.
    (DEFAULT_HEIGHT): And shorter.
    (setup_widgets): Set the border width of the vbox that holds the
    title bar to 2 pixels, so that the view looks a bit nicer.

2000-06-01  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c (DEFAULT_TREE_WIDTH): Made the tree 150 pixel
    wide [instead of 100].
    (setup_widgets): Use `DEFAULT_TREE_WIDTH' instead of
    `DEFAULT_SHORTCUT_BAR_WIDTH' where appropriate.
    (e_shell_view_construct): Hide the folder bar by default.

    * e-storage-set-view.c (e_storage_set_view_construct): Set
    auto-resize mode for column one.

2000-06-01  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view-menu.c (e_shell_view_menu_setup): Set the
    statusbar.

    * e-shell-view.c: New member `appbar' for `EShellViewPrivate'.
    (init): Initialize to NULL.
    (setup_widgets): Install a status bar and set `appbar' to point to
    it.
    (setup_bonobo_ui_handler): Make the BonoboUIHandler use `appbar'
    as its statusbar.
    (e_shell_view_get_appbar): New function.
    (e_shell_view_construct): Set up the BonoboUIHandler after setting
    up the widgets.

    * e-shortcuts.c (class_init): Add new signals "new_shortcut",
    "removed_shortcut", "new_group", "removed_group".
    (e_shortcuts_remove_shortcut): Emit "remove_shortcut".
    (e_shortcuts_add_shortcut): Emit "new_shortcut".
    (e_shortcuts_remove_group): Emit "remove_group".
    (e_shortcuts_add_group): Emit "new_group".
    (unload_shortcuts): Emit "remove_group" for all the groups.

    * e-shortcuts.h: New signals "new_shortcut", "removed_shortcut",
    "new_group", "removed_group".

    * e-shortcuts-view.c (pop_up_right_click_menu): New function to
    pop up the right-click menu for the shortcut bar.
    (pop_up_right_click_menu_for_shortcut): New function.
    (selected_item): Pop up right click menu when appropriate.  Don't
    activate the shortcut when right-clicking.

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-storage.h: #include 'Evolution.h".

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c (show_error): Use `set_current_notebook_page()'
    instead of `gtk_notebook_set_page()'; this will also deactivate
    the current control properly.

    * e-shell-view-menu.c (e_shell_view_menu_setup): Initialize the
    state of the shortcut/folder toggle menu items using
    `e_shell_view_get_shortcut_bar_mode()' and
    `e_shell_view_get_folder_bar_mode()'.
    (command_toggle_shortcut_bar): Removed debugging message.
    (command_toggle_folder_bar): Likewise.

    * e-shell-view.c (e_shell_view_get_shortcut_bar_mode): New
    function.
    (e_shell_view_get_folder_bar_mode): New function.

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c: New constant `DRAG_RESISTANCE'.  New
    members `button_x', `button_y' in `EStorageSetViewPrivate'.
    (init): Initialize to zero.
    (button_press_event): Set.
    (motion_notify_event): Don't start drag unless the current x/y
    position is farther than `DRAG_RESISTANCE', in any of the two
    directions, from the original position of the button click.
    (button_release_event): Always ungrab the pointer, even if
    `selected_row_path' is NULL.

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-shell-component.c (class_init): Eeek!
    s/owner_set/owner_unset/.

    * e-shell-folder-title-bar.c (e_shell_folder_title_bar_construct):
    Increase the size of the border of the hbox slightly to make the
    title bar a bit nicer.

2000-05-31  Ettore Perazzoli  <ettore@helixcode.com>

    * e-component-registry.c (component_free): Invoke `::unset_owner'
    on the component before releasing it.

    * evolution-shell-component.c (class_init): Install the
    "owner_set" signal.
    (impl_ShellComponent_unset_owner): New function, implementation of
    `ShellComponent::unset_owner'.
    (corba_class_init): Install it.

    * evolution-shell-component.h: New signal "owner_unset".

    * Evolution-ShellComponent.idl: New method `ShellComponent::
    unset_owner'.

    * e-shell.c (e_shell_quit): Destroy all the views explicitly.

    * e-shell-view-menu.c: Changed `Show shortcut bar' and `Show
    folder tree' items into toggle items.
    (shortcut_bar_mode_changed_cb): New callback to update the status
    of the "show shortcut bar" toggle item when the shortcut bar is
    hidden/shown in the view.
    (folder_bar_mode_changed_cb): Likewise for the folder bar.
    (e_shell_view_menu_setup): Connect these to the corresponding
    signals on the shell.

    * e-shell-view.c: New members `shortcut_bar_mode' and
    `folder_bar_mode' in `EShellViewPrivate'.
    (init): Initialize `shortcut_bar_mode' and `folder_bar_mode' to
    `E_SHELL_VIEW_SUBWINDOW_HIDDEN'.
    (class_init): Add the new signals.
    (e_shell_view_set_shortcut_bar_mode): Renamed from
    `e_shell_view_show_shortcuts'.  Emit "shortcut_bar_mode_changed"
    and update the `shortcut_bar_mode' member.
    (e_shell_view_set_folder_bar_mode): Renamed from
    `e_shell_view_show_folders'.  Emit "folder_bar_mode_changed" and
    update the `folder_bar_mode' member.

    * e-shell-view.h: New signals "shortcut_bar_mode_changed",
    "folder_bar_mode_changed".

    * e-shell-view.c (setup_menus): Removed.
    (e_shell_view_construct): Use `e_shell_view_menu_setup' instead.
    (e_shell_view_get_bonobo_ui_handler): New function.

    * e-shell-view-menu.c (e_shell_view_menu_setup): New.

    * e-shell.c (impl_Shell_get_component_for_type): New function,
    implementation of `Evolution::Shell::get_component_for_type'.
    (corba_class_init): Install it into the EPV.

    * Evolution-Shell.idl: Added method `get_component_for_type'.

2000-05-30  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c: New members `dirty', `save_idle_id' in
    `EShortcutsPrivate'.
    (init): Initialize.
    (destroy): If the idle ID is nonzero, remove the idle.  If `dirty'
    is true, save.
    (idle_cb): New.
    (schedule_idle): New.
    (make_dirty): New.
    (e_shortcuts_remove_shortcut): Call it.
    (e_shortcuts_add_shortcut): Likewise.
    (e_shortcuts_remove_group): Likewise.
    (e_shortcuts_add_group): Likewise.

    * e-shell.c (e_shell_construct): Updated to match the `EShortcuts'
    API changes.

    * e-shortcuts.c: New member `file_name' in `EShortcutsPrivate'.
    (init): Init to NULL.
    (destroy): Free it.
    (e_shortcuts_load): Removed.
    (e_shortcuts_save): Removed.
    (e_shortcuts_new): New arg @file_name.  Load from the specified
    file name.

    * e-shortcuts-view.c (added_item): New method implementation.
    (removed_item): New method implementation.
    (added_group): New method implementation.
    (removed_group): New method implementation.
    (class_init): Install these.

    * e-shortcuts.c (e_shortcuts_remove_shortcut): New function.
    (e_shortcuts_add_shortcut): New function.
    (e_shortcuts_remove_group): New function.
    (e_shortcuts_add_group): New function.

    * e-shell-view.c: New member `view_title_bar' in
    `EShellViewPrivate'.
    (setup_widgets): Put an EShellFolderTitleBar on top of the tree
    view and the content view.
    (update_window_icon): Renamed from `set_icon'.
    (update_folder_title_bar): New.
    (popup_tree): New function to pop up the tree view when the title
    button in the title bar is clicked.
    (folder_title_clicked_cb): New callback for the "clicked" signal
    of EShellFolderTitleBar.
    (setup_widgets): Don't add a title bar to the shortcut bar.
    (create_storage_set_subwindow): New helper function.
    (setup_widgets): Use it.
    (show_error): Use an EClippedLabel instead of a GtkLabel.

    * e-shell-view.c: Replaced all the occurences of `gpointer' with
    `void *' for consistency.

    * e-shell-folder-title-bar.c: New file.
    * e-shell-folder-title-bar.h: New file.

    * e-storage-set-view.c (e_storage_set_view_construct): Ooops.  Fix
    inverted key/value pair in the call to `g_hash_table_insert()'.

2000-05-28  Dan Winship  <danw@helixcode.com>

    * main.c (main): Remove extra free of evolution_directory.

2000-05-28  Ettore Perazzoli  <ettore@helixcode.com>

    * evolution-storage.c (evolution_storage_register): Use the
    storage's name when registering.

2000-05-26  Matt Loper  <matt@helixcode.com>

    * e-shell-view-menu.c (command_about_box): Make authorlist more
    alphabetical.
    (command_show_treeview): New function; shows the treeview, when it
    has been hidden.
    (command_show_shortcut_bar): New function; shows the shortcut bar,
    when it's been hidden.

2000-05-26  Ettore Perazzoli  <ettore@helixcode.com>

    * e-corba-storage.c (impl_StorageListener_new_folder): Set the
    physical URI on the folder using `e_folder_set_physical_uri()'.

    * e-local-folder.c (get_physical_uri): Removed.
    (construct_loading_metadata): Use EFolder's `physical_uri' field
    instead of ours, which is gone.
    (save_metadata): Likewise.
    (destroy): Don't free.

    * e-local-folder.h: Removed `physical_uri' from `ELocalFolder'.

    * e-folder.c: New member `physical_uri' in `EFolderPrivate'.
    (init): Initialize to NULL.
    (destroy): Free it.
    (get_physical_uri): Removed.
    (e_folder_set_physical_uri): New function.

    * e-storage-set.c (e_storage_set_get_folder): Fix off-by-one error
    in extracting the base name.

    * e-storage.c: New member `path' in `Folder'.
    (folder_destroy): Free it.
    (folder_new): New arg.  Initialize `path' from it.
    (e_storage_construct): Updated accordingly.
    (e_storage_new_folder): Likewise.
    (e_storage_remove_folder): Remove the folder from the hash.

    * e-storage-set-view.c (remove_node): New function.
    (removed_storage_cb): Use it.
    (new_folder_cb): New function, callback for the "new_folder"
    signal on the EStorageSet.
    (removed_folder_cb): New function, callback for the
    "removed_folder" signal on the EStorageSet.
    (e_storage_set_view_construct): Connect these signal handlers to
    the respective signals on our model storage.

    * e-storage-set.c (storage_new_folder_cb): New function, callback
    for the "new_folder" signal on the storages.
    (storage_removed_folder_cb): New function, callback for the
    "removed_folder" signal on the storages.
    (e_storage_set_add_storage): Connect them to the signals of the
    storage being added.

    * e-corba-storage-registry.c
    (impl_StorageRegistry_register_storage): Throw an exception if
    `e_storage_set_add_storage()' returns false.

    * e-shell.c (setup_storages): Unref the local storage after adding
    to the storage set.

    * e-corba-storage-registry.c
    (impl_StorageRegistry_register_storage): Unref the storage after
    adding to the storage set.

    * e-storage-set.c: New hash table `name_to_named_storage' in
    `EStorageSetPrivate'.
    (named_storage_new): New helper function.
    (named_storage_destroy): New helper function.
    (e_storage_set_add_storage): Use the hash table.  Return value
    changed to `gboolean'.  Return FALSE if there is a storage with
    that name already.  Also, ref the storage.
    (e_storage_set_remove_storage): Likewise [but of course don't ref
    the storage].
    (e_storage_set_get_storage): Use the `name_to_named_storage' hash
    table.
    (destroy): Destroy the `name_to_named_storage' hash.

    * e-storage-set.h: New signals "new_folder", "removed_folder".

    * e-storage.c (e_storage_get_watcher_for_path): Removed.
    (get_watcher_for_path): Removed.
    (class_init): Install signals "new_folder" and "removed_folder".
    (e_storage_remove_folder): Emit "removed_folder".
    (e_storage_new_folder): Emit "new_folder".

    * e-storage.h: Removed method `get_watcher_for_path'.  New signals
    "new_folder", "removed_folder".

    * e-storage-watcher.c: Removed.
    * e-storage-watcher.h: Removed.

    * e-corba-storage-registry.c (corba_class_init): Set the
    Bonobo_Unknown evp parts.

    * evolution-storage.c: New.
    * evolution-storage.h: New.

    * evolution-shell-component.c
    (evolution_shell_component_get_owner): New.

    * e-storage-set-view.c (new_storage_cb): New function.
    (e_storage_set_view_construct): Connect to the "new_storage"
    signal on the EStorageSet.
    (removed_storage_cb): New function.
    (e_storage_set_view_construct): Connect to the "removed_storage"
    signal on the EStorageSet.

    * e-storage-set-view.c (e_storage_set_view_construct): Make this
    always look pretty, with Helix GNOME or without.

2000-05-25  Christopher James Lahey  <clahey@helixcode.com>

    * e-storage-set-view.c: Make this always look pretty, with Helix
    GNOME or without.

2000-05-25  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c (e_storage_set_view_construct): Set the
    dotted line type again.  Dotted is less butt-ugly than continuous.

    * e-shell-view.c (show_error): Display page zero in the notebook.

    * main.c (idle_cb): Renamed from `new_view_idle_cb'.  Create the
    EShell object here, because now the shell depends on the GLib loop
    to be running for correct operation.
    (main): Don't create the EShell here.

    * e-storage-set-view.c (get_pixmap_and_mask_for_folder): If the
    icon is not found, set the returned pixmap and mask to NULL.

    * e-shell.c (e_shell_construct): Added precondition: @corba_object
    must be non-nil.
    (e_shell_new): Added precondition: @local_direcory must be
    non-null.

    * evolution-shell-component.c: New.
    * evolution-shell-component.h: New.

    * e-shell.c: New member `component_registry' in `EShellPrivate'.
    (init): Initialize to NULL.
    (destroy): Unref it.
    (setup_components): New function to set up the compnent registry
    and initialize the mail, calendar and addressbook components.
    (e_shell_construct): Call it.

    * e-storage-set.c: Updated to use EFolderTypeRegistry.
    * e-storage-set.h: Likewise.
    * e-shortcuts.c: Likewise.
    * e-shortcuts.h: Likewise.
    * e-shell.c: Likewise.

    * e-shell.h: Likewise.
    * e-shell-view.c: Likewise.
    * e-shortcuts-view.c: Likewise.
    * e-storage-set-view.c: Likewise.

    * e-component-registry.c: New.
    * e-component-registry.h: New.

    * e-folder-type-registry.c: New.
    * e-folder-type-registry.h: New.

    * e-folder-type-repository.c: Removed.
    * e-folder-type-repository.h: Removed.

    * Evolution-ShellComponent.idl: New struct `FolderType'; new type
    `FolderTypeList'. New attribute `supported_types'.
    (ShellComponent::set_owner): Renamed from `set_shell'.
    (ShellComponent::create_view): New.

2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view.c: Was using the wrong include here.

    * e-storage-set-view.c: Got rid of the lines in the tree view.

2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

    * Makefile.am: Added libepaned.a.

    * e-shell-view.c: Switched from GtkPaned to EPaned.

2000-05-23  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c: New member `corba_storage_registry' in
    `EShellPrivate'.
    (init): Initialize it to NULL.
    (destroy): Unref it if not NULL.
    (setup_corba_storages): New function to set up the CORBA storage
    registry and `bonobo_object_add_interface()' it to the shell.
    (setup_storages): Call it from here.

    * e-shell.h, e-shell.c: Derive EShell from BonoboObject instead of
    GtkObject.

    * e-storage.c (e_storage_remove_folder): Return value changed into
    `gboolean'; return false if an error occurs, true otherwise.
    (e_storage_new_folder): Likewise.

    * e-corba-storage-registry.c: New.
    * e-corba-storage-registry.h: New.

    * e-corba-storage.c: New.
    * e-corba-storage.h: New.

    * Evolution.idl: Include the new IDLs, but no
    `evolution-service-repository.idl' anymore.

    * Evolution-Shell.idl: New.
    * Evolution-ShellComponent.idl: New.
    * Evolution-Storage.idl: New.

    * evolution-service-repository.idl: Removed.
    * evolution-service-repository.c: Removed.
    * evolution-service-repository.h: Removed.

    * e-folder-type-repository.c (folder_type_new): Free `icon_path'.

2000-05-18  Dan Winship  <danw@helixcode.com>

    * main.c (new_view_idle_cb): add development_warning (moved from
    mail component)

2000-05-16  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c: Get rid of the `ICON_WIDTH' and
    `ICON_HEIGHT' #defines.
    (get_pixmap_and_mask_for_folder): Get the mini icon instead of the
    big one.  Use `E_SHELL_MINI_ICON_SIZE' instead of `ICON_WIDTH' and
    `ICON_HEIGHT'.

    * e-folder-type-repository.c: New member `mini_icon_pixbuf' in
    `FolderType'.
    (folder_type_new): Initialize `mini_icon_pixbuf' by loading the
    mini icon if possible.  If the mini icon is not found, resort to
    the big one.
    (folder_type_free): Unref the mini icon.
    (e_folder_type_repository_get_icon_for_type): New arg @mini.  If
    true, return the mini icon instead of the standard one.

    * e-shell-view.c (set_icon): Get the mini icon instead of the big
    one by using `e_shell_get_icon_path's @try_mini arg.

    * e-shell-constants.h: New file.

    * e-shell-utils.c
    (e_shell_get_icon_path): New arg @try_mini.  If true, look for the
    mini version [whose name ends in `-mini'].

    * e-folder-type-repository.c
    (folder_type_new): Free string returned by
    `e_shell_get_icon_path()'.

2000-05-16  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c: New members `storage_set_view_box',
    `shortcut_bar_box', `hpaned1_position', `hpaned2_position' in
    `EShellViewPrivate'.
    (init): Initialize them.
    (setup_widgets): Add title bars to the tree and shortcut views.
    (shortcuts_view_close_button_clicked_cb): New callback function.
    (setup_widgets): Connect to the "close_button_clicked" signal of
    the shortcut view's title bar.
    (storage_set_view_close_button_clicked_cb): New callback function.
    (setup_widgets): Connect to the "close_button_clicked" signal of
    the storage set view's title bar.
    (e_shell_view_show_shortcuts): New function.
    (e_shell_view_show_folders): New function.

    * e-shell-view.c: New members `hpaned1', `hpaned2' in
    `EShellViewPrivate'.
    (init): Initialize both to NULL.
    (setup_widgets): Invert the parenting order for the GtkHPaneds and
    store them into the private `hpaned' and `hpaned2' members.

    * Makefile.am (evolution_LDADD): Link with `libemiscwidgets.a'.

2000-05-15  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c
    (load_shortcuts_into_view): Removed.
    (e_shortcuts_new_view): Don't set up the shortcut bar manually
    here anymore, and don't set the icon callback either.  The
    `EShortcutsView' object is now able to do this by itself.

    * e-shortcuts-view.c
    (icon_callback): Moved here from `e-shortcuts.c'.
    (load_group): New function.
    (load_all_shortcuts): New function.
    (e_shortcuts_view_construct): Call it to load the shortcuts from
    the `EShortcuts' object.  Also, set `icon_callback' as the icon
    callback.

    * e-storage-set-view.c
    (button_press_event): Add/remove grab with `gtk_grab_add' and
    `gtk_grab_remove'.
    (button_release_event): Call `gtk_grab_remove' when removing the
    grab.

    * e-shortcuts.c: New member `title_to_group' in
    `EShortcutsPrivate'.
    (init): Initialize here.
    (destroy): Destroy here.
    (unload_shortcuts): Destroy and recreate here.
    (load_shortcuts): Avoid inserting multiple groups with the same
    title, and insert the groups into the `title_to_group' hash table.
    Also, avoid leaking the return value from `xmlNodeListGetString'.
    (e_shortcuts_get_group_titles): New function.
    (e_shortcuts_get_shortcuts_in_group): New function.
    (e_shortcuts_get_storage_set): New function.

    * e-storage-set-view.c
    (e_storage_set_view_set_current_folder): Emit the
    "folder_selected" signal.

    * e-local-folder.c
    (get_string_value): Return a `char *' to be deallocated by the
    caller instead of a `const char *' that does not need to be
    deallocated.
    (construct_loading_metadata): Free values returned from
    `get_string_value'.

2000-05-15  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c: New members `dragged_row_path',
    `selected_row_path_before_click' in `EStorageSetViewPrivate'.
    (init): Initialize them to NULL.
    (motion_notify_event): Set `dragged_row_path' from
    `selected_row_path'.
    (button_press_event): Initialize `selected_row_path_before_click'
    from `selected_row_path'.
    (button_release_event): Set `selected_row_path_before_click' to
    NULL.
    (drag_end): Restore the current selection from
    `selected_row_path_before_click'; then set both `dragged_row_path'
    to NULL.

2000-05-15  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c: New members `in_drag' and `drag_button' in
    `EStorageSetViewPrivate'.  New static variables `drag_types',
    `num_drag_types', `target_list'.
    (class_init): Create the `target_list'.
    (init): Initialize the private `in_drag' member to false.
    Initialize the private `drag_button' member to zero.
    (button_release_event): Set it to false.
    (motion_notify_event): New function, implementation of
    `GtkWidget::motion_notify_event'.  If `in_drag' is false, set it
    to true and set ourselves up as a drag source.
    (button_press_event): New function, implementation of
    `GtkWidget::button_press_event'.  Set `drag_button' to the event's
    button number and then chain to the implementation in the parent
    class.
    (drag_end): New function, implementation of `GtkWidget::drag_end'.
    (drag_data_get): New function, implementation of
    `GtkWidget::drag_data_get'.
    (set_e_shortcut_selection): New function, helper for `drag_data_get'.
    (set_uri_list_selection): New function, helper for `drag_data_get'.
    (class_init): Install these method implementations.

    * e-storage-set-view.c: New member `selected_row_path' in
    `EStorageSetViewPrivate'.
    (init): Initialize it to NULL.
    (tree_select_row): Set it to the path of the selected row.  Don't
    emit "folder_selected" yet.  Also, keep the grab.
    (button_release_event): New function, implementation of
    `GtkWidget::button_release_event'.  If `selected_row_path' is not
    NULL, emit the "folder_selected" signal with `selected_row_path'
    as the parameter and then set `selected_row_path' to NULL again.
    (class_init): Install `button_release_event'.

    * e-storage-set-view.c: Made `ICON_WIDTH' and `ICON_HEIGHT' global
    #defines.
    (e_storage_set_view_construct): Set the row height to
    `ICON_HEIGHT'.  Alos, set the selection mode to
    `GTK_SELECTION_BROWSE'.

2000-05-15  Iain Holmes  <ih@csd.abdn.ac.uk>

    * e-local-folder.c (get_string_value): Use the correct function to
    get the node's contents.
    
    * e-shortcuts.c (load_shortcuts): Same as above.

2000-05-14  Ettore Perazzoli  <ettore@helixcode.com>

    * e-folder-type-repository.c
    (e_folder_type_repository_get_control_id_for_type): Protect
    against non-existing types.
    (e_folder_type_repository_get_icon_for_type): Likewise.

2000-05-14  Ettore Perazzoli  <ettore@helixcode.com>

    * e-storage-set-view.c
    (folder_compare_cb): Callback comparison function for comparing
    folders based on their names.
    (insert_folders): Use it to sort the folder list before using it.

2000-05-14  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c
    (setup_storages): Pass the pointer to the folder type repository.
    (e_shell_construct): Initialize the folder type repository before
    everything else.

    * e-storage-set.c: New member `folder_type_repository' in
    `EStorageSetPrivate'.
    (init): Initialize it to NULL.
    (destroy): Unref it.
    (e_storage_set_construct): New arg @folder_type_repository.
    Initialize the corresponding member in the private struct through
    it.
    (e_storage_set_new): New arg @folder_type_repository.
    (e_storage_set_get_folder_type_repository): New function.

    * e-shortcuts.c (icon_callback): Just use [the new version of]
    `e_folder_type_repository_get_icon_for_type()' instead of loading
    the image manually.

    * e-folder-type-repository.c: New member `icon_pixbuf' in
    `FolderType'.
    (folder_type_new): Load the pixbuf.
    (folder_type_free): Unref the pixbuf.
    (e_folder_type_repository_get_icon_name_for_type): Renamed from
    `e_folder_type_repository_get_icon_for_type'.
    (e_folder_type_repository_get_icon_for_type): New function, now
    returning a `GdkPixbuf *'.

    * e-shortcuts.c
    (icon_callback): Use `e_shell_get_icon_name()'.

    * e-shell-view.c: New member `storage_set_view' in
    `EShellViewPrivate'.
    (init): Initialize it to NULL.
    (e_shell_view_construct): Create an EStorageSetView for the
    shell's EStorageSet and put it into a scrolled window.  Also, put
    the scrolled window into the EShellView with some
    [temporary] GtkPaned action.  Store the pointer to the
    EStorageSetView to `priv->storage_set_view'.
    (set_icon): Get an EShellView and an EFolder instead of an
    EShellView and a URI.  Also, don't leak.
    (update_for_current_uir): New helper function.  Call `set_icon'.
    (show_error): Call it.
    (folder_selected_cb): New function.
    (setup_widgets): Connect it to the "folder_selected" signal of the
    storage set view.

    * e-storage-set-view.c: New file.
    * e-storage-set-view.h: New file.

    * e-shell-utils.c: New file.
    * e-shell-utils.h: New file.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view-menu.c: Added an about box.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view.c: Set the icons when changing between components.

    * main.c: Set the default icon.  (The change in e-shell-view.c
    doesn't work unless we do this.)

2000-05-09  Matt Loper  <matt@helixcode.com>

    * e-shell-view-menu.c (command_run_bugbuddy): New function; allows
    users to submit a bug.
    (command_run_bugbuddy): Implemented with jacob's patch.

2000-05-09  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (e_shell_new_view): Display the specified @uri in the
    view.

    * e-shell-view.c (e_shell_view_construct): Removed arg @uri.
    (e_shell_view_new): Likewise.

    * main.c: New string constant `STARTUP_URI', specifying the URI to
    show in the startup view.
    (new_view_idle_cb): New callback function to create a new view for
    `STARTUP_URI' in the idle loop.  We need to do this in the idle
    loop because the CORBA stuff cannot work until the loop starts
    running.
    (main): Set `new_view_idle_cb' up as the idle callback instead of
    creating the view right away.

2000-05-09  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (setup_storages): Woops.  Don't free the path before
    the warning message, as we need to print it.

2000-05-08  Ettore Perazzoli  <ettore@helixcode.com>

    * main.c (destroy_cb): New function.
    (main): Connect it to the `destroy' signal on the shell.

2000-05-08  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c (load_shortcuts): Const fix.

2000-05-08  Larry Ewing  <lewing@helixcode.com>

    * e-shortcuts.c (load_shortcuts_into_view): xmlFree the return
    value of xmlGetProp.

2000-05-07  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts-view.c (e_shortcuts_view_construct): Use
    correct cast.

2000-05-07  Ettore Perazzoli  <ettore@helixcode.com>

    * main.c (main): Connect to "no_views_left", not "destroy".

    * e-shell.c (view_destroy_cb): Grmpf.

2000-05-07  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell.c (e_shell_construct): Output a warning message if the
    shortcut file is not found.
    (setup_storages): Output a warning message if the local storage
    cannot be initialized.
    (destroy): Destroy all the views.

    * e-shell-view.c
    (e_shell_view_construct): Ref the shell.

    * e-shortcuts-view.c
    (e_shortcuts_view_construct): Ref the shortcuts.

    * e-shell.c: Create the "no_views_left" signal.  New member
    `views' in `EShellPrivate'.
    (init): Initialize `views' to NULL.
    (view_destroy_cb): Destroy handler for a view: remove the view
    from `views', and emit the "no_views_left" signal if this was the
    last view.
    (e_shell_new_view): Add the new view to `views' and connect the
    "destroy" signal to `view_destroy_cb'.
    (destroy): Destroy the views.

    * e-shell.h: New signal "no_views_left".

    * e-shell-view-menu.c (command_quit): New function, implementation
    of the "quit" command.

    * e-shell-view.c (e_shell_view_get_shell): New function.

    * e-shell.c (e_shell_quit): New function.

    * main.c (main): If it is not possible to create the shell for
    some reason, pop up an error message.
    (shell_destroy_cb): New function, signal handler for "destroy" on
    the shell object.
    (main): Connect it.

2000-05-06  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcuts.c (destroy): Be safer about NULL objects.

    * e-shell.c (destroy): Be safer about NULL objects.

    * e-local-storage.c (load_folders): Use `readdir()', not
    `readdir_r()'.

2000-05-06  Ettore Perazzoli  <ettore@helixcode.com>

    * main.c (init_corba) [! USING_OAF]: We have no options no
    popt context.

2000-05-06  Ettore Perazzoli  <ettore@helixcode.com>

    * All files: Reorganized and redone a lot of the shell.  New
    features: internal URI namespace, extensible storage/folder
    mechanism, configurable shortcuts.

2000-05-03  Damon Chaplin  <damon@helixcode.com>

    * e-shell-view.c (e_shell_view_new): turned the notebook border off.
    The calendar looks better without it. If any of the views want a
    border they should create it themselves, shouldn't they?

2000-05-04  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shortcut.c (shell_icon_cb): Type of @url changed from `gchar
    *' to `const gchar *'; new arg @data.
    (e_shortcut_bar_view_new): Pass NULL as the closure value for
    `e_shortcut_bar_set_icon_callback()'.

2000-05-02  Ettore Perazzoli  <ettore@helixcode.com>

    * e-folder-mail.c: Removed.

    * e-folder-mail.h: Removed.

    * eshell-types.h: Removed.

    * e-folder.h: Don't #include "eshell-types.h".

2000-05-02  Ettore Perazzoli  <ettore@helixcode.com>

    * e-folder.h: Removed member `eservice' from `EFolder'.

    * e-service.c: Removed.

    * e-service.h: Removed.

2000-05-02  Matt Loper  <matt@helixcode.com>

    * Makefile.am: set G_LOG_DOMAIN.

2000-05-01  Dan Winship  <danw@helixcode.com>

    * e-shell-view.c (e_shell_view_set_view): Turn off control frame
    autoactivation, so the toolbars work correctly. This may actually
    be a bug in Bonobo, but we'll kludge around it here for now.

2000-04-27  Ettore Perazzoli  <ettore@helixcode.com>

    * e-shell-view.c: OAFized.
    (get_view): If `bonobo_widget_new_control()' fails for the
    calendar, don't try to get the property bag and stuff and thus
    prevent a segfault.

    * main.c
    (corba_init): Removed Bonobo initialization.  Implemented OAF
    version for the case in which `USING_OAF' is #defined.
    (init_bonob): New function.
    (main): Call `init_bonobo()'.

2000-04-26  Matt Loper  <matt@helixcode.com>

    * e-shell-view.c (bonobo_widget_is_dead): Helper function to see
    whether a bonobo widget is a zombie (ie the remote bonobo control
    died).
    (e_shell_view_set_view): Try to respawn dead widgets.

2000-04-25  Dan Winship  <danw@helixcode.com>

    * Makefile.am: include -I$(datadir)/idl in orbit-idl arguments so
    that you can have bonobo installed in the same prefix as
    evolution, when that isn't the same prefix is gnome-libs, which a
    lot of people seem to be doing.
    (CLEANFILES): add EVOLUTION_CORBA_GENERATED
    
2000-04-24  Christopher James Lahey  <clahey@helixcode.com>

    * idl/folder.idl: Made some functions syncronous that didn't need
    to be asyncronous.

2000-04-24  Matt Loper  <matt@helixcode.com>

    * e-shell-view.h: Added hpaned and treeview widgets to
    EShellView. Added e_shell_view_toggle_shortcut_bar() and
    e_shell_view_toggle_treeview().

    * e-shell-view.c (e_shell_view_setup_shortcut_display): Use EPaned
    widget to house our shortcut bar.
    (e_shell_view_toggle_shortcut_bar): New function; toggles whether
    the shortcut bar is showing.
    (e_shell_view_toggle_treeview): Same, for the treeview (NYI).
    (e_shell_view_new): Put the notebook view in our EPaned widget.

    * e-shell-view-menu.c (esv_cmd_toggle_shortcut_bar): New function;
    toggles whether the shortcut bar is viewed.
    (esv_cmd_toggle_treeview): Same, but with the treeview.  Added
    menuitems in the "view" menu to allow access to the above.

2000-04-19  Seth Alves  <alves@hungry.com>

    * e-shell-view.c (get_view): set calendar's uri with a property bag

2000-04-19  Christopher James Lahey  <clahey@helixcode.com>

    * idl/folder.idl: New idl file.  Still unused.

2000-04-14  Christopher James Lahey  <clahey@helixcode.com>

    * e-shell-view.c: Made the left pane of the shell view not
    autoresize.

2000-04-09  Matt Loper  <matt@helixcode.com>

    * e-shell-view.c (e_shell_view_setup): Set the default height
    bigger, to 600, so that everything in the shortcut-bar shows up.

2000-04-07  Matt Loper  <matt@helixcode.com>

    * e-shell-view.c (destroy_folder_view): New function;
    Bonobo_Unknown_unref's the controls that have the views in them.
    (esv_destroy): Calls the above for each folder_view in the
    hashtable.
    (get_view): unref the ServiceRepository interface of the control
    when we're done with it.

2000-04-06  Miguel de Icaza  <miguel@gnu.org>

    * shell/e-shortcut.c (shell_icon_cb): Append a slash here.
    (shell_icons): Only list the filenames.

    * shell/main.c (evolution_boot): Be less rude.

2000-04-06  Matt Loper  <matt@helixcode.com>

    * shell/main.c (evolution_boot): Make sure our data directory is
    available with e_setup_base_dir ().

2000-04-06  Miguel de Icaza  <miguel@gnu.org>

    * shell/e-shortcut.c (shell_icon_cb): Load the icons from the
    installation path, not form the GNOME-libs installation prefix. 
    (shell_icon_cb): Memory leak fix.

    * shell/Makefile.am (imagesdir): Pass the EVOLUTION_IMAGES
    installation directory here.

2000-04-05  Seth Alves  <alves@hungry.com>

    * shell/e-shell-view.c (get_view): hook up control:calendar

2000-03-31  Dan Winship  <danw@helixcode.com>

    * shell/e-shortcut.c (e_shortcut_bar_view_new, shell_icon_cb):
    Update for shortcut bar changes.

    * shell/e-folder.h: add E_FOLDER_SUMMARY
    * shell/e-shell.c (e_shell_setup_default_folders): make the
    "Today" icon be of type E_FOLDER_SUMMARY, not E_FOLDER_MAIL.

2000-03-30  Dan Winship  <danw@helixcode.com>

    * shell/e-shell-view.c (e_shell_view_set_view): Hold off on
    deactivating the "outgoing" control until after setting up the
    "incoming" control. That way if the new control takes a few
    seconds to load, there won't be an ugly empty spot where the
    toolbar used to be while the new control loads.

2000-03-29  Dan Winship  <danw@helixcode.com>

    * shell/e-shell-view.c (e_shell_view_set_view): Call
    bonobo_control_frame_activate on the folder_view every time it
    is displayed, and bonobo_control_frame_deactivate every time it is
    hidden.

2000-03-25  Matt Loper  <matt@helixcode.com>

    * shell/e-shell-view.c (get_view): Move CORBA_Environment to
    different scope.

2000-03-22  Matt Loper  <matt@helixcode.com>

    * shell/main.c (evolution_boot): gtk_signal_connect'ed "destroy"
    to gtk_main_quit, so that the shell dies when you want it to.

    * shell/e-shell-view.c (get_view): Reorganized, and added
    assertions.
    (e_shell_view_set_view): Added assertions.

2000-03-20  Matt Loper  <matt@helixcode.com>
    
    * shell/e-shell-view.h: New private field in EShellView added,
    which contains the notebook and a hashtable of folders to views.

    * shell/e-shell-view.c (e_shell_view_set_view): Instead of
    creating a new control every time we set the view, we now keep our
    controls in a notebook. This function now switches to the correct
    notebook page, or creates a new page/control as necessary.
    (e_shell_view_new): Creates and inserts the notebook into the
    shell.

2000-03-13  Christopher James Lahey  <clahey@helixcode.com>

    * shell/e-shell-view.c: Added an E_FOLDER_CONTACTS section to the
    get_view function.

2000-03-13  bertrand  <bertrand@helixcode.com>

    * shell/e-shell.c (EShell_register_service): 
    test implementation. Show the uri and the type 
    of service that has just been registered.
    
    * shell/e-shell-view.c (get_view): 
    once we have the bonobo control widget, 
    disable the autoactivation and activate
    the control frame.
    (get_view): added a parameter to have
    a reference to the EShellView.
    (get_view): In the case of the mail component
    use the Evolution_ServiceRepository to 
    give the component a reference to the 
    Shell server.

2000-03-12  bertrand  <bertrand@helixcode.com>

    * shell/e-shell-view.c (get_view): name change
    

    * shell/e-folder.c (e_folder_get_folder_type): added the
    get_e_folder_type function.

    * shell/evolution-service-repository.c:
    (evolution_service_repository_new): creates an 
    Evolution_ServiceRepository object.
    (create_evolution_service_repository): 
    create the corresponding servant.
    (evolution_service_repository_construct): set 
    the closure as well as the virtual functions. 

2000-03-12  bertrand  <bertrand@helixcode.com>

    * shell/evolution-service-repository.c: 
    * shell/evolution-service-repository.h: 
    Implementation of the service repository interface
    as a bonobo object.

    * shell/evolution-service-repository.idl: 
    new file. Contains the definition for the service
    repository interface.

    * shell/Shell.idl: move the shell related stuff 
    here
    
2000-03-12  bertrand  <bertrand@helixcode.com>

    * shell/e-folder.h: add a field refering to a
    service associated to the efolder. In the case of 
    distant folders, it is generally a server.  

    * shell/e-service.c: New class. Models a service.
    A service is an object with an URI and a root folder. 
    It genreally reporesents a distant folder. 
    A service is generally a ressource shared amongst
    several folders. 
    * shell/e-service.h: 

2000-03-07  bertrand  <bertrand@helixcode.com>

    * shell/e-shell-shortcut.c (shortcut_bar_item_selected): 
    removed a test that prevented the standard menu 
    to be shown.

2000-03-01  Ettore Perazzoli  <ettore@helixcode.com>

    * shell/Makefile.am (INCLUDES): use `top_srcdir' instead of
    `srcdir'.  Also, add `$(top_srcdir)'.  And put the srcdir includes
    before everything else.
    (evolution_LDADD): `libeutil.la', not `libeutil.a'.

2000-02-22  bertrand  <Bertrand.Guiheneuf@aful.org>

    * shell/Makefile.am (evolution_LDADD): 
    add libetext.a.

2000-02-08  Iain Holmes  <ih@csd.abdn.ac.uk>

    * shell/Makefile.am: Changed the order of the compilation, so the CORBA
    stuff was generated before it was needed.

2000-01-15  Miguel de Icaza  <miguel@gnu.org>

    * shell/e-shell.c: Construct the default folders 

    * shell/e-shell-view.c (e_shell_view_new): Setup the main GnomeApp
    application, load the shortcut, internal api. 

    * shell/e-folder.c (e_folder_get_type_name): Return description
    here;  Change of policy;  We now know about all of the possible
    types that can be displayed on Evolution. 

2000-01-15  Miguel de Icaza <miguel@gnu.org>

    * shell/e-folder.c: Renamed signal.

    * widgets/shortcut-bar/e-shortcut-bar.c (e_shortcut_bar_add_item):
    Use e_bar_set_item_data.

    Drop item_url;  Require image argument;  Require user data
    argument. 

2000-01-05  Miguel de Icaza  <miguel@gnu.org>

    * shell/Makefile.am: New file.