Commit Graph

20 Commits

Author SHA1 Message Date
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
f312a007fd New callback for the show_folder_properties signal.
* evolution-test-component.c
(storage_show_folder_properties_callback): New callback for the
show_folder_properties signal.
(setup_custom_storage): Add two property items, and connect the
callback to the signal.

* e-storage-set-view.c: Renamed private member container into
ui_container; new member ui_component.
(init): Initialize ui_component to NULL.
(impl_destroy): Unref if not NULL.
(e_storage_set_view_construct): If @ui_container is not NULL,
weakref it and create a new ui_component that uses it as its
container.
(ui_container_destroy_notify): New, weakref destroy callback for
priv->ui_container.
(remove_property_items): New helper function.
(setup_folder_properties_items_if_corba_storage_clicked): New
helper function.
(folder_property_item_verb_callback): New callback for the verbs
associated to the folder property items.
(popup_folder_menu): Set up the per-storage folder property items
using setup_folder_properties_items_if_corba_storage_clicked() and
remove them with remove_property_items() after the menu has been
popped down.  Don't invoke populate_folder_context_menu if there
is no handler for this node [this avoids a spurious warning].

* e-corba-storage.c (e_corba_storage_show_folder_properties): New.
(e_corba_storage_get_folder_property_items): New.
(e_corba_storage_free_property_items_list): New.

* evolution-storage.c: New private member folder_property_items.
(init): Init to NULL.
(destroy): Free.
(impl_showFolderProperties): New, implementation for the
Storage::showFolderProperties CORBA method.
(class_init): Set up the "show_folder_properties" signal here.
(impl_Storage__get_propertyItems): New, getter for the
Storage::propertyItems property.
(corba_class_init): Install the new methods.
(evolution_storage_add_property_item): New function to add
property items to the storage.

* evolution-storage.h: New signal show_folder_properties.

* e-storage-set.c (e_storage_set_create_new_view): Renamed from
e_storage_set_new_view().

* Evolution-Storage.idl: Added attribute folderPropertyItems and
method ::showFolderProperties.

svn path=/trunk/; revision=17714
2002-08-06 16:27:48 +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
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
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
7da5a58462 the only problematic area - pass NULL for now in as the BonoboUIContainer.
2001-05-11  Chris Toshok  <toshok@ximian.com>

	* evolution-storage-set-view-factory.c
	(evolution_storage_set_view_factory_new_view): the only
	problematic area - pass NULL for now in as the BonoboUIContainer.
	how do we pass this container to the control?

	* e-storage-set-view.c (folder_context_menu_activate): un-#if 0
	this function.
	(populate_folder_context_menu_with_common_items): build our popup
	using the new xml bonobo stuffs.
	(popup_folder_menu): convert to using the new xml bonobo stuffs.
	(right_click): only do the popup menu if we have a
	BonoboUIContainer.
	(e_storage_set_view_new): add BonoboUIContainer* arg.
	(e_storage_set_view_construct): same.

	* e-storage-set-view.h: add BonoboUIContainer* args to
	e_storage_set_view_new and e_storage_set_view_construct.

	* e-shell-folder-creation-dialog.c (add_storage_set_view): pass
	NULL for the BonoboUIContainer, since we shouldn't (?) have a
	popup in this dialog.

	* e-shell-folder-selection-dialog.c
	(e_shell_folder_selection_dialog_construct): pass NULL for the
	BonoboUIContainer, since we shouldn't (?) have a popup in this
	dialog.

	* e-storage-set.h: add BonoboUIContainer* arg to
	e_storage_set_new_view.

	* e-storage-set.c (e_storage_set_new_view): add arg, and track
	change to e_storage_set_view_new.

	* e-shell-view.h: add prototype for
	e_shell_view_get_bonobo_ui_container.

	* e-shell-view.c (setup_storage_set_subwindow): track change to
	e_storage_set_view_new.
	(e_shell_view_construct): the BonoboUIContainer is now part of our
	private structure.
	(e_shell_view_get_bonobo_ui_container): new function.

svn path=/trunk/; revision=9756
2001-05-11 11:14:45 +00:00
a2ae2d718b Changed the EStorageSet API to have a single `xfer()' method instead
of separate copy/move (as in the IDL).  Actually implement the
`xfer()' operation for the case when source and destination are in the
same storage.  Fix the `EStorageSet' API by having a special
`EStorageSetResultCallback' callback type for it (instead of using
`EStorageResultCallback', which would never work).

Also, removed some unused variables in `e-storage-set-view.c'.

svn path=/trunk/; revision=8895
2001-03-22 13:41:01 +00:00
2df293b5c7 More DnD work. Now we handle copying and moving of folders, although
the hooks to actually make the physical operation happen are missing.

Also, fix a stupid cut & paste error in Chris' commit (and re-indent
the code a bit to make it match the surrounding style).

svn path=/trunk/; revision=8890
2001-03-22 10:41:44 +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
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
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
bb241192eb Reorganized the shell to allow dynamic registration of storages and
folder types, and changed all the components to work with the new
setup.

svn path=/trunk/; revision=3199
2000-05-25 05:55:59 +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
7198aa064a Initial implementation of the tree view for the folders.
svn path=/trunk/; revision=3020
2000-05-14 01:32:19 +00:00
725d0a088d Big shell reorganization.
svn path=/trunk/; revision=2848
2000-05-07 01:57:49 +00:00