Commit Graph

28 Commits

Author SHA1 Message Date
d91364b056 New, implementation for the cancel_discover_shared_folder virtual method.
* 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
2002-10-17 20:47:06 +00:00
45fd176750 Calls e_shell_command_remove_shared_folder. (file_verbs): Set up
* 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
2002-09-30 18:41:05 +00:00
6a5efeb0f9 [Finish fixing #11645.]
* 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
2002-09-25 18:06:29 +00:00
79c77a6559 Add description for E_STORAGE_NOTONLINE.
* 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
2002-09-17 20:52:02 +00:00
86b700d089 Support for delayed filling-in of storages/folders.
* 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
2002-03-14 22:22:35 +00:00
7065f6dba3 Make storages-with-toplevel-views less of a hack.
* 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
2002-03-07 18:26:57 +00:00
3bc843ceb5 Keep the storage name and display_name in EStoragePriv. (impl_get_name,
* 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
2002-03-06 23:36:27 +00:00
a40ab7c842 Fix the license text to make sense.
svn path=/trunk/; revision=14192
2001-10-27 01:09:28 +00:00
067aaf149e Update the licensing information to require version 2 of the GPL
explicitly.

svn path=/trunk/; revision=14186
2001-10-26 23:53:35 +00:00
bb662dceb3 If the remove_source is %TRUE and destination is a descendant of the
* 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
2001-08-22 21:41:32 +00:00
51f77f649b [Finally! Fix #413, "Support for stock folders", and #786, "i18n:
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
2001-08-12 14:00:02 +00:00
c49f665c56 [This is a better way to have "Local Folders" be shown as the local
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
2001-07-20 21:15:57 +00:00
91cc026904 Update the copyrights, replacing Helix Code with Ximian and
helixcode.com with ximian.com all over the place.

svn path=/trunk/; revision=10440
2001-06-23 08:52:02 +00:00
f342817e88 Finish the DnD stuff by implementing move/copy on the shell side as
well.  Now we should just need to implement the corresponding bits in
the components...

svn path=/trunk/; revision=8949
2001-03-26 18:55:41 +00:00
35c7cc9018 Fix some warnings, Allow the importers to import into any folder. Update
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
2001-03-23 02:09:29 +00:00
03765ef0bb Added an xfer method to EStorage' and GNOME::Evolution::Storage'.
svn path=/trunk/; revision=8894
2001-03-22 12:47:16 +00:00
f7926820ed Remove <config.h> #includes from the `.h' files, which is known to be,
um, a wrong thing to do.

svn path=/trunk/; revision=7983
2001-02-05 20:45:36 +00:00
4e98233a4d Fix the logic for updating the shortuct labels when the display names
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
2001-01-24 00:56:21 +00:00
a66eae1674 Complete the code to associate a URI and a folder type to the toplevel
node in a storage.  It sucks a bit and needs a little more
refactoring.

svn path=/trunk/; revision=6878
2000-12-09 00:55:57 +00:00
9c28295de3 Start implementing a physical URI property for the toplevel nodes in
storages.  Also add initial code in the shell to handle that.

svn path=/trunk/; revision=6787
2000-12-05 01:08:18 +00:00
0fa29927fc Add "highligted" field to Folder. Add update_folder method to
* 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
2000-11-02 00:11:53 +00:00
0f618ac4cf Fully support setting the display name in the tree. It seems to work.
svn path=/trunk/; revision=5320
2000-09-11 11:12:16 +00:00
49fd4ffbc4 Update the ::user_select_folder() interface so that it accepts both a
physical URI or an evolution: one for specifying the default folder.

svn path=/trunk/; revision=4508
2000-08-03 18:21:47 +00:00
bbb6a6942f Implemented folder creation dialog (File -> New -> Folder). To make
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
2000-06-10 17:56:46 +00:00
e7971bb4f5 Fixed a refcount leak and added interfaces to add/remove folders
from an EStorage (although they are not implemented yet).

svn path=/trunk/; revision=3460
2000-06-07 17:01:52 +00:00
47ab2202ba Made the storage view update at changes in the storage, and
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
2000-05-26 14:49:12 +00:00
d00e525efc Get rid of the old `evolution-service-repository' cruft and start
implementing new CORBA storage interfaces for the shell.

svn path=/trunk/; revision=3178
2000-05-23 10:15:30 +00:00
725d0a088d Big shell reorganization.
svn path=/trunk/; revision=2848
2000-05-07 01:57:49 +00:00