aboutsummaryrefslogblamecommitdiffstats
path: root/shell/ChangeLog
blob: 890eb8d51e159c0a57cde171b613f11730946340 (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                                        
                                                    





                                                                     





                                                                          

                                                    




                                                                          


                                                                 







                                                                       





                                                                         






                                                                   

                                                    
















































                                                                          

                                                                         












                                                                         

                                                    




                                                                      




                                                                        


                                                                   












                                                                          





                                                                         




                                                                   




                                                                      

                                                    




                                                                       


























                                                                          




                                                                          










                                                                          



                                                                 




                                                                       





                                                                  







                                                                          







                                                                        




                                                                             
                                                    





















                                                                        










































































                                                                          




























































                                                                                





                                                                         




                                                                       


































































                                                                               



                                                                             





                                                           





                                                             




                                                                  

                                             




                                                                         


                                                                        
                                                    
 



                                                            






                                                                        
 










                                                                      





























                                                                          

                                                    



                                                      
















                                                                        











                                                                      


                                                         





                                                                          



















































                                                                          

                                                    























































                                                                          


                                                                          



                                                                  




                                                                   








                                                                          





































































































                                                                          




                                                                        






















































                                                                          

                                                           





                                                                      



                                                           



































                                                                          




                                                                        

                                                    





























                                                                          





















                                                                          

                                                    












































                                                                          














                                                                          





































                                                                             






                                                                          

                                                    






                                                                   






                                                                         




















































                                                                          

                                                           



                                                           




                                                                         



                                                                          
                                                               
 

                                                    
















                                                                          


                                                                        
                                                    




                                                                


                                                    




                                                                      

                                                    




                                                              





                                                                   




































                                                                          

                                                    








                                                                




                                                                  



                                                                    





                                                                            






                                                                        
                                                    









                                                      






                                                               



                                            





                                                                         












                                                                      






                                                                         







                                                                         




                                                                         

















                                                                          



                                                                           



                                                           




                                                                  




                                                                        








                                                                        



























































































































































































                                                                               
2000-07-10  Federico Mena Quintero  <federico@helixcode.com>

    * e-shell-view.c (unrealize): As a quasi-hack, do a gdk_flush()
    when the shell view is unrealized so that the DeleteEvent gets
    sent to the remote plugs as soon as possible before we start
    making other CORBA calls.  The problem is that our CORBA pipe is
    synchronous while our X pipe is asynch.  We have to ensure
    ordering for certain operations.  This is NOT the correct and
    complete fix, which should go in Bonobo.

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

    * e-shell-view.c (e_shell_view_display_uri): Don't update the
    current URI if there are problems creating a view for it.
    (show_error): Remove.  Not used anymore.

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

    * e-shell-view-menu.c: Cleanup some unused menu items and added
    "FIXMEs" for the ones we plan to add in the short term but are not
    implemented yet.
    (command_create_folder): Get rid of an unused variable.

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

    * evolution-shell-client.c (user_select_folder): Fix small warning
    by adding proper cast when filling in the CORBA sequence struct.

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

    * e-shell.c (setup_corba_storages): Ref the CORBA storage
    registry.

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

    * evolution-storage.c: Removed `corba_storage_registry' member
    from `EvolutionStoragePrivate'.
    (destroy): Don't unref/release it.  Call
    `StorageListener::destroy' to notify that we are dead.
    (evolution_storage_register): Don't ref and store the registry.

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

    * e-shell.c (e_shell_save_settings): Use the correct gconf path
    (/apps, not /app), and call gconf_client_suggest_sync at the end.
    (e_shell_restore_from_settings): Use the correct gconf path.

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

    * e-shell-view-menu.c (command_goto_folder): Set the folder
    selection dialog as transient for the shell view.
    (command_create_folder): New, bound to the "Create folder"
    command in the "File" menu.

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.