Commit Graph

174 Commits

Author SHA1 Message Date
ee467a65b1 Pass TRUE as @queue to e_shell_view_display_uri().
* e-shell.c (create_view): Pass TRUE as @queue to
e_shell_view_display_uri().

* e-shell-view-menu.c (command_activate_view): Pass TRUE as @queue
to e_shell_view_display_uri().
(goto_folder_dialog_folder_selected_cb): Likewise.

* e-shell-shared-folder-picker-dialog.c
(shared_folder_discovery_listener_callback): Pass TRUE as @queue
to e_shell_view_display_uri().

* e-shell-view.c
(display_uri): New arg @queue.  If true, it allows the
delayed_selection mechanism to happen transparently (returning
TRUE, while before it used to return FALSE).  Otherwise, refuse to
queue the URI and return FALSE.
(e_shell_view_display_uri): New arg @queue; pass it to
display_uri().
(handle_current_folder_removed): Pass TRUE as @queue to
e_shell_view_display_uri().
(set_folder_timeout): Likewise.
(switch_on_folder_tree_click): Likewise.
(activate_shortcut_cb): Likewise.
(corba_interface_change_current_view_cb): Likewise.
(socket_destroy_cb): Likewise.
(socket_destroy_cb): Likewise.
(e_shell_view_load_settings): Here, try displaying the old URI
with @queue set to FALSE; if this fails, display the default URI
and then invoke display again using @queue = TRUE so it gets
queued up.  This should fix #27721.

svn path=/trunk/; revision=17972
2002-09-04 19:33:15 +00:00
6b346389dc Pass FALSE as @restore_all_views to e_shell_restore_from_settings() so we
* main.c (idle_cb): Pass FALSE as @restore_all_views to
e_shell_restore_from_settings() so we only restore the first view.

* e-shell.c (e_shell_restore_from_settings): New arg
@restore_all_views.

svn path=/trunk/; revision=17967
2002-09-04 18:36:21 +00:00
9ce6d5fc54 Pass a selection_order to oaf_query so we get the components back in a
* e-shell.c (setup_components): Pass a selection_order to
	oaf_query so we get the components back in a consistent order.
	Hack fix for #28490 for 1.2 by ensuring that Connector gets
	started before evolution-mail.
	(get_icon_path_for_component_info): Rename the oaf icon name
	property to use underscores to match the launch order property
	(which needs to use underscores because dashes are interpreted as
	subtraction in the selection_order context).

svn path=/trunk/; revision=17904
2002-08-28 21:16:10 +00:00
b903f35585 (endarken_style): Set the color for
GTK_STATE_INSENSITIVE too so it doesn't look ugly when we quit.

svn path=/trunk/; revision=17679
2002-08-01 21:33:56 +00:00
39c3739393 Get the EStorageSet from the shortcut's shell since there is no
* e-shortcuts-view-model.c (get_icon_for_item): Get the
EStorageSet from the shortcut's shell since there is no
e_shortcuts_get_storage_set() anymore.
* e-shortcuts-view.c (get_shortcut_info): Likewise.
(impl_shortcut_drag_motion): Likewise.
(impl_shortcut_drag_data_received): Likewise.

* e-shell.c (e_shell_construct): e_shortcuts_new_from_file(), not
e_shortcuts_new() here.

* e-shortcuts.c: Removed members storage_set and
folder_type_registy in EShortcutsPrivate.  New member shell.
(init): Init to NULL.
(e_shortcuts_construct): Removed arg @storage_set and
@folder_type_registry, new arg @shell.
(e_shortcuts_new): Removed.
(e_shortcuts_new_from_file): New.
(impl_destroy): Renamed from destroy().
(e_shortcuts_get_storage_set): Removed.
(e_shortcuts_get_shell): New.
(load_shortcuts): Accept any URI that can be parsed (by
e_shell_parse_uri).

* e-shell.c (e_shell_parse_uri): New.

* e-shell-view.c (evolution_uri_for_default_uri): New.
(display_uri): Use it to determine the evolution: uri given a
default: uri.

* e-shell.c (impl_Shell_handleURI): Pass it over to
e_shell_create_view_from_uri_and_settings() even if it's an
E_SHELL_DEFAULTURI_PREFIX.
(handle_default_uri): Removed.

svn path=/trunk/; revision=17497
2002-07-17 22:03:57 +00:00
027f53a2c8 set corba_folder.customIconName so we don't crash.
2002-07-14  Chris Toshok  <toshok@ximian.com>

	* e-shell.c (folder_selection_dialog_folder_selected_cb): set
	corba_folder.customIconName so we don't crash.
	(impl_Shell_selectUserFolder): remove the default_type parameter
	to fix a compiler warning.

svn path=/trunk/; revision=17451
2002-07-15 07:03:38 +00:00
d90ce8063d (e_shell_show_settings): Don't set up the settings
dialog as a transient.  [#25776]

svn path=/trunk/; revision=17350
2002-07-02 17:25:52 +00:00
a6e1e46e4a Remove debugging message.
* e-shell.c (e_shell_prepare_for_quit): Remove debugging message.

* e-shell-view.c (setup_verb_sensitivity_for_folder): Set
sensitivity of /commands/AddFolderToShortcutBar,
/commands/OpenFolder and /commands/OpenFolderInNewWindow too,
depending on whether the node that was right-clicked can be opened
as a folder.

* e-storage-set-view.c (popup_folder_menu): Pop up the right-click
menu even if we are not clicking on a folder with a proper
handler.

svn path=/trunk/; revision=17337
2002-07-01 18:51:08 +00:00
f3a15eb351 New member preparing_to_quit in EShellPrivate.
(init): Initialize to FALSE.
(e_shell_prepare_for_quit): Set preparing_to_quit to TRUE on
entering, and set it to FALSE on return.
(view_delete_event_cb): Don't call e_shell_prepare_for_quit() if
preparing_for_quit is TRUE.

svn path=/trunk/; revision=17336
2002-07-01 17:42:29 +00:00
1fb21d1f78 No more @default_type arg to e_shell_folder_selection_dialog_new().
* e-shell.c (impl_Shell_selectUserFolder): No more @default_type
arg to e_shell_folder_selection_dialog_new().

* e-shell-view-menu.c (command_goto_folder): No more @default_type
arg to e_shell_folder_selection_dialog_new().
(command_new_shortcut): Likewise.

* e-shell-importer.c (import_druid_finish): No more @default_type
arg to e_shell_folder_selection_dialog_new().

* e-shell-folder-commands.c (e_shell_command_move_folder): No more
@default_type arg to e_shell_folder_selection_dialog_new().
(e_shell_command_copy_folder): Likewise.

* e-shell-folder-selection-dialog.c: Removed default_type member
in EShellFolderSelectionDialogPrivate.
(e_shell_folder_selection_dialog_new): Removed @default_type arg.
(e_shell_folder_selection_dialog_construct): Likewise.
(impl_clicked): Just pass the first of the allowed types to
e_shell_show_folder_creation_dialog() for the default type.

* evolution-shell-client.c (user_select_folder): No more
@default_type arg to the ::userSelectFolder CORBA method.

* Evolution-Shell.idl (selectUserFolder): Remove arg
@default_type.

svn path=/trunk/; revision=16983
2002-05-22 23:51:38 +00:00
2b9f864daf New callback for when the first created view in the shell gets mapped.
* main.c (view_map_callback): New callback for when the first
created view in the shell gets mapped.
(new_view_created_callback): New callback for when the first view
of the shell gets created.
(show_development_warning): New function to display a warning
about the fact that Evolution is unstable.
(idle_cb): Call show_development_warning() here unless the
EVOLVE_ME_HARDER environment variable is set.

* e-shell.c (class_init): Add the "new_view_created" signal here.
(create_view): Emit the signal here.

* e-shell.h: New signal "new_view_created".

svn path=/trunk/; revision=16977
2002-05-22 20:49:13 +00:00
e7ad5d121b Only refuse quitting if the result is CANCEL. This way we allow quitting
* e-shell.c (e_shell_prepare_for_quit): Only refuse quitting if
the result is CANCEL.  This way we allow quitting if one of the
components has crashed or something else otherwise goes wrong.
Fixes #25093.

* evolution-shell-component-client.c
(result_from_async_corba_result): Handle
GNOME_Evolution_ShellComponentListener_CANCEL.

svn path=/trunk/; revision=16974
2002-05-22 16:12:00 +00:00
aad3ac6ddd Ask e_shell_prepare_for_quit() before destroying the view if it's the last
* e-shell.c (view_delete_event_cb): Ask e_shell_prepare_for_quit()
before destroying the view if it's the last one.

* e-shell-view-menu.c (command_close): Synthesize a delete_event
on the view instead of directly destroying it.

svn path=/trunk/; revision=16931
2002-05-16 14:54:55 +00:00
3d386b57d1 Check with e_shell_prepare_for_quit() before quitting.
* e-shell-view-menu.c (command_quit): Check with
e_shell_prepare_for_quit() before quitting.

* e-shell.c (e_shell_prepare_for_quit): New.

* evolution-test-component.c (request_quit_fn): New function
asking for confirmation to quit.

* evolution-shell-component.c (evolution_shell_component_new): New
arg @request_quit_fn.
(impl_requestQuit): New, implementation for
EvolutionShellComponent::requestQuit.
(evolution_shell_component_result_to_string): Handle
EVOLUTION_SHELL_COMPONENT_CANCEL.
(evolution_shell_component_client_request_quit): New.

* Evolution-ShellComponent.idl (requestQuit): New.

* component-factory.c (create_component): Pass NULL as
@request_quit_fn.

* component-factory.c (create_component): Pass NULL as
@request_quit_fn.

* gui/component-factory.c (create_object): Pass NULL as
@request_quit_fn.

* gui/component/addressbook-component.c (create_component): Pass
NULL as @request_quit_fn.

svn path=/trunk/; revision=16925
2002-05-15 21:41:51 +00:00
48ef648a2e Pass self to e_shell_offline_handler_new() instead of the component
* e-shell.c (e_shell_go_offline): Pass self to
e_shell_offline_handler_new() instead of the component registry.

* e-shell-offline-handler.c: Replace member `component_registry'
in EShellOfflineHandlerPrivate with a `shell' member.  Updated all
the code to retrieve the component registry from the shell instead
of directly.
(e_shell_offline_handler_construct): Get a @shell instead of a
@component_registry.

svn path=/trunk/; revision=16779
2002-05-14 04:23:27 +00:00
ee4d8e5cb0 Put the EStorageSetView in an EScrollFrame.
* evolution-storage-set-view-factory.c
(evolution_storage_set_view_factory_new_view): Put the
EStorageSetView in an EScrollFrame.

* e-shell.c (impl_Shell_createStorageSetView):
CORBA_Object_duplicate the object before returning.

* evolution-test-component.c
(create_new_folder_selector): New function to create a simple test
environment for the new checkbox-enabled StorageSetView.
(register_component): Add user-creatable type FolderSelector.
(user_create_new_item_callback): Handle FolderSelector.
(dialog_clicked_callback): Print out the checked items in the
folder selector.
(main): Print out a message before going into bonobo_main().

* evolution-storage-set-view.c
(impl_StorageSetView__get_showFolders): Renamed from
impl_StorageSetView__get_show_folders.
(impl_StorageSetView__set_showFolders): Renamed from
impl_StorageSetView__set_show_folders.
(impl_StorageSetView__set_showCheckboxes): New, write the
showCheckboxes CORBA attribute.
(impl_StorageSetView__get_showCheckboxes): New, read the
showCheckboxes CORBA attribute.
(impl_StorageSetView__get_checkedFolders): New, read the
checkedFolders CORBA attribute.
(corba_class_init): Install the new CORBA methods methods.

* e-storage-set-view.c (essv_add_to_list): strdup() the path.
(e_storage_set_view_get_storage_set): New.

* e-folder.c (e_folder_to_corba): New.

* Evolution-StorageSetView.idl: Add showCheckboxes and
checkedFolders attributes.

* Evolution-common.idl: Add typedef for FolderList.

svn path=/trunk/; revision=16704
2002-05-07 16:57:45 +00:00
bd6359c660 emit show_settings signal (corba_class_init): assign epv method
2002-04-18  JP Rosevear  <jpr@ximian.com>

	* evolution-shell-view.c (impl_ShellView_show_settings): emit
	show_settings signal
	(corba_class_init): assign epv method
	(class_init): add signal

	* evolution-shell-view.h: new signal

	* e-shell.c (init): init settings_dialog private member
	(settings_dialog_destroy_cb): reset dialog pointer
	(e_shell_show_settings): show the settings dialog, bring it to the
	front if one already exists for this shell

	* e-shell.h: new proto

	* e-shell-view.c (corba_interface_show_settings): implement
	showSettings method
	(setup_corba_interface): listen for show_settings signal
	(e_shell_view_show_settings): show the settings dialog

	* e-shell-view.h: new proto

	* e-shell-view-menu.c (command_settings): call
	e_shell_view_show_settings instead

	* Evolution-ShellView.idl: add showSettings method

svn path=/trunk/; revision=16510
2002-04-18 18:57:45 +00:00
8ded5c9c10 Shell config page routines. Right now handles the default folders page.
* e-shell-config.c: Shell config page routines. Right now
	handles the default folders page.

	* glade/e-shell-config-default-folders.glade: New.

	* GNOME_Evolution_Shell.oaf.in: Add info for the default folders
	config page.

	* main.c (idle_cb): If we successfully registered the shell,
	register the config factory.

	* evolution-shell-client.c (evolution_shell_client_new): Note the
	fact that it frees the corba_shell when it is destroyed.

	* evolution-folder-selector-button.c
	(evolution_folder_selector_button_construct, destroy): Use
	bonobo_object_ref/unref on the shell client, not gtk.

	* e-shell.c (e_shell_construct): Pass local_directory to
	e_setup_check_db.
	(handle_default_uri): Fix the config db paths here to match the
	other routines.

	* e-setup.c (e_setup_check_db): Make this take the evolution
	directory path as well so we can properly set up file: URIs for
	the default folders.

svn path=/trunk/; revision=16423
2002-04-10 19:01:14 +00:00
a1720426f1 New. Check that things that need to be in the config db are. Right now it
* e-setup.c (e_setup_check_db): New. Check that things that need
	to be in the config db are. Right now it sets up the default
	folders.

	* e-shell.c (e_shell_construct): Call e_setup_check_db after
	getting the config db.

	* e-shell-constants.h: Add E_SUMMARY_URI, E_LOCAL_INBOX_URI, etc.

	* e-shortcuts.c (e_shortcuts_add_default_group): Use
	E_LOCAL_INBOX_URI, etc.

	* e-shell-view.c: #define FALLBACK_URI to E_SUMMARY_URI

svn path=/trunk/; revision=16405
2002-04-09 15:54:24 +00:00
2a3a53e9cf Add a "view_info" argument.
* Evolution-ShellComponent.idl (createView): Add a "view_info"
	argument.

	* e-shell-view.c (get_view_for_uri): if the URI contains a '#',
	split it into a URI and a "view_info" at that point. (Otherwise,
	pass "" for the view_info to ShellComponent_createView.) This can
	be used for things like specifying day/month/week view to the
	calendar.

	* e-shell.c (create_view): Ignore e_shell_view_display_uri's
	return code: it's possible/likely that the requested URL is remote
	and hasn't been filled in yet.
	(impl_Shell_handleURI): Don't use Shell_createNewView directly,
	call e_shell_create_view_from_uri_and_settings. (For the above fix
	and some others.)

	* evolution-shell-component.c (impl_createView): Add view_info.

	* evolution-shell-component-client.c
	(evolution_shell_component_client_create_view): Add view_info.

	* evolution-test-component.c (create_view_fn): add view_data.

	* e-corba-storage-registry.c
	(impl_StorageRegistry_getFolderByUri): kill a warning

svn path=/trunk/; revision=16397
2002-04-09 14:59:26 +00:00
c357c63804 Fix "evolution evolution:/path/to/folder" to use default view
prefs.

	* e-shell.c (impl_Shell_createNewView): Use
	e_shell_create_view_from_uri_and_settings to create the new view
	based on saved view 0 instead of always using the initial
	evolution defaults.
	(e_shell_create_view_from_uri_and_settings): Renamed and
	simplified; the template_view argument was useless and
	settings_found would always be set to TRUE in the context it was
	being used it.
	(e_shell_restore_from_settings): Simplify for
	e_shell_create_view_from_uri_and_settings changes.

	* e-shell-view.c (e_shell_view_load_settings): Only load the
	DisplayedURI if the view isn't already displaying a URI. Also,
	pass an &ev to the first bonobo_config_get_long so we can tell if
	it failed and bail out.

	* e-shell-view.h: Remove a prototype for a non-existent function
	(e_shell_view_remove_control_for_uri).

	* main.c (idle_cb): Add some comments here and remove some dead
	code.

svn path=/trunk/; revision=16389
2002-04-08 15:30:02 +00:00
54ddaa6e48 New widget for a button that displays a folder selection in a standard
* evolution-folder-selector-button.c: New widget for a button that
	displays a folder selection in a standard form, and when clicked
	lets the user select a new folder.

	* Evolution-Shell.idl (FolderSelectionListener:notifySelected):
	Make this take an Evolution:Folder instead of a pair of uris.
	(Shell:getIconByType): New method to get the icon for a type from
	the folder type registry.

	* Evolution-common.idl (Folder): add "evolutionUri" to the folder
	structure.

	* Evolution-Storage.idl (StorageRegistry:getFolderByUri): get an
	Evolution:Folder for a given uri.

	* evolution-shell-client.c
	(evolution_shell_client_user_select_folder): Update this to
	reflect the IDL change: return a GNOME_Evolution_Folder instead of
	a pair of URIs. Make sure it always sets *@folder_return to %NULL
	if it fails (even if it's a g_return_if_fail).
	(evolution_shell_client_get_storage_registry_interface): New.
	(evolution_shell_client_get_pixbuf_for_type): New. Uses
	Shell_getIconByType, but caches results.

	* e-shell.c (folder_selection_dialog_folder_selected_cb): Update
	for API change. (Return a GNOME_Evolution_Folder.)
	(impl_Shell_getIconByType): Implement.

	* e-corba-storage-registry.c
	(impl_StorageRegistry_getFolderByUri): Implement.

	* evolution-storage.c (evolution_storage_new_folder): Add a
	(dummy) evolutionUri to the folder.

	* Makefile.am (libeshell_la_SOURCES): add
	evolution-folder-selector-button.c
	(eshellinclude_HEADERS): and .h

svn path=/trunk/; revision=16352
2002-04-04 20:01:31 +00:00
f9b9c12b3b Change type of parent_class to BonoboXObjectClass.
* evolution-shell-component.c: Change type of parent_class to
BonoboXObjectClass.

* e-shell.c (pop_up_activation_error_dialog): New helper function
to pop up a dialog if one of the components couldn't be activated,
getting the description for the error from
e_get_activation_failure_msg().
(setup_components): Use this function in case of activation error.
(set_owner_on_components): Likewise, when the component gets
restarted.  Also get a @splash arg so we can set the parent for
this dialog correctly.

* e-component-registry.c (register_component): New arg @ev.
(e_component_registry_register_component): Likewise.
(e_component_registry_restart_component): Likewise.  Also, remove
some bogus code that was #if'ed out.

* evolution-shell-component-client.c
(evolution_shell_component_client_new): New arg @ev.

* evolution-shell-component-utils.c
(e_get_activation_failure_msg): New.

svn path=/trunk/; revision=16342
2002-04-04 13:35:26 +00:00
8e70cce274 Register a "working" folder type with the hourglass icon. (Would
* e-shell.c (e_shell_construct): Register a "working" folder type
	with the hourglass icon. (Would eventually like an animated gif,
	when ETable supports that.)

	* e-storage.c (e_storage_has_subfolders): Use "working" rather
	than "noselect" as the folder type.

	* e-shell-view.c (get_view_for_uri): Simplify a bit.

svn path=/trunk/; revision=16244
2002-03-25 15:40:15 +00:00
364cb04c2b Move the ComponentActionsPlaceholder into the Actions menu, instead of the
* evolution.xml: Move the ComponentActionsPlaceholder into the
Actions menu, instead of the Actions menu being in the
ComponentActionsPlaceholder.
* evolution-addressbook.xml: Updated accordingly.
* evolution-calendar.xml: Updated accordingly.
* evolution-mail-global.xml: Updated accordingly.
* evolution-mail-list.xml: Updated accordingly.
* evolution-mail-message.xml: Updated accordingly.
* evolution-mail-messagedisplay.xml: Updated accordingly.
* evolution-tasks.xml: Updated accordingly.

* evolution.xml: Add "SendReceive" verb, menu item and toolbar
button.

* evolution-mail-global.xml: Remove "MailGetSend" verb and menu
item.

* e-shell-view-menu.c (command_send_receive): New, implementation
for the "SendReceive" verb.

* e-shell.c (e_shell_send_receive): New.

* evolution-shell-component.c (impl_sendReceive): Implementation
of ShellComponent::sendReceive.
(class_init): Add the "send_receive" signal.

* evolution-shell-component.h: Added `send_receive' signal.

* Evolution-ShellComponent.idl: Added ShellComponent::sendReceive.

* component-factory.c (send_receive_cb): New, callback for the
"send_receive" signal on the EvolutionShellComponent.
(create_component): Connect.

* folder-browser-ui.c: Remove verb "MailGetSend".

* mail-callbacks.c (send_receive_mail): Removed.

* mail-send-recv.c: Remove member current_folder from struct
_send_data.
(free_send_data): No need to unref here.
(build_dialogue): Removed arg @current_folder.
(mail_send_receive): Likewise.

svn path=/trunk/; revision=16220
2002-03-21 00:07:49 +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
54c650eaea [Fix #3029, Offline mode should be preserved across sessions.]
* main.c (idle_cb): Use the e_shell_new() API below so that we use
the saved offline settings at the next start-up if neither
--offline nor --online has been specified.

* e-shell.c (save_misc_settings): New function.  For now, just
save `/Shell/StartOffline' indicating whether the shell should
start in offline mode or not.
(e_shell_construct): Replace @start_online with
@startup_line_mode.
(e_shell_new): Likewise.

* e-shell.h: New enum EShellStartupLineMode.

svn path=/trunk/; revision=15804
2002-02-22 22:11:47 +00:00
feb63a0bdc Don't show the folder bar and the shortcut bar in the new window.
* e-shell-view-menu.c (command_open_folder_in_new_window): Don't
show the folder bar and the shortcut bar in the new window.

* e-shell-view.c (activate_shortcut_cb): Don't show the folder bar
and the shortcut bar in the new window.

* e-shell-view.c (e_shell_create_view): Don't flush the GTK events
here.

* e-shell.c (e_shell_construct): New arg @start_online.  If true,
invoke `e_shell_go_online()' before returning.
(e_shell_new): New arg @start_online.  Pass it to
e_shell_construct().
(init): Default ->line_status to E_SHELL_LINE_STATUS_OFFLINE.

* main.c (main): Add "--offline" and "--online" options.

svn path=/trunk/; revision=15776
2002-02-20 20:50:10 +00:00
4eb4ae3be8 [Implement an Outlook-style "New" dropdown button. It is basically
done but it needs pretty icons so I am leaving it disabled for now.]

* e-combo-button.c: Remove member `separator' from
`EComboButtonPrivate'.  New members `icon', `label'.
(init): There shall be no separator no more.  Init `icon' and
`label' to %NULL.
(e_combo_button_construct): Set no relief.
(e_combo_button_new): Don't get a @menu arg anymore.
(e_combo_button_construct): Likewise.
(e_combo_button_set_icon): New.
(e_combo_button_set_label): New.
(e_combo_button_set_menu): New.
(impl_clicked): New, overriding the "clicked" method for
GtkButton.
(class_init): Install.
(impl_button_release_event): Removed.
(class_init): No need to override ::release_event with this
anymore.
(impl_released): New, override for the GtkButton::released method.
(class_init): Install.

* e-shell-user-creatable-items-handler.c: New member `id' in
struct `Component'.  New member `icon' in struct `MenuItem'.
(component_free): Free ->id.
(component_new): Renamed from `component_new_from_client'.  Get an
@id arg and set ->id accordingly.
(e_shell_user_creatable_items_handler_add_component): New arg @id.
Pass it to `component_new'.
(e_shell_user_creatable_items_handler_setup_menus): New arg
@current_component_id.
(e_shell_user_creatable_items_handler_update_menus): New.
(set_current_component): New helper function.
(get_component_by_id): New helper function.
(add_verbs): Renamed from `add_verbs_to_ui_component()'.  Get a
@shell_view instead of a @ui_component.  Set the SHELL_VIEW_KEY on
the ui_component of the shell_view to point to the shell_view
itself.
(ensure_menu_items): Set item->icon to NULL.
(free_menu_items): Unref item->icon.
(ensure_menu_xml): Set the icon as well.
(get_default_action_for_view): New helper function.
(find_menu_item_for_verb): New helper function.
(shell_view_view_changed_callback): New callback, set up the label
on the "New" button depending on the current component.
(e_shell_user_creatable_items_handler_attach_menus): New.  For
now, do not display the toolbar button yet.
(execute_verb): New helper function, splitting out code from
`verb_fn'.
(verb_fn): Use `execute_verb'.
(combo_button_activate_default_callback): Callback for the
"activate_default" signal on the EComboButton.
(setup_toolbar_button): Connect.

* evolution-shell-component.c: New member `icon' in
`UserCreatableItemType'.
(impl__get_userCreatableItemTypes): Put the ->icon in the
corba_type as well.
(user_creatable_item_type_new): Get a new @icon argument.
(evolution_shell_component_add_user_creatable_item): New arg
@icon.

* Evolution-ShellComponent.idl: New member `icon' in struct
`UserCreatableItemType'.

* evolution-test-component.c (register_component): Pass a NULL
@icon to `evolution_shell_component_add_user_creatable_item()'.

* e-shell-view.c (class_init): Add the signal to the class.
(e_shell_view_display_uri): Emit "view_changed".
(e_shell_view_get_current_component_id): New.

* evolution-shell-component-client.c: New member `id' in
EvolutionShellComponentClientPrivate.
(init): Init to NULL.
(impl_destroy): Free.
(evolution_shell_component_client_new_for_objref): Removed.
(evolution_shell_component_client_construct): New arg @id.
Initialize ->id from it.
(evolution_shell_component_client_get_id): New.

* e-shell-view.h: New signal "view_changed".

* evolution-activity-client.c (create_icon_from_pixbuf): Removed.
(create_corba_animated_icon_from_pixbuf_array): Removed.
(evolution_activity_client_construct): Use
`e_new_corba_animated_icon_from_pixbuf_array()' instead.

svn path=/trunk/; revision=15438
2002-01-23 22:21:24 +00:00
5b050b30a9 [Fix #17258, shell displays splash even if Evolution is already
running.]

* e-shell.c (e_shell_construct): Display the splash screen only if
the registration succeeds.

svn path=/trunk/; revision=15078
2001-12-14 18:51:06 +00:00
17c21c849e Remove debugging message.
* e-shell.c (set_interactive): Remove debugging message.

svn path=/trunk/; revision=14403
2001-10-30 02:36:53 +00:00
5054beec45 Ref the shell. (destroy): Unref the shell. (destroy): Free the
* e-shell-view.c (e_shell_view_construct): Ref the shell.
(destroy): Unref the shell.
(destroy): Free the delayed_selection.  No need to call
`cleanup_delayed_selection()' as the signal handler will have
already be disconnected at this point [as we are using
connect_while_alive()'].

svn path=/trunk/; revision=14325
2001-10-29 08:07:23 +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
82a4a84c7a Set ->is_initialized to %FALSE. (e_shell_unregister_all): Same here.
* e-shell.c (destroy): Set ->is_initialized to %FALSE.
(e_shell_unregister_all): Same here.

svn path=/trunk/; revision=14170
2001-10-26 21:00:36 +00:00
fb5bec84e9 Handle failure from XGetClassHint properly. Also, free res_name and
* e-shell.c (impl_Shell_selectUserFolder): Handle failure from
XGetClassHint properly.  Also, free res_name and res_class in case
of success.  Fixes #13554.

svn path=/trunk/; revision=14104
2001-10-25 22:28:13 +00:00
856e3689fb Explicitly deactivate the control frame, and display the default URI
* e-shell-view.c (storage_set_removed_folder_callback): Explicitly
deactivate the control frame, and display the default URI before
destroying the dead one.

* e-shell.c (e_shell_component_maybe_crashed): If the URI is of a
folder that doesn't exist anymore, don't assume that the
corresponding component has crashed.  Also, try pinging the
component first; if the component responds, don't pop up the
dialog.

svn path=/trunk/; revision=13960
2001-10-23 22:00:39 +00:00
5125a8f870 No need to gtk_widget_show() the view anymore.
* e-shell-view-menu.c (command_open_folder_in_new_window): No need
to gtk_widget_show() the view anymore.

* e-shell-view.c (activate_shortcut_cb): No need to
gtk_widget_show() the view anymore.

* e-shell.c (impl_Shell_createNewView): Don't explicitly show the
new view.
(e_shell_create_view): gtk_widget_show() the new view and flush
the GTK+ event loop before sending the ::interactive notification.
(create_view): New helper function.
(e_shell_create_view): Use it.
(e_shell_create_view_from_settings): New.
(e_shell_restore_from_settings): Use
`e_shell_create_view_from_settings()'.

svn path=/trunk/; revision=13918
2001-10-22 23:59:54 +00:00
2808a2dce4 Don't die if the parent window has no WMHints.
* e-shell.c (impl_Shell_selectUserFolder): Don't die if the parent
window has no WMHints.

svn path=/trunk/; revision=13905
2001-10-22 22:50:37 +00:00
367221fa5e New member is_interactive' in EShellPrivate'. (init): Init to %FALSE.
* e-shell.c: New member `is_interactive' in `EShellPrivate'.
(init): Init to %FALSE.
(set_interactive): New.
(e_shell_create_view): Make interactive.
(view_destroy_cb): If no views are left, make non-interactive.

* evolution-shell-component.c (class_init): Set up the
"interactive" signal.
(impl_interactive): New implementation for the ::interactive
method.
(class_init): Install.

* evolution-shell-component.h: New signal `interactive'.

* Evolution-ShellComponent.idl: New method ::interactive.

svn path=/trunk/; revision=13890
2001-10-22 19:09:24 +00:00
cb0ed21028 Fix the WM problems related to the folder selection dialog being
out-of-proc.  Now it can be set to be a transient window correctly,
and fakes its WindowGroup hint appropriately.

svn path=/trunk/; revision=13765
2001-10-18 19:58:22 +00:00
77886091c3 Re-set the owner on the component that raised OldOwnerHasDied.
* e-shell.c (set_owner_on_components): Re-set the owner on the
component that raised OldOwnerHasDied.

svn path=/trunk/; revision=13730
2001-10-17 20:26:32 +00:00
9b86a51681 [Fix #7643, Starting new view doesn't honor "view" settings.]
* e-shell-view-menu.c (command_open_folder_in_new_window): Pass
the parent @shell_view as the @template_view arg to
`e_shell_create_view()'

* e-shell-view.c (activate_shortcut_cb): Pass the _view as the
@template_view arg to `e_shell_create_view()'.

* e-shell-folder-commands.c
(e_shell_command_open_folder_in_other_window): Pass the parent
@shell_view as the @template_view arg to `e_shell_create_view()'.

* e-shell.c (e_shell_create_view): New arg @template_view.
(impl_Shell_createNewView): Pass %NULL as @template_view when
calling it.
(e_shell_restore_from_settings): Likewise.

svn path=/trunk/; revision=13618
2001-10-12 06:29:09 +00:00
ac07e6a338 [Hopefully really, finally fix #8615 and friends.]
* main.c (no_views_left_cb): Invoke `e_shell_disconnect_db()'
before unreffing the shell.

* e-shell.c (e_shell_disconnect_db): New.
(destroy): Call it instead of unreffing the db manually here.

svn path=/trunk/; revision=13616
2001-10-12 05:23:47 +00:00
b36809d0b8 Handle the return value from
* e-shell.c (impl_Shell_handleURI): Handle the return value from
`evolution_shell_component_client_handle_external_uri()' as an
EvolutionShellComponentClientResult instead of treating it as a
boolean.  This prevents the incorrect NotFound exceptions we were
getting for `mailto:' invocations.

svn path=/trunk/; revision=13460
2001-10-05 19:49:21 +00:00
fc1e5673bb If setting the owner fails, print the a warning message out. Then restart
* e-shell.c (set_owner_on_components): If setting the owner fails,
print the a warning message out.  Then restart the component.

* e-component-registry.c (component_free): Return a boolean value.
%FALSE if ::unsetOwner raises an exception.
(register_type): New arg @override_duplicate, to avoid complaining
if a component gets re-registered.
(register_component): Likewise.
(e_component_registry_restart_component): New.

* e-uri-schema-registry.c
(e_uri_schema_registry_set_handler_for_schema): Changed return
type to `void'.  Just remove the old handler and set up the new
one.

* evolution-shell-component-client.c (corba_exception_to_result):
Translate ::OldOwnerHasDied into
EVOLUTION_SHELL_COMPONENT_OLDOWNERHASDIED.

* evolution-shell-component.h: New enum value
`EVOLUTION_SHELL_COMPONENT_OLDOWNERHASDIED'.

* evolution-shell-component.c (impl_setOwner): If the old owner is
not alive anymore [use CORBA_Object_non_existent() to figure this
out], emit OWNER_UNSET and raise `OldOwnerHasDied'.
(evolution_shell_component_result_to_string): New.

* Evolution-ShellComponent.idl: New exception `OldOwnerHasDied'.
(ShellComponent::setOwner): Can raise it.

* e-folder-type-registry.c
(e_folder_type_register_type_registered): New.
(e_folder_type_register_unregister_type): New.

svn path=/trunk/; revision=13446
2001-10-05 17:49:35 +00:00
811d0de363 Make the crash message less dorky. [#10264]
* e-shell.c (e_shell_component_maybe_crashed): Make the crash
message less dorky.  [#10264]

svn path=/trunk/; revision=13309
2001-10-02 19:05:39 +00:00
e77919dfff [Fix #8053, `GNOME_Evolution_Shortcuts' doesn't seem to work.]
* e-shell.c (e_shell_construct): Don't create the EShortcuts
object a second time.

svn path=/trunk/; revision=13236
2001-09-28 21:53:33 +00:00