2000-06-19 Chris Toshok * 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 * 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 * 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 * 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 * 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 , not . * 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 * 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 * 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 * 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 * 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 * 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 * e-shell-view.c (setup_bonobo_ui_handler): Create the default toolbar. 2000-06-02 Jeffrey Stedfast * e-shell-view-menu.c: Changed "Using the Shell" to "Getting Started" 2000-06-02 Christopher James Lahey * e-shell-view.c: Free the uri variable. * e-shell.c: Free the local_directory variable. 2000-06-02 Ettore Perazzoli * 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 * e-storage-set-view.c (set_e_shortcut_selection): Added a g_return_if_fail check. 2000-06-01 Dan Winship * 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 * e-shell-view.c (DEFAULT_WIDTH): Add more 5 pixels. 2000-06-01 Ettore Perazzoli * 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 * 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 * 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 * evolution-storage.h: #include 'Evolution.h". 2000-05-31 Ettore Perazzoli * 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 * 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 * 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 * 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 * 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 * main.c (main): Remove extra free of evolution_directory. 2000-05-28 Ettore Perazzoli * evolution-storage.c (evolution_storage_register): Use the storage's name when registering. 2000-05-26 Matt Loper * 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 * 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 * e-storage-set-view.c: Make this always look pretty, with Helix GNOME or without. 2000-05-25 Ettore Perazzoli * 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 * 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 * Makefile.am: Added libepaned.a. * e-shell-view.c: Switched from GtkPaned to EPaned. 2000-05-23 Ettore Perazzoli * 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 * main.c (new_view_idle_cb): add development_warning (moved from mail component) 2000-05-16 Ettore Perazzoli * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * e-shell-view-menu.c: Added an about box. 2000-05-10 Christopher James Lahey * 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 * 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 * 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 * 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 * main.c (destroy_cb): New function. (main): Connect it to the `destroy' signal on the shell. 2000-05-08 Ettore Perazzoli * e-shortcuts.c (load_shortcuts): Const fix. 2000-05-08 Larry Ewing * e-shortcuts.c (load_shortcuts_into_view): xmlFree the return value of xmlGetProp. 2000-05-07 Ettore Perazzoli * e-shortcuts-view.c (e_shortcuts_view_construct): Use correct cast. 2000-05-07 Ettore Perazzoli * main.c (main): Connect to "no_views_left", not "destroy". * e-shell.c (view_destroy_cb): Grmpf. 2000-05-07 Ettore Perazzoli * 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 * 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 * main.c (init_corba) [! USING_OAF]: We have no options no popt context. 2000-05-06 Ettore Perazzoli * 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 * 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 * 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 * 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 * e-folder.h: Removed member `eservice' from `EFolder'. * e-service.c: Removed. * e-service.h: Removed. 2000-05-02 Matt Loper * Makefile.am: set G_LOG_DOMAIN. 2000-05-01 Dan Winship * 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 * 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 * 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 * 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 * idl/folder.idl: Made some functions syncronous that didn't need to be asyncronous. 2000-04-24 Matt Loper * 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 * e-shell-view.c (get_view): set calendar's uri with a property bag 2000-04-19 Christopher James Lahey * idl/folder.idl: New idl file. Still unused. 2000-04-14 Christopher James Lahey * e-shell-view.c: Made the left pane of the shell view not autoresize. 2000-04-09 Matt Loper * 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 * 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 * 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 * shell/main.c (evolution_boot): Make sure our data directory is available with e_setup_base_dir (). 2000-04-06 Miguel de Icaza * 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 * shell/e-shell-view.c (get_view): hook up control:calendar 2000-03-31 Dan Winship * 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 * 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 * 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 * shell/e-shell-view.c (get_view): Move CORBA_Environment to different scope. 2000-03-22 Matt Loper * 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 * 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 * shell/e-shell-view.c: Added an E_FOLDER_CONTACTS section to the get_view function. 2000-03-13 bertrand * 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 * 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 * 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 * 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 * 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 * 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 * shell/Makefile.am (evolution_LDADD): add libetext.a. 2000-02-08 Iain Holmes * 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 * 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 * 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 * shell/Makefile.am: New file.