Commit Graph

24 Commits

Author SHA1 Message Date
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