aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-storage.h
Commit message (Collapse)AuthorAgeFilesLines
* Add (e_storage_declare_has_subfolders): Rename fromDan Winship2003-03-151-3/+11
| | | | | | | | | | | | | | | | | * e-storage.c (e_storage_get_has_subfolders): Add (e_storage_declare_has_subfolders): Rename from e_storage_has_subfolders to make it clearer that this is a setter, not a getter. (Can't call it e_storage_set_has_subfolders because that sounds like it belongs in e-storage-set.) * e-corba-storage.c (impl_StorageListener_notifyHasSubfolders): update for e_storage_declare_has_subfolders name change (get_folder): Override the default EStorage implementation: if asked for a folder under a not-yet-expanded folder, attempt to force the parent(s) to expand so that the child is available. Fixes part of #30415 svn path=/trunk/; revision=20302
* add a Bonobo::Listener to this like the other async interfaces, ratherDan Winship2003-03-151-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Evolution-Storage.idl (asyncOpenFolder): add a Bonobo::Listener to this like the other async interfaces, rather than having a hacky way to signal failure. * evolution-storage.c (impl_Storage_asyncOpenFolder): Update to take a listener and emit it as part of the signal (evolution_storage_class_init): update OPEN_FOLDER signal prototype. * e-shell-marshal.list (NONE:POINTER,STRING): add, for changed EvolutionStorage open_folder signal * e-storage.c (e_storage_async_open_folder): add a callback arg (impl_async_open_folder): call the callback with NOTIMPLEMENTED. (class_init): remove the CLOSE_FOLDER signal (e_storage_has_subfolders): Don't emit CLOSE_FOLDER since it doesn't exist any more, and this function is used for that side effect any more anyway. * e-corba-storage.c (async_open_folder): add the callback arg and create a proper closure. (async_open_folder_idle): Call the callback in case of error. Create a listener and pass that to the CORBA call. (async_open_cb): Listener callback. * e-storage-set.c (storage_set_view_folder_opened): Pass a callback to e_storage_async_open_folder. (async_open_cb): emit CLOSE_FOLDER if the open failed (storage_close_folder_cb): Remove this since the signal no longer exists. svn path=/trunk/; revision=20297
* New, implementation for the cancel_discover_shared_folder virtual method.Ettore Perazzoli2002-10-181-20/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * e-corba-storage.c (cancel_discover_shared_folder): New, implementation for the cancel_discover_shared_folder virtual method. (class_init): Install. * evolution-test-component.c (storage_discover_shared_folder_callback): Instead of passing the listener to the timeout function, just pass the storage. Put the listener and the timeout ID on the storage object by using gtk_object_set_data(). (shared_folder_discovery_timeout_callback): Updated accordingly. (storage_cancel_discover_shared_folder_callback): New, callback for the cancel_discover_shared_folder signal. (setup_custom_storage): Connect. * e-shell-shared-folder-picker-dialog.c: New member storage in struct DiscoveryData. While I am at it, rename member user to user_email_address. (discover_folder): Set the storage member. (cleanup_discovery): Unref storage member. (progress_dialog_clicked_callback): New, callback for the "clicked" signal on the dialog. (discover_folder): Connect. * evolution-storage.c (class_init): Install signal "cancel_discover_shared_folder". (impl_Storage_cancelDiscoverSharedFolder): New, implementation for the cancelDiscoverSharedFolder CORBA method; emit "cancel_discover_shared_folder". (evolution_storage_get_epv): Install CORBA method implementation. * evolution-storage.h: Add signal cancel_discover_shared_folder. * e-storage.c (e_storage_cancel_discover_shared_folder): New. * e-storage.h: New virtual method cancel_discover_shared_folder. * Evolution-Storage.idl (cancelDiscoverSharedFolder): New. svn path=/trunk/; revision=18386
* Calls e_shell_command_remove_shared_folder. (file_verbs): Set upDan Winship2002-10-011-16/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * e-shell-view-menu.c (command_remove_other_users_folder): Calls e_shell_command_remove_shared_folder. (file_verbs): Set up command_remove_other_users_folder. * e-shell-folder-commands.c (e_shell_command_remove_shared_folder): New. Calls e_storage_set_async_remove_shared_folder with a callback to pop up an error dialog if it fails. * e-storage-set.c (e_storage_set_async_remove_shared_folder): Implement. Mostly like async_remove_folder. * e-storage.c (e_storage_supports_shared_folders, e_storage_async_discover_shared_folder, e_storage_async_remove_shared_folder): New methods. Default implementations return FALSE, NOTIMPLEMENTED, and NOTIMPLEMENTED. * e-corba-storage.c (supports_shared_folders, async_discover_shared_folder, async_remove_shared_folder): Implement using CORBA. * Evolution-Storage.idl: add Storage_asyncRemoveSharedFolder * e-shell-shared-folder-picker-dialog.c: Remove all the CORBA stuff from here and use the new EStorage methods. (setup_server_option_menu): Use e_storage_supports_shared_folders. (discover_folder): Use e_storage_async_discover_shared_folder. * evolution-storage.c (impl_Storage_asyncRemoveSharedFolder): Implement this by emitting a REMOVE_SHARED_FOLDER signal. (impl_Storage_asyncDiscoverSharedFolder): Make the DISCOVER_SHARED_FOLDER signal put the Bonobo_Listener first like all the other signals do. (class_init): Set up REMOVE_SHARED_FOLDER signal. svn path=/trunk/; revision=18265
* [Finish fixing #11645.]Ettore Perazzoli2002-09-261-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | * e-shell-folder-commands.c (xfer_result_callback): Don't update the shortcuts here anymore since now the shell takes care of it. * e-shell.c (storage_set_moved_folder_callback): New callback for EStorageSetView::folder_moved; update the shortcuts. (e_shell_construct): Connect. * e-storage-set.c: Renamed StorageConverterCallbackData to StorageCallbackData. New members destination_folder, source_folder, operation in it. (class_init): Install "moved_folder" signal. (storage_callback_data_new): Renamed from storage_converter_callback_data_new. (storage_callback_data_free): New. (storage_callback): Renamed from storage_callback_converter. Use storage_callback_data_free(). (e_storage_set_async_create_folder): Updated to use the storage_callback and storage_callback_data_new(). (e_storage_set_async_remove_folder): Likewise. (e_storage_set_async_xfer_folder): Likewise. * e-storage-set.h: New signal "moved_folder". svn path=/trunk/; revision=18216
* Add description for E_STORAGE_NOTONLINE.Ettore Perazzoli2002-09-181-0/+1
| | | | | | | | | | | | | | | * e-storage.c (e_storage_result_to_string): Add description for E_STORAGE_NOTONLINE. * e-corba-storage.c (e_corba_storage_corba_result_to_storage_result): Support GNOME_Evolution_Storage_NOT_ONLINE (E_STORAGE_NOTONLINE). * Evolution-Storage.idl: Add NOT_ONLINE to enum Result. * e-storage.h: Add E_STORAGE_NOTONLINE to EStorageResult enum. svn path=/trunk/; revision=18097
* Support for delayed filling-in of storages/folders.Dan Winship2002-03-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Evolution-Storage.idl (StorageListener): add notifyHasSubfolders, to announce that a folder has currently- unknown subfolders. (Storage): add asyncOpenFolder, to request that previously- announced subfolders be filled in. * evolution-storage.c (impl_Storage_async_open_folder): emit OPEN_FOLDER. (evolution_storage_has_subfolders): Implement by calling notifyHasSubfolders on all of its listeners. * evolution-storage-listener.c (impl_GNOME_Evolution_StorageListener_notifyHasSubfolders): emit HAS_SUBFOLDERS. * e-corba-storage.c (impl_StorageListener_notifyHasSubfolders): Implement by calling e_storage_has_subfolders. (async_open_folder): Implement by calling asyncOpenFolder on the CORBA storage. * e-storage.c (EStoragePrivate, init, destroy): Keep a list of pseudofolders representing un-filled-in subtrees. (impl_async_open_folder): No-op default implementation (e_storage_async_open_folder): New function to request that un-filled-in subtrees be filled in. (e_storage_new_folder): If the new folder's parent has an "un-filled-in children" pseudofolder, remove it. (e_storage_has_subfolders): New function to note that a folder has unknown children. If the folder previously was marked as having real children, remove them, and emit CLOSE_FOLDER to reset it back to an a "unknown subfolders" state. * e-storage-set.c (make_full_path): Make this deal with path being "/", since that case gets used from storage_close_folder_cb sometimes. (storage_close_folder_cb): Proxy EStorage's CLOSE_FOLDER signal. (storage_set_view_folder_opened): Handle EStorageSetView's FOLDER_OPENED signal by calling e_storage_async_open_folder. * e-storage-set-view.c (etree_fill_in_children): If the given node is its parent's first child, emit FOLDER_OPENED for the parent. (close_folder_cb): Handler for EStorageSet's CLOSE_FOLDER signal. Ask the model to close that node. (e_storage_set_view_construct): Set the default expanded state for the tree to FALSE rather than TRUE, to prevent unwanted expansion of delayed nodes. (This only affects the very first time the tree is displayed anyway: after that its state is loaded off disk.) * e-shell.c (e_shell_construct): Register the "noselect" type with the folder type registry, so icon lookups on placeholder folders will work. svn path=/trunk/; revision=16169
* Make storages-with-toplevel-views less of a hack.Dan Winship2002-03-081-15/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * e-folder-tree.c (e_folder_tree_add): Allow the caller to "add" a root folder, if the existing root folder has no children. (e_folder_tree_new): Use e_folder_tree_add to create the root folder, since it can do that now. * e-storage.c: (e_storage_construct): Replace toplevel_node_uri and toplevel_node_type args with root_folder. (e_storage_new): Likewise. (*): Remove toplevel uri/type stuff everywhere. Also remove display_name since now we will use the name of the root folder for that. * evolution-storage.c: Remove toplevel uri/type stuff everywhere. * e-local-storage.c (construct): Pass root_folder to e_storage_construct instead of toplevel uri/type. Also, evolution_storage_new no longer takes toplevel uri/type. * e-corba-storage.c (e_corba_storage_construct): Out with toplevel uri/type, in with root_folder. (e_corba_storage_new): Remove toplevel uri/type. * e-shell.c (setup_local_storage): Create a top-level folder of type "summary" for the Summary storage. * e-storage-set-view.c (set_e_shortcut_selection): Remove special-case for storages. (etree_icon_at): Remove special case for figuring out storage icons (but leave the code that makes the icon disappear once the storage is opened). (etree_value_at): Remove special case for storage names. (But still make storages always bold.) Remove unused special-case code for Summary. * e-shortcuts.c (load_shortcuts): Remove special case for storages, reorganize a bit. * e-shortcuts-view.c (get_shortcut_info): Remove special case for storages. * e-shell-view.c (update_for_current_uri): Remove special case for storages. (socket_destroy_cb): Likewise. (get_type_for_storage): No longer needed. (get_view_for_uri): No longer needs to special-case storages (but add a special case for folders of type "noselect", to make them unselectable like storages-without-toplevel-views used to be). * e-storage-set.c (get_storage_for_path): If passed "/foo", return "/" as subpath_return so e_storage_set_get_folder will DTRT in the NWO. * Evolution-Storage.idl (addStorage): Remove the toplevel_node_uri and toplevel_node_type arguments. * e-corba-storage-registry.c (impl_StorageRegistry_addStorage): Likewise. svn path=/trunk/; revision=15965
* Keep the storage name and display_name in EStoragePriv. (impl_get_name,Dan Winship2002-03-071-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * e-storage.c: Keep the storage name and display_name in EStoragePriv. (impl_get_name, impl_get_display_name): Return them. (e_storage_construct): Set them here. (e_storage_new): And here. * e-local-storage.c: (impl_get_name, impl_get_display_name): Removed. (construct): Pass E_LOCAL_STORAGE_NAME and U_("Local Folders") to e_storage_construct. * e-corba-storage.c: Remove priv->name. (get_name, get_display_name): Removed. (e_corba_storage_construct): Pass name to e_storage_construct(). * e-summary-storage.[ch]: Gone. This didn't override anything in EStorage but get_name/get_display_name, and the defaults for those DTRT now. * e-shell-constants.h: Move E_SUMMARY_STORAGE_NAME here from e-summary-storage.h, and move E_LOCAL_STORAGE_NAME too for consistency. * e-storage-set-view.c: Fix up #includes. * e-shell-importer.c: Likewise * e-shell.c: Likewise. Create summary_storage as a plain EStorage since ESummaryStorage is gone now. * Makefile.am (evolution_SOURCES): Remove e-summary-storage.[ch] svn path=/trunk/; revision=15955
* Fix the license text to make sense.Ettore Perazzoli2001-10-271-1/+0
| | | | svn path=/trunk/; revision=14192
* Update the licensing information to require version 2 of the GPLEttore Perazzoli2001-10-271-2/+2
| | | | | | explicitly. svn path=/trunk/; revision=14186
* If the remove_source is %TRUE and destination is a descendant of theEttore Perazzoli2001-08-231-0/+1
| | | | | | | | | | | * e-storage.c (e_storage_async_xfer_folder): If the remove_source is %TRUE and destination is a descendant of the parent, pass an `E_STORAGE_CANTMOVETODESCENDANT' error code to the callback. * e-storage.h: New value `E_STORAGE_CANTMOVETODESCENDANT' in `EStorageResult'. svn path=/trunk/; revision=12397
* [Finally! Fix #413, "Support for stock folders", and #786, "i18n:Ettore Perazzoli2001-08-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | default folder names are not translated".] * e-local-storage.c (setup_folder_as_stock): New helper function. (setup_stock_folders): Use it to set the default folders as "stock" folders. This will give them a translated name and also make them unmodifiable. (load_all_folders): Call `setup_stock_folders()' here. * e-shell-folder-commands.c (delete_cb): Display an error dialog if the deletion fails. (e_shell_command_delete_folder): Pass the shell view to the delete callback. * e-storage.c (e_storage_result_to_string): Add a string for `E_STORAGE_CANTCHANGESTOCKFOLDER' as well. * e-local-storage.c (remove_folder): Don't allow a stock folder to be removed. (impl_async_xfer_folder): Don't allow a stock folder to be moved. * e-corba-storage.c (async_remove_folder): Don't allow a stock folder to be removed. * e-storage.h: New enum value `E_STORAGE_CANTCHANGESTOCKFOLDER' in `EStorageResult'. * e-folder.c: Make member `self_highlight' a :1 int. New :1 int member `is_stock'. (init): Init `is_stock' to %FALSE. (e_folder_set_is_stock): New. (e_folder_get_is_stock): New. * e-local-storage.c (bonobo_interface_update_folder_cb): For now, don't set the display name. svn path=/trunk/; revision=11931
* [This is a better way to have "Local Folders" be shown as the localJason Leach2001-07-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-20 Jason Leach <jleach@ximian.com> [This is a better way to have "Local Folders" be shown as the local storage name without breaking current user's shortcuts.] * e-corba-storage.c (get_display_name): Implement this, but it's only returning the real name now. Need to change the IDL soon to let corba storages have separated display names. * e-shortcuts.c (e_shortcuts_add_default_group): Set these default shortcut URI's back to evolution:/local/ * e-shell-view.h (DEFAULT_URI): Set this back to "evolution:/local/Inbox" * e-storage-set-view.c (etree_value_at): Get the display name for a storage rather than it's true name. * e-local-storage.c (impl_get_display_name): Implemented for the local folder (to return a translated "Local Folders"). * e-storage.c (e_storage_get_display_name): New virtual function for retrieving the display name. svn path=/trunk/; revision=11274
* Update the copyrights, replacing Helix Code with Ximian andEttore Perazzoli2001-06-231-1/+1
| | | | | | helixcode.com with ximian.com all over the place. svn path=/trunk/; revision=10440
* Finish the DnD stuff by implementing move/copy on the shell side asEttore Perazzoli2001-03-271-0/+1
| | | | | | | well. Now we should just need to implement the corresponding bits in the components... svn path=/trunk/; revision=8949
* Fix some warnings, Allow the importers to import into any folder. UpdateIain Holmes2001-03-231-1/+2
| | | | | | | | | | Fix some warnings, Allow the importers to import into any folder. Update all importers for this change. Don't emit the create_folder callback if the folder to be created already exists. This should fix the libibex crash when importing. svn path=/trunk/; revision=8912
* Added an xfer method to `EStorage' and `GNOME::Evolution::Storage'.Ettore Perazzoli2001-03-221-17/+36
| | | | svn path=/trunk/; revision=8894
* Remove <config.h> #includes from the `.h' files, which is known to be,Ettore Perazzoli2001-02-061-4/+0
| | | | | | um, a wrong thing to do. svn path=/trunk/; revision=7983
* Fix the logic for updating the shortuct labels when the display namesEttore Perazzoli2001-01-241-1/+0
| | | | | | | | | | of the corresponding folders change, so that it doesn't crash. I have removed the redundant "folder_updated" signal on `ELocalStorage' and changed EStorage so that it emits "updated_folder" automatically when any of the folders changes its properties. svn path=/trunk/; revision=7770
* Complete the code to associate a URI and a folder type to the toplevelEttore Perazzoli2000-12-091-6/+11
| | | | | | | node in a storage. It sucks a bit and needs a little more refactoring. svn path=/trunk/; revision=6878
* Start implementing a physical URI property for the toplevel nodes inEttore Perazzoli2000-12-051-2/+4
| | | | | | storages. Also add initial code in the shell to handle that. svn path=/trunk/; revision=6787
* Add "highligted" field to Folder. Add update_folder method toDan Winship2000-11-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Evolution-Storage.idl: Add "highligted" field to Folder. Add update_folder method to StorageListener to change display_name and highlight status. * e-folder.c: Add "highlighted" to EFolder to match the Evolution::Folder type. (e_folder_get_highlighted, e_folder_set_highlighted): Added * evolution-storage-listener.c (impl_Evolution_StorageListener_update_folder, etc): * e-storage.c (e_storage_updated_folder, etc): * e-corba-storage.c (impl_StorageListener_update_folder, etc): Implement update_folder. * e-storage-set.c (storage_updated_folder_cb, etc): Re-emit updated_folder signals received from EStorage. * e-storage-set-view.c (various): Add another model column to the ETable and set it up as a bold_column based on e_folder_get_highligted. (updated_folder_cb, etc): Listen to EStorageSet update_folder signal and emit ETree node_changed signals. * evolution-storage.c (evolution_storage_update_folder): Client function to update a folder's display_name and highlighted status. * Evolution-LocalStorage.idl: * evolution-local-storage.c: * e-local-storage.c: Change set_display_name to update_folder to match Evolution::StorageListener svn path=/trunk/; revision=6328
* Fully support setting the display name in the tree. It seems to work.Ettore Perazzoli2000-09-111-17/+20
| | | | svn path=/trunk/; revision=5320
* Update the ::user_select_folder() interface so that it accepts both aEttore Perazzoli2000-08-041-0/+5
| | | | | | physical URI or an evolution: one for specifying the default folder. svn path=/trunk/; revision=4508
* Implemented folder creation dialog (File -> New -> Folder). To makeEttore Perazzoli2000-06-111-21/+28
| | | | | | | | it really work though, the components should implement creation functionality by passing an appropriate function pointer in `e_shell_component_new()' for @create_folder_fn. svn path=/trunk/; revision=3504
* Fixed a refcount leak and added interfaces to add/remove foldersEttore Perazzoli2000-06-081-16/+48
| | | | | | from an EStorage (although they are not implemented yet). svn path=/trunk/; revision=3460
* Made the storage view update at changes in the storage, andEttore Perazzoli2000-05-261-6/+7
| | | | | | | | | | implemented a BonoboObject for wrapping the Evolution::Storage CORBA interface. Also fixed a few bugs. This makes the shell's storage extensibility usable for Evolution components. svn path=/trunk/; revision=3219
* Get rid of the old `evolution-service-repository' cruft and startEttore Perazzoli2000-05-231-8/+5
| | | | | | implementing new CORBA storage interfaces for the shell. svn path=/trunk/; revision=3178
* Big shell reorganization.Ettore Perazzoli2000-05-071-0/+93
svn path=/trunk/; revision=2848