Commit Graph

269 Commits

Author SHA1 Message Date
7ead5a04c4 Oops, accidentally checked in some unfinished, unworking code. Reverted.
2002-07-15  Not Zed  <NotZed@Ximian.com>

	* component-factory.c (populate_folder_context_menu): Oops,
	accidentally checked in some unfinished, unworking code.
	Reverted.

svn path=/trunk/; revision=17452
2002-07-15 07:10:03 +00:00
393fa3c3e8 ** fixes for #10781
2002-07-10  Not Zed  <NotZed@Ximian.com>

        ** fixes for #10781

        * mail-callbacks.c (filter_edit): Add back a cancel button.  We
        dont need to do anything special to 'undo' here, as the rules are
        loaded every time they're used.

        * mail-vfolder.c (vfolder_editor_clicked): If ok wans't clicked,
        revert the ruleset.
        (vfolder_editor_destroy): Fake a button of -1 if we get destroyed
        with no click.
        (context_rule_removed): Unref the folder after we delete it.  If
        we're the last ref to the folder, unrefing it means it no longer
        exist,s which means no delte processing occurs ...

svn path=/trunk/; revision=17449
2002-07-15 02:06:46 +00:00
45f3b75867 Removed special-case code for NNTP support.
2002-07-04  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-accounts.c: Removed special-case code for NNTP support.

	* mail-account-gui.c (mail_account_gui_setup): Allow configuration
	of both mail and news accounts.

	* component-factory.c (mail_load_storages): No longer need the
	is-account argument.

	* subscribe-dialog.c (populate_store_list): Don't special-case
	news accounts anymore.

	* mail-config.c (mail_config_get_default_news): Removed.
	(mail_config_get_news): Removed.
	(mail_config_add_news): Removed.
	(mail_config_remove_news): Removed.

svn path=/trunk/; revision=17368
2002-07-04 23:06:41 +00:00
593eca5fcc Pass TRUE as the auto_connect argument to mail_load_storage_from_uri().
2002-07-03  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-vfolder.c (vfolder_load_storage): Pass TRUE as the
	auto_connect argument to mail_load_storage_from_uri().

	* mail-account-gui.c (add_new_store): Pass FALSE as the
	auto_connect value to mail_load_storage_from_uri().

	* mail-format.c (handle_multipart_encrypted): Pass the correct
	pointer into camel_multipart_encrypted_decrypt().

	* component-factory.c (mail_add_storage): Now takes an
	auto-connect argument which it passes along to add_storage().
	(mail_load_storage_from_uri): Same.
	(add_storage): Only call mail_note_store() if we plan on
	auto-connecting.

svn path=/trunk/; revision=17363
2002-07-03 20:40:12 +00:00
7189f01908 New arg @tooltip; pass it to
* gui/component/addressbook-component.c (add_creatable_item): New
arg @tooltip; pass it to
evolution_shell_component_add_user_creatable_item() [which now has
a @tooltip arg].

* gui/component-factory.c (add_creatable_item): New arg @tooltip.
Pass it to evolution_shell_component_add_user_creatable_item(),
which now has a @tooltip arg.
(create_object): Added tooltips.

* component-factory.c (create_component): Pass a tooltip to
evolution_shell_component_add_user_creatable_item.

* e-shell-user-creatable-items-handler.c: New member tooltip in
struct MenuItem.
(ensure_menu_items): Initialize the tooltip member.
(shell_view_view_changed_callback): Set the tooltip for the "New"
button.
(ensure_menu_xml): Set up the tooltip here as well.

* evolution-shell-component.c: Add tooltip member to struct
UserCreatableItemType.
(user_creatable_item_type_new): New arg @tooltip.
(evolution_shell_component_add_user_creatable_item): New arg
@tooltip.
(impl__get_userCreatableItemTypes): Put the tooltip in the struct
as well.

* e-shell-user-creatable-items-handler.c (setup_toolbar_button):
Create a GtkTooltips object and attach it to the combo_button
using gtk_object_set_data().
(shell_view_view_changed_callback): Set up a tooltip for the
button, according to the default.

* Evolution-ShellComponent.idl: Add a tooltip member to struct
UserCreatableItemType.

svn path=/trunk/; revision=17343
2002-07-02 15:04:14 +00:00
6256cb6fe9 Don't skip over disabled accounts - put them in the folder tree too.
2002-06-28  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (mail_load_storages): Don't skip over
	disabled accounts - put them in the folder tree too.

svn path=/trunk/; revision=17329
2002-06-28 19:33:21 +00:00
11935da7a6 Recursively delete any subfolders.
2002-06-27  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (storage_remove_folder): Recursively delete
	any subfolders.

svn path=/trunk/; revision=17318
2002-06-27 20:44:22 +00:00
83f5888387 Some compiler warning fixes.
2002-06-25  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (mail_add_storage): Some compiler warning
	fixes.

	* mail-crypto.c (mail_crypto_pgp_mime_part_sign): Removed.
	(mail_crypto_get_pgp_cipher_context): New convenience function to
	construct a pgp cipher context.
	(mail_crypto_pgp_mime_part_verify): Use the new
	get_pgp_cipher_context function.
	(mail_crypto_pgp_mime_part_encrypt): Same.
	(mail_crypto_pgp_mime_part_decrypt): Here too.

	* mail-account-gui.c (mail_account_gui_new): Initialise the
	pgp_always_trust checkbox.
	(mail_account_gui_save): Get whether or not to always_trust the
	user's pgp keys.

	* mail-config.c (account_copy): Copy over the pgp_always_trust
	option.
	(config_read): Read in the always_trust option.
	(mail_config_write): Save the always_trust option.

svn path=/trunk/; revision=17277
2002-06-25 19:55:00 +00:00
c0f7c70b8a New convenience function to find the first parent node that is visible and
2002-06-18  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_change_first_visible_parent): New
	convenience function to find the first parent node that is visible
	and emit a changed signal on it.
	(main_folder_changed): If a message changed, call
	change_first_visible_parent() in case we are in a collapsed thread
	so that our first visible parent gets updated as well. Fixes bug
	#26263.

	* component-factory.c (storage_remove_folder): Simplify the error
	checking.

svn path=/trunk/; revision=17228
2002-06-18 20:49:16 +00:00
84e8edcda2 Comment out the code to add/remove the store to the folder-tree when it
2002-06-10  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-accounts.c (account_able_clicked): Comment out the code to
	add/remove the store to the folder-tree when it gets
	enabled/disabled.

svn path=/trunk/; revision=17162
2002-06-10 22:44:42 +00:00
e0a6088f33 If this account is not a completely new account (ie, it is an edited
2002-06-06  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-account-gui.c (mail_account_gui_save): If this account is
	not a completely new account (ie, it is an edited account), then
	remove any trace of it from the shell storages. If the new account
	belongs in the folder-tree, add it to the list of storages.

	* component-factory.c (mail_add_storage): New function to add a
	single storage.

svn path=/trunk/; revision=17138
2002-06-06 20:56:43 +00:00
17bd1b5a45 Prompt the user to see if he really wants to quit when there are queued
2002-06-03  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (request_quit): Prompt the user to see if he
	really wants to quit when there are queued messages in the Outbox.

svn path=/trunk/; revision=17089
2002-06-03 21:54:54 +00:00
81407e7405 Noop if we are in offline mode.
2002-05-30  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-send-recv.c (mail_send_receive): Noop if we are in offline
	mode.

	* component-factory.c (mail_remove_storage): If the store is not
	in the storage hash, then it must not have ever been added. Fixes
	bug #25456.

svn path=/trunk/; revision=17052
2002-05-30 21:55:01 +00:00
04cef4a94f Protect against NULL stores. Fixes bug #25456.
2002-05-30  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (store_disconnect): Protect against NULL
	stores. Fixes bug #25456.

svn path=/trunk/; revision=17048
2002-05-30 20:28:12 +00:00
9b864ecd40 New. (create_component): Pass it as the @request_quit_fn to
* component-factory.c (request_quit): New.
(create_component): Pass it as the @request_quit_fn to
evolution_shell_component_new().

* e-msg-composer.c: New local `all_composers'; keeps a list of all
the composer windows created.  Changed type of `parent_class' to
BonoboWindowClass *.
(do_exit): Cleaned up a bit.  Raise the composer window before
showing the message box dialog.
(exit_dialog_cb): Removed.
(e_msg_composer_request_close_all): New.
(create_composer): Add the composer to the all_composers list and
weakref it.
(msg_composer_destroy_notify): GtkDestroyNotify function for the
composer's weakref; remove the composer from the all_composers
list.

svn path=/trunk/; revision=16930
2002-05-16 14:42:37 +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
3bfd63acd3 Added #include "folder-info.h".
2002-05-14  Christopher James Lahey  <clahey@ximian.com>

	* component-factory.c: Added #include "folder-info.h".

	* folder-browser-window.c (folder_browser_window_new),
	mail-account-editor.c (apply_changes), mail-account-gui.c
	(mail_account_gui_save), message-tag-editor.c: Removed some unused
	variables.

	* folder-info.c: Added #include "folder-info.h".  Removed static
	declaration of evolution_folder_info_get_type.

	* folder-info.c (destroy), mail-callbacks.c
	(confirm_goto_next_folder, find_current_folder,
	find_next_folder_r, find_next_folder,
	do_evil_kludgy_goto_next_folder_hack), mail-composer-prefs.c
	(sig_name_changed): Commented out these unused functions.

	* mail-config.c (add_new_storage): Removed this unused function.

	* mail-local.c (mlf_init): Fix the declaration of this function to
	match the required signature.

svn path=/trunk/; revision=16788
2002-05-14 19:55:21 +00:00
b05542ec2d Update for camel_folder_append_message / camel_folder_transfer_messages_to
* (various places): Update for camel_folder_append_message /
	camel_folder_transfer_messages_to API change.

	* mail-ops.c (mail_append_mail): Pass the appended_uid to the
	callback.

	* mail-callbacks.c (composer_save_draft_cb, save_draft_done,
	do_edit_messages): Take advantage of the append_message change to
	keep track of the UID of the saved draft so that we can delete the
	old copy of the draft each time we save a new one. Remove the
	FIXME suggesting we should do that, since we're doing it now. :)

svn path=/trunk/; revision=16766
2002-05-13 16:15:55 +00:00
d325e6d453 Pass %FALSE as @has_shared_folders to evolution_storage_new().
* e-local-storage.c (construct): Pass %FALSE as
@has_shared_folders to evolution_storage_new().

* evolution-storage.c: New member has_shared_folders in
EvolutionStoragePrivate.
(init): Initialize to FALSE.
(evolution_storage_new): New arg @has_shared_folders.
(evolution_storage_construct): Likewise.
(impl_Storage__get_folderList): Renamed from
impl_Storage__get_folder_list.
(impl_Storage__get_hasSharedFolders): New, implementation for
::hasSharedFolders.
(evolution_storage_get_epv): Install the CORBA method
implementation.

* Evolution-Storage.idl: Make Storage::name a readonly attribute.  New attribute Storage::

* component-factory.c (add_storage): Pass %FALSE as
@has_shared_folders to evolution_storage_new().

* gui/component/addressbook-storage.c
(addressbook_get_other_contact_storage): Pass %FALSE as
@has_shared_folders to evolution_storage_new().

svn path=/trunk/; revision=16733
2002-05-09 16:10:50 +00:00
50e6527820 Change so there's no race conditions between the folder info and the session stuff
svn path=/trunk/; revision=16723
2002-05-08 14:29:05 +00:00
aa8aebb693 Check all threads are idle as well, using new e_thread_busy call. Should
2002-05-06  Not Zed  <NotZed@Ximian.com>

        * component-factory.c (idle_quit): Check all threads are idle as
        well, using new e_thread_busy call.  Should fix #22553?  Also
        sleep a little bit, to let the other threads run.

svn path=/trunk/; revision=16684
2002-05-06 11:53:39 +00:00
651329fd27 Add view_info arg, but don't do anything with it.
* component-factory.c (create_view): Add view_info arg, but don't
	do anything with it.

svn path=/trunk/; revision=16398
2002-04-09 15:00:57 +00:00
2e55f851fb Set the window title/icon here instead.
2002-04-03  Jeffrey Stedfast  <fejj@ximian.com>

	* message-tag-followup.c (construct): Set the window title/icon
	here instead.

	* message-tag-editor.c (message_tag_editor_init): Don't set the
	title or window icon here, this is a generic class.

	* mail-format.c (handle_multipart_signed): Replace
	get_url_for_icon with the new mail_display_get_url_for_icon
	function.
	(handle_multipart_digest): Here too.
	(get_cid): Use mail_display_add_url instead.
	(get_location): Same.
	(handle_text_enriched): Here too.
	(handle_multipart_signed): And here.

	* message-tag-followup.c (message_tag_followup_i18n_name): Use the
	U_() macro, not the _() macro as it is what we really want.

	* mail-ops.c (mail_send_message): Don't cast the message into a
	CamelMedium before sending anymore.

	* mail-callbacks.c (expunge_folder): Set the followup argument to
	NULL here.
	(done_message_selected): Get the followup value here and pass it
	to the mail-display here.
	(do_mail_fetch_and_print): Again with the NULL followup here.

	* folder-browser.c (folder_browser_set_message_preview): Update to
	pass in NULL as the followup since we are setting the message to
	NULL here.
	(done_message_selected): Get and set the appropriate followup
	value here.
	(do_message_selected): Update to pass in NULL as the followup
	since we are setting the message to NULL here.

	* mail-display.c (mail_display_set_message): Now takes a followup
	tag value.
	(mail_display_init): Set md->followup to NULL.
	(mail_display_destroy): Free md->followup.
	(mail_display_add_url): New: replaces the static add_url function
	originally in mail-format.c
	(mail_display_get_url_for_icon): New: replaces get_url_for_icon
	which was originally in mail-format.c

svn path=/trunk/; revision=16334
2002-04-03 22:55:34 +00:00
3cdefcba37 Sync with yet-another-mail-config branch.
2002-03-26  Jeffrey Stedfast  <fejj@ximian.com>

	Sync with yet-another-mail-config branch.

	* mail-composer-prefs.c: Updated to get the right widgets and
	whatnot. Also updated to tell the evolution-config-control that
	stuff has changed.

	* mail-preferences.c: Updated to get the right widgets and
	whatnot. Also updated to tell the evolution-config-control that
	stuff has changed.

	* mail-accounts.etspec: New file needed by mail-accounts.c

svn path=/trunk/; revision=16257
2002-03-26 22:51:26 +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
7df203024e Remove "mailstorage", since it's not needed any more. (storage_activate):
* component-factory.c (folder_types): Remove "mailstorage", since
	it's not needed any more.
	(storage_activate): Gone, although some of it is moved to
	storage_connect.
	(create_view): Remove mailstorage code.
	(add_storage): Connect to the storage's open_folder signal.
	Instead of creating a "mailstorage" folder, call
	evolution_storage_has_subfolders to let the shell know we haven't
	finished filling it in yet.
	(storage_connect): Handler for the storage's asyncOpenFolder
	signal. Call mail_note_store() to try to connect.
	(storage_connected): Callback for above. If the connection attempt
	failed, call evolution_storage_has_subfolders again to make the
	shell re-close the storage.

	* mail-folder-cache.c (update_folders): Remove a piece of
	mailstorage legacy code from here.

svn path=/trunk/; revision=16170
2002-03-14 22:23:06 +00:00
d6f174ad51 Update for storage changes: explicitly create a root folder.
* component-factory.c (add_storage): Update for storage changes:
	explicitly create a root folder.

	* mail-display.c (mail_display_render): Fix the "don't scroll back
	to the top of the HTML widget when opening an attachment" hack
	again by moving it here from mail_display_redisplay(). (It has to
	happen after the gtk_html_begin.)
	(mail_display_redisplay): Pass reset_scroll arg to
	mail_display_render.

	* mail-callbacks.c (do_mail_print): Pass reset_scroll (TRUE) to
	mail_display_render.

svn path=/trunk/; revision=15967
2002-03-07 18:34:14 +00:00
91010cb266 Add an icon for the "New message" user creatable item.
* component-factory.c (create_component): Add an icon for the "New
message" user creatable item.

svn path=/trunk/; revision=15791
2002-02-22 02:24:05 +00:00
ce46cd2607 remove "New" from user creatable menu item
2002-02-07  JP Rosevear  <jpr@ximian.com>

	* component-factory.c (create_component): remove "New" from user
	creatable menu item

svn path=/trunk/; revision=15597
2002-02-07 19:38:51 +00:00
d4c2e5853d re-enable popup menu. (populate_folder_context_menu): If we're on a
2002-01-30  Not Zed  <NotZed@Ximian.com>

        * component-factory.c (create_component): re-enable popup menu.
        (populate_folder_context_menu): If we're on a vfolder, and its not
        UNMATCHED, create a change properties item, and set it up
        approriately.
        (change_prop_popup): Callback to edit the vfolder rule.  For
        #3358.

svn path=/trunk/; revision=15523
2002-01-30 07:28:21 +00:00
91dd1d75d7 Do some NULL checking on the url before using it.
2002-01-25  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (destination_folder_handle_motion): Do some
	NULL checking on the url before using it.
	(destination_folder_handle_drop): Make sure the uri is non-NULL
	before freeing.

svn path=/trunk/; revision=15473
2002-01-25 19:08:00 +00:00
c76fc18144 Pass a NULL icon to `evolution_shell_component_add_user_creatable_item()'.
* component-factory.c (create_component): Pass a NULL icon to
`evolution_shell_component_add_user_creatable_item()'.

svn path=/trunk/; revision=15441
2002-01-23 22:23:51 +00:00
16b174cf0e If the first "token" in the body is "<html>", then treat this as a
2002-01-21  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-format.c (handle_text_plain): If the first "token" in the
	body is "<html>", then treat this as a text/html part rather than
	a text/plain part. Fixes bug #16817.

	* component-factory.c (destination_folder_handle_drop): Removed
	some unused variables.

svn path=/trunk/; revision=15420
2002-01-21 21:58:07 +00:00
1cca6b2433 Renamed. (mail_config_get_new_mail_notify_sound_file): Renamed.
2002-01-07  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-config.c (mail_config_set_new_mail_notify_sound_file): Renamed.
	(mail_config_get_new_mail_notify_sound_file): Renamed.

	* mail-accounts.c (notify_radio_toggled): Replace EXEC with
	PLAY_SOUND.
	(construct): renamed the exec_command stuff to play_sound.

	* main.c (main): Init and shutdown gnome_sound.

	* mail-ops.c (fetch_mail_fetch): Don't do any new-mail
	notification here.
	(filter_folder_filter): call camel_filter_driver_flush.

	* mail-session.c (main_get_filter_driver): Set the filter-driver
	exec_func here instead.

	* mail-ops.c (mail_fetch_mail): Don't set the filter-driver
	exec_func here.

svn path=/trunk/; revision=15263
2002-01-08 00:48:54 +00:00
056f54ee28 Was x_evolution_message_parse from folder-browser.c. A space char is no
2001-11-08  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-tools.c (mail_tools_x_evolution_message_parse): Was
	x_evolution_message_parse from folder-browser.c. A space char is
	no longer used to separate the folder URI and the first uid,
	instead this is now done with a nul-char so update to parse the
	newer/better format.

	* component-factory.c (destination_folder_handle_drop): Update to
	parse the new/better format.

	* folder-browser.c (x_evolution_message_parse): Moved to
	mail-tools.c
	(message_list_drag_data_get): Instead of placing a space char
	after the folder URI, instead use a nul-char.

svn path=/trunk/; revision=14645
2001-11-09 19:36:03 +00:00
0
093a00cf2b Argh!!! Dont free the async op data here, the async op is still running
2001-10-30    <NotZed@Ximian.com>

        * subscribe-dialog.c (fe_cancel_op_foreach): Argh!!! Dont free the
        async op data here, the async op is still running and will access
        it!  Just try to cancel it and mark it as cancelled (id == -1)
        (fe_done_subscribing): Only remove outselves from the hash table
        if we're not cancelled.  The handle should always be set here,
        since this code runs in the gui thread.

        * message-list.c (on_cursor_activated_idle): If nothing
        selected/cursor not activated, then select no message.

        * mail-folder-cache.c (update_1folder): Make the trash count
        optional on EVOLUTION_COUNT_TRASH, becuase some lusers are just
        too stupid to understand what its for.

        * component-factory.c (storage_xfer_folder): Return slightly
        better error codes for copying folders, since its not implemented
        yet.

        * mail-vfolder.c, mail-local.c, mail-folder-cache.c,
        message-list.c component-factory.c, mail-ops.c,
        subscribe-dialog.c, mail-session.c: d() out some debug printfs,
        w() out some warnings.

        * folder-browser-ui.c (folder_browser_ui_add_message): Fix typo,
        Resent->Resend.

svn path=/trunk/; revision=14412
2001-10-30 03:28:40 +00:00
9
fedf164cb9 Copy the folder's full_name before trying to use it to rename.
2001-10-29    <NotZed@Ximian.com>

        * mail-vfolder.c (rule_changed): Copy the folder's full_name
        before trying to use it to rename.
        (vfolder_edit_rule): Set 'orig' to be a reference of the original
        rule.
        (edit_rule_clicked): Dont lookup orig by name, copy it over
        instead.

        * folder-browser.c (got_folder): oops, emit signal before
        unreffing object, incase we got killded during getting folder.
        (got_folder): Reset get_id.
        (folder_browser_new): Set get_id of the get_folder task.
        (folder_browser_init): Init get_id.
        (folder_browser_destroy): IF we have outstanding 'get folder' op,
        cancel it.

svn path=/trunk/; revision=14323
2001-10-29 05:06:28 +00:00
8
4229e6849d Remove uic, kill dumb warning.
2001-10-28    <NotZed@Ximian.com>

	* folder-browser-ui.c (fbui_sensitize_timeout): Remove uic, kill
	dumb warning.

	* mail-autofilter.c (mail_filter_rename_uri): Implement function
	for filters to keep track of uri's being renamed.
	(mail_filter_delete_uri): Similarly for deleting uri's.  Note that
	these functions are just noops though.

	(real_flush_updates): Also rename and delete uri's from filters.

	(mls_delete_folder): Unref the store when done.
	(mls_rename_folder): Fix implementation, shell already created
	destination folder, so we can't just rename :(

	(xfer_folder): Manually call rename code, since the shell will do
	a remove/add later on, AND there's no way we can determine the new
	path from the crock of an api we have to work with.

svn path=/trunk/; revision=14291
2001-10-28 10:53:02 +00:00
8
4689dccf16 Implemented. (mail_vfolder_rename_uri): We do want to check renamed uri's
2001-10-28    <NotZed@Ximian.com>

        * mail-vfolder.c (mail_vfolder_rename_uri): Implemented.
        (mail_vfolder_rename_uri): We do want to check renamed uri's from
        vstores.
        (mail_vfolder_delete_uri): Same.
        (store_folder_renamed): Fix the folder hash at the same time.

        * mail-folder-cache.c (real_flush_updates): Pass the rename event
        to vfolder rename uri.

        * mail-local.c (mail_local_folder_reconfigure): Change the store
        path to be same as parent + mbox to be full path.
        (mls_delete_folder): Change store path to be parent path, and mbox
        to be full path.
        (mail_local_folder_reconfigure): Fix a leak of tmpname.

        * component-factory.c (xfer_folder): Only do a rename if we have
        remove set, cleaned up logic a bit.
        (idle_quit): Put the components still active check last last of
        all.
        (storage_create_folder): IF we have a fragment, use that as part
        part for parent.

svn path=/trunk/; revision=14276
2001-10-28 05:11:53 +00:00
6
8f8b24c737 Changed to open the source store from '/', so we can do renames across
2001-10-26    <NotZed@Ximian.com>

        * mail-local.c (mlf_set_folder): Changed to open the source store
        from '/', so we can do renames across directories.  Of course,
        this doesn't quite work with different filesystems, but we'll
        assume this isn't a problem we're going to have.
        (mail_local_folder_get_type): Setup parent_class.
        (mlf_rename): Implement folder rename call, rename internal data.

        Is this a security issue?  Well, not really, no more than anything
        else.

        * mail-folder-cache.c (mail_note_store): Listen to rename event.
        (store_folder_renamed): Function to handle it, empty.
        (mail_note_store_remove): Unhook from rename event.
        (mail_note_folder): Hook onto renamed event.
        (unset_folder_info): Unhook from renamed event.
        (folder_finalised): Lock around update.
        (folder_deleted): Lock around update.
        (real_flush_updates): If we have a path to remove remove it.
        (rename_folders): Scan folderinfo's, if we can find ones renamed,
        rename them, otherwise add them.

        * component-factory.c (owner_unset_cb): Use a timeout not an idle handler.
        (storage_xfer_folder): Implementation of xfer_folder signal
        handler, so we can rename imap/vfolders/etc.

svn path=/trunk/; revision=14205
2001-10-27 06:02:04 +00:00
c0cddd6d1d Update the licensing information to require version 2 of the GPL
(instead of version 2 or any later version).

svn path=/trunk/; revision=14191
2001-10-27 00:47:22 +00:00
6
8b01bc9334 Use a timeout not an idle handler.
2001-10-26    <NotZed@Ximian.com>

        * component-factory.c (owner_unset_cb): Use a timeout not an idle handler.

        * mail-callbacks.c (providers_config): Only set the parent window.

        * mail-accounts.c (mail_edit): Set the parent on the account editor.

svn path=/trunk/; revision=14121
2001-10-26 02:03:22 +00:00
5
cab9406217 So apparently the uicomp can just 'vanish' while we're using it. Joy. Take
2001-10-25    <NotZed@Ximian.com>

	* folder-browser-ui.c (fbui_sensitize_timeout): So apparently the
	uicomp can just 'vanish' while we're using it.  Joy.  Take care of
	that case here, fixes #13482.
	(fbui_sensitise_item): Check here too just for kicks.

	* mail-folder-cache.c (store_finalised): If we can't destroy our
	async event, then queue another one to do it.
	(store_finalised_finish): And handle it here, until we can, then
	free it.
	(mail_note_store): Queue an async event to get folderinfo, dont
	use mail_get_folderinfo.
	(update_folders_get): thread-async event to retrieve the
	folderinfo, and build it, then queues gui-async event to update
	the gui.
	(add_unmatched_info): Taken from mail-ops, adds unmatched if
	required.
	(add_vtrash_info): From mail-ops, add trash if required.
	(update_folders): Thread async event to update gui.
	(mail_note_store): Ref the store and storage when created.
	(update_1folder): Changed to assume we have info_lock, and store
	updates in an updates list.
	(setup_folder): Same.
	(folder_changed): Changed to call update_1folder directly.
	(real_folder_changed): Removed.
	(mail_note_folder): Changed to call update_1folder directly.
	(real_note_folder): Removed.
	(store_folder_subscribed): Call setup_folder directly.
	(real_folder_created): Removed.
	(real_flush_update): Function that actually does the updates in
	the gui thread.
	(mail_note_store): Go back to using mail_get_folderinfo.
	(update_folders): Fixed upf ro changed api's.
	(unset_folder_info): Changed to queue pending updates.
	(real_folder_deleted): Removed.
	(store_folder_unsubscribed): Do the removal work directly.
	(mail_note_store): Dont link to finalised event of store - we now
	ref it.
	(mail_note_store_remove): If we have any pending updates, clear
	them out.  Also cancel any pending folderinfo retrieve operations.
	(update_folders): Remove our update from the storeinfo list, if it
	still exists.
	(update_1folder): Make 'sent folder shows all counts' optional via
	an environmental variable EVOLUTION_COUNT_SENT for all those
	bloody whinging lusers out there.
	(mail_note_store_remove): Unref the storage when done.

	* mail-mt.c (mail_async_event_emit): If we're in main and have a
	gui task, set it to run via an idle function.
	(idle_async_event): Wrapper for calling do_async_event from idle
	function, and freeing the message when done.
	(idle_async_event): Call mail_msg_free not free on the finished
	message.

	* component-factory.c (mail_remove_storage): Destroy the storage
	async.
	(store_disconnect): This does the work.
	(free_storage): Un-note the store when we remove it, so the store
	noting code can unref things properly.
	(idle_quit): Return false when done, dont loop.

2001-10-24    <NotZed@Ximian.com>

	* component-factory.c (owner_set_cb): Setup an async_event
	handler.
	(idle_quit): Try to destroy the async_event, or keep dropping out
	if it can't (deadlock).

	* mail-mt.c (do_async_event): Set the threadid of the thread we're
	running in so we know its running/which thread its in.
	(mail_async_event_emit): Added new argument 'type' which is the
	type of thread to execute against, gui or another one.  Fixed all
	callers.
	(mail_async_event_destroy): Return -1 if this operation will fail
	(deadlock possibility).  If we're in the thread of the task
	we're going to wait for, then return a failure (since we will
	deadlock).
	(mail_async_event_emit): Chagned to use MailAsyncFunc type as the
	function type, which just takes 3 void args, change args to suit.

	* mail-folder-cache.c (mail_note_store): Record the pending update
	events in a pending list.  We should really be able to use an
	async event for this, but that doesn't return to the gui loop when
	done :-/
	(update_folders): Remove from pending update when done.

svn path=/trunk/; revision=14101
2001-10-25 21:21:33 +00:00
e58630b141 Unref the global search_context. (owner_set_cb): create the global
2001-10-23  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (owner_unset_cb): Unref the global
	search_context.
	(owner_set_cb): create the global search_context.

	* folder-browser.c (folder_browser_gui_init): Pass along the
	global search_context to the e_filter_bar_new call.

svn path=/trunk/; revision=13976
2001-10-24 04:09:30 +00:00
3
343f36cffe Completely re-done. We now hae a completely async dialogue when requested
2001-10-23    <NotZed@Ximian.com>

        * mail-session.c (get_password): Completely re-done.  We now hae a
        completely async dialogue when requested from antoehr thread, and
        dont use gtk_main() if we can avoid it (which is normally the
        case).  This stuff is only partially finished, and will mena the
        removal of the same from mail-mt.c, and the mail_user_message()
        code will be moved here and changed to work in a similar way.

        * mail-callbacks.c (empty_trash): Dont try and connect to remote
        stores just to get the trash.  Also, always run empty trash async,
        and make sure we unref the trash.
        (empty_trash): Hmm, dont unref the trash, causes a problem on
        exit, i suspect something else is doing funky unrefs on it.

        * mail-tools.c (mail_tool_get_trash): Pass a 'connect' arg, tell
        it whether it should tryand connect or not to the parent service,
        if it isn't already connected.

        * component-factory.c (owner_unset_cb): Dont try wait_all here,
        could potentially deadlock.
        (idle_quit): Keep returning TRUE if we have outstanding
        processing.  Note that this may busy-wait during exit processign
        with busy tasks :(
        (idle_quit): Keep calling ourselves till we no longer get called
        (i.e. gtk_main really quits).

        * mail-mt.c (mail_msg_active): New function, returns TRUE if
        events are still active/outstanding.
        (do_op_status): @$@$#@@!#@!!  didn't unlock the mail_msg_lock if
        data->activity was NULL and we had no global_shell_client anymore!
        Also shortcut processing if this is going to be the case.
        (mail_msg_init): Setup a temporary other gui_port for redoing with
        new semantics password, user message and progress reporting.
        (mail_get_password): #ifdef'd out all this code temporarily, till
        it gets fully moved to mail-session.c

2001-10-22    <NotZed@Ximian.com>

        * component-factory.c (owner_set_cb): Dont call enable_interaction
        here.
        (interactive_cb): But here instead, let the shell tell us when its
        ok to go interactive.

svn path=/trunk/; revision=13933
2001-10-23 06:28:27 +00:00
739e7cd1da #include "component-factory.h". (do_op_status): Pass the component ID
* mail-mt.c: #include "component-factory.h".
(do_op_status): Pass the component ID instead of the msg ID.

* component-factory.h (COMPONENT_ID): #define here instead of
`component-factory.c'.
(SUMMARY_FACTORY_ID): Likewise.

svn path=/trunk/; revision=13895
2001-10-22 21:16:10 +00:00
1
a02822a94e Clear variables once done, for debugging. (mail_vfolder_add_uri,
2001-10-21    <NotZed@Ximian.com>

        * mail-vfolder.c (mail_vfolder_shutdown): Clear variables once
        done, for debugging.
        (mail_vfolder_add_uri, mail_vfolder_delete_uri): Dont do anything
        if we're shutdown (context == NULL).

        * component-factory.c (idle_quit): Move mail_vfolder_shutdown
        here, it should be one of the last things shutdown.

        * mail-format.c (handle_text_plain): Dont use (if (!p++), and then
        check p!= later, since its now 1, oops.  Fixes #13106, thought it
        was a start of uuencoded stuff!

        * folder-browser.c (on_right_click): Escape _'s before adding them
        to menu from mailing list name, also remove some dead code that
        someone forgot to remove when refactoring.  #11307.
        (folder_browser_is_drafts): Use the store's uri_cmp function to
        compare to the drafts uri's.
        (folder_browser_is_sent): Same.  Slight cleanup for #11351.

svn path=/trunk/; revision=13856
2001-10-21 20:28:58 +00:00
a4c585d56c Properly handle local vTrash folders.
2001-10-19  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (destination_folder_handle_drop): Properly
	handle local vTrash folders.

svn path=/trunk/; revision=13813
2001-10-19 23:04:35 +00:00
a5efc9cddd Pass the @folder_type to ::handleDrop.
* e-storage-set-view.c (tree_drag_data_received): Pass the
@folder_type to ::handleDrop.

* evolution-shell-component-dnd.c
(impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleMotion):
New arg @folder_type.
(impl_GNOME_Evolution_ShellComponentDnd_DestinationFolder_handleDrop):
Likewise.

* evolution-shell-component-dnd.h: Add @folder_type to
`DndDestinationFolderHandleDropFn' and
`DndDestinationFolderHandleMotionFn'.

* e-storage-set-view.c (tree_drag_motion): Pass the folder type to
`::handleMotion'.

* Evolution-ShellComponentDnd.idl: Pass @folder_type in
::handleDrop and ::handleMotion.

* component-factory.c (destination_folder_handle_motion): Get
@folder_type here too [to match the changes in the
EvolutionShellComponentDnd interface].  Also, remove a debugging
message.
(destination_folder_handle_drop): Likewise.

* gui/component/addressbook-component.c
(destination_folder_handle_motion): Get @folder_type here too [to
match the changes in the EvolutionShellComponentDnd interface].
Also, remove a debugging message.
(destination_folder_handle_drop): Likewise.

svn path=/trunk/; revision=13807
2001-10-19 22:01:22 +00:00
8
ae5590f88d Added remove flag - its not adduri, its removeuri, its less typing than
2001-10-18    <NotZed@Ximian.com>

        * mail-vfolder.c (vfolder_adduri): Added remove flag - its not
        adduri, its removeuri, its less typing than creating a removeuri.
        (vfolder_adduri_do): Implement the remove flag.
        (mail_vfolder_remove_uri): Changed to mail_vfolder_delte_uri, to
        indicate its actually been deleted.
        (mail_vfolder_add_uri): Added remove flag.
        (rule_changed): When adding existing folders to a new rule, strdup
        the list data.

        * mail-folder-cache.c (store_finalised): Unhook from all events
        when done.
        (mail_note_store_remove): Remove a store from being noted.
        (free_folder_info): Also if we have a folder, unhook all events.
        Also remove the uri from vfolders.
        (mail_note_folder): Remove warning about adding folders to stores
        that aren't added yet - we might actually be removing the store.

        * component-factory.c (mail_remove_storage): Call
        mail_note_store_remove when we remove the storage.

svn path=/trunk/; revision=13782
2001-10-19 00:45:02 +00:00