Commit Graph

324 Commits

Author SHA1 Message Date
cbdf3bccf6 Duh idiot, "un-fixed" the memleak i added.
2002-11-26  Not Zed  <NotZed@Ximian.com>

        * message-list.c (get_normalised_string): Duh idiot, "un-fixed"
        the memleak i added.

        * mail-callbacks.c (composer_get_message): Set parent window in
        message dialogue & DESTROY_WITH_PARENT flag.
        (composer_save_draft_cb):
        (configure_mail):
        (check_send_configuration): Add DESTROY_WITH_PARENT flag to
        gtk_message_dialog's
        (local_configure_done): remove some unecessary/wrong casts.
        (empty_trash_expunged_cb): "
        (do_mail_print): use gtk_window_set_transient_for instead of
        e_dialog_set_parent.

svn path=/trunk/; revision=18923
2002-11-26 11:28:29 +00:00
989e199638 gtk_widget_set_parent_window -> gtk_window_set_transient_for.
2002-11-26  Not Zed  <NotZed@Ximian.com>

        * mail-account-editor.c (mail_account_editor_new):
        gtk_widget_set_parent_window -> gtk_window_set_transient_for.

        * mail-callbacks.c (composer_send_queued_cb): dont unref composer.

        * message-browser.c (message_browser_destroy): moved back from
        finalise.

2002-11-25  Not Zed  <NotZed@Ximian.com>

        * message-list.c (message_list_dispose): move saving tree state
        here.
        (message_list_finalise): And take it from here.

        * mail-display.c (mail_display_destroy): @#$@# gtk.  changed this
        around a bit.
        (mail_display_init): Fix prototype, its a gobject.
        (mail_display_init): ref/sink the invisible gtkobject.

svn path=/trunk/; revision=18919
2002-11-26 06:43:31 +00:00
1669f16747 Want a (GWeakNotify) cast here, not (GWeakNotify *).
* component-factory.c (owner_set_cb): Want a (GWeakNotify) cast
here, not (GWeakNotify *).

* subscribe-dialog.c (fete_init): g_object_set() instead of
gtk_object_set().
(populate_store_list): Likewise.
(menu_item_selected): g_object_get_data() instead of
gtk_object_get_data().

* message-list.c (message_list_create_extras): g_object_set()
instead of gtk_object_set().

* message-browser.c (message_browser_message_list_built):
g_object_get_data() instead of gtk_object_get_data().

* mail-vfolder.c (edit_rule_response): g_object_get_data() instead
of gtk_object_get_data().

* mail-summary.c (generate_folder_summaries): g_object_unref() the
context instead of gtk_object_destroy().

* mail-local.c (reconfigure_response): g_object_get_data() instead
of gtk_object_get_data().

* mail-display.c (pixbuf_gen_idle): g_object_unref() the GdkPixbuf
loader instead of gtk_object_destroy().
(pixbuf_gen_idle): Likewise.
(embeddable_destroy_cb): Likewise.

* mail-config-druid.c (mail_config_druid_destroy): No need to
gtk_object_destroy() the GladeXML object.
(construct): g_object_set() instead of gtk_object_set().

* folder-browser.c (folder_browser_gui_init): g_object_get_data()
instead of gtk_object_get_data().

svn path=/trunk/; revision=18752
2002-11-14 17:20:52 +00:00
f9804e1193 Commented out stuff that doesn't build yet. Also fixed idl build rule.
2002-11-13  Not Zed  <NotZed@Ximian.com>

	* Makefile.am: Commented out stuff that doesn't build yet.  Also
	fixed idl build rule.  importers still not built.

	* main.c (main): bonobactivationise.  remove push visual/colormap.
	(main): no longer activate activation, let bonobo_init do it.

	* mail-signature-editor.c (menu_help): Change help api.

	* mail-session.c (user_message_destroy_noreply): removed.  Not
	used?

	* mail-local.c (load_metainfo): xml root->children.

	* mail-format.c (g_string_append_len): Removed, it exists now.

2002-11-12  Not Zed  <NotZed@Ximian.com>

	* subscribe-dialog.c: gnome2ised, use gtkdialog.
	(subscribe_get_global_extras): use a weak ref rather than destroy signal.

	* message-tag-followup.c: gnome2ised.

	* message-tag-editor.c: gnome2ised & converted to gtkdialog.

	* message-list.c: gnome2ised.
	(message_list_finalise): From destroy method.  maybe should be
	destroy still.

	* message-browser.c: port to gnome2
	(message_browser_finalise): renamed from destroy method.

	* mail-stream-gtkhtml.c: removed redundant
	camel_class_get_global_classfuncs() call.

	* mail-signature-editor.c: gtkdialogised, & bonobo api changes.


	* mail-search-dialogue.c: gtkdialogised.

	* mail-folder-cache.c: cleaned up camel ref/hook casts.

	* mail-composer-prefs.c (mail_composer_prefs_get_type): convert to
	gtype.

	* mail-font-prefs.c (mail_font_prefs_destroy): from finalise.

	* mail-config.c: s/bonobo_config/e_config_listener/
	Added /apps/Evolution prefix to the evolution keys.
	Changed to use e_config_listener, etc.
	(mail_config_init): remove bonobo_config stuff.
	(mail_config_check_service): gtk dialogise.
	(check_response): from check_cancelled.

	* mail-config-druid.c (mail_config_druid_destroy): renamed from
	_finalize, turned into destroy handler.
	(construct): set type to toplevel, GTK_WINDOW_DIALOG no longer exists.

	* mail-config-factory.c (mail_config_register_factory): bonobo api
	changes.

	* mail-crypto.c (mail_crypto_get_pgp_cipher_context): cleaned up
	unref casts.

	* mail-display.c (write_data_to_file): gnome->gtkdialog.
	(on_link_clicked): use ascii_str*cmp on url.
	(save_part): g_path stuff.
	(launch_cb): gtk dialog.
	(pixmap_press): de-oafify.
	(pixbuf_for_mime_type): gnome-vfs api changes.
	(do_attachment_header): Change the pixmap to a gtkimage.
	(do_signature): "
	(pixbuf_gen_idle): "
	(do_attachment_header): ascii_str*cmp
	(do_attachment_header): gnome pixmap->gtkimage.
	(mail_display_destroy): protect against gtk mentalness.
	(html_button_press_event): ascii_str*cmp
	(drag_data_get_cb): added comment for translators of filename.

	* mail-format.c (component_supports): de-oafise.
	(is_anonymous): ascii_strncmp
	(attachment_header): remove utf8<>locale stuff, and gnomevfs api
	changes.
	(format_mime_part): fix g_strdown call.
	(write_field_row_begin): kill utf8->gtk stuff.
	(write_address): "
	(default_header_index): ascii_strcasecmp
	(handle_text_plain): "
	(handle_text_enriched): "
	(handle_multipart_encrypted): remove utf/gtk stuff.
	(handle_message_external_body): ascii_str*cmp

	* mail-identify.c (mail_identify_mime_part):
	(identify_by_magic): gnome vfs api changes.

	* mail-importer.c: Converted.

	* mail-local.c (load_metainfo): xml childs -> children.
	(mls_get_folder): g_strerror.
	(mls_delete_folder): g_strerror.
	(reconfigure_got_folder): Gnome->GtkDialog
	(reconfigure_response): from reconfigure_clicked.

	* mail-mt.c (mail_msg_check_error): gnome -> gtk dialog
	(error_response): renmae from error_gone.  destroy widget on any
	response.

	* mail-offline-handler.c (impl_finalise): renamed from
	impl_destroy since thats what it should be anyway.

	* mail-ops.c: removed utf8 widget conversion & camel_object_un/ref
	casts.

	* mail-preferences.c (mail_preferences_get_type): glib2'ised.

	* mail-search.c (mail_search_finalise): renmaed from destroy &
	properly chain.
	(mail_search_get_type): glib2 & make gtkdialog parent.
	(entry_run_search): run search when entry activated.  not sure if
	gtkdialog has anohter way to do this on an arbitrary widget.

	* mail-send-recv.c (dialogue_response): renamed from clicked.  Use
	gtkdialog.

	* mail-session.c (request_password_deleted): removed, redundant.
	(pass_response): rename from pass_got, changed for gtkdialog.
	(user_message_destroy): Removed, redundant.
	(user_message_response): Renamed from user_message_clicked.

2002-11-11  Not Zed  <NotZed@Ximian.com>

	* mail-stream-gtkhtml.c (mail_stream_gtkhtml_class_init): dont use
	get_global_classfuncs, just get the type

	* mail-tools.c: converted gnome2 api's.

	* mail-vfolder.c (vfolder_editor_response): clicked->response.
	(vfolder_editor_destroy): Removed.
	(vfolder_edit): gtk dialog api
	(edit_rule_response): clicked->response.
	(vfolder_edit_rule): gnomedialog->gtkdialog.
	(vfolder_gui_add_rule): "
	(new_rule_clicked): clicked->response

svn path=/trunk/; revision=18723
2002-11-12 14:59:35 +00:00
e2e4b1120c rename this from "Mail.idl" so that the generated .h file won't overwrite
* Mailer.idl: rename this from "Mail.idl" so that the generated .h
	file won't overwrite "mail.h" on Mac OS X. Remove some
	never-implemented IDL and add MailConfig_removeAccount.

	* Makefile.am: Update for IDL rename

	* mail-config.c: #include Mailer.h, not Mail.h
	(impl_GNOME_Evolution_MailConfig_removeAccount): Implement.

	* folder-info.c: #include Mailer.h, not Mail.h

	* message-list.c: Remove Mail.h include.

svn path=/trunk/; revision=18060
2002-09-13 15:05:44 +00:00
26136b35b7 If we already have a folder, make sure we unref/unhook from it. Fixes a
2002-09-10  Not Zed  <NotZed@Ximian.com>

	* folder-browser.c (got_folder): If we already have a folder, make
	sure we unref/unhook from it.  Fixes a crash on exit.

	* message-list.c (message_list_hide_clear): clear thread tree
	cache if set.
	(message_list_set_search): Same.  For bug #28834.

svn path=/trunk/; revision=18029
2002-09-10 06:52:21 +00:00
3814bb179f Pass mail_config_get_thread_subject() as the third argument to
2002-08-27  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (regen_list_regen): Pass
	mail_config_get_thread_subject() as the third argument to
	camel_folder_thread_messages_new().

	* mail-config.c (config_read): Read in the thread_by_subject
	config option.
	(mail_config_write_on_exit): Save the thread_by_subject config
	option.
	(mail_config_get_thread_subject): New function to get the
	thread_subject value.
	(mail_config_set_thread_subject): New function to set the
	thread_subject value.

svn path=/trunk/; revision=17881
2002-08-27 22:09:41 +00:00
828a107720 Don't bother overloading the timeout virtual methods since they don't
2002-08-21  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-session.c (class_init): Don't bother overloading the
	timeout virtual methods since they don't exist anymore.

	* mail-folder-cache.c (mail_note_store): Register a ping timeout
	callback to ping each store to keep the connections alive.

svn path=/trunk/; revision=17831
2002-08-21 19:23:44 +00:00
07c805c9f5 Once we hit the target node, update the cursor_uid if it's set. Fixes
2002-08-20  Peter Williams  <peterw@ximian.com>

	* message-list.c (search_func): Once we hit the target node,
	update the cursor_uid if it's set. Fixes #29085.

svn path=/trunk/; revision=17821
2002-08-20 20:53:04 +00:00
a75f6e461d Only count hidden messages which are in the folder. Should probably
2002-08-06  Not Zed  <NotZed@Ximian.com>

        * message-list.c (message_list_hidden): Only count hidden messages
        which are in the folder.  Should probably maintain hidden table
        better.  For #4334.

svn path=/trunk/; revision=17707
2002-08-06 04:32:24 +00:00
ce3ae88564 If we are not in interactive mode, don't display error dialogs.
2002-08-05  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-mt.c (mail_msg_check_error): If we are not in interactive
	mode, don't display error dialogs.

	* component-factory.c (interactive_cb): Updated to use the new
	function mail_session_set_interactive().
	(owner_unset_cb): Same here.

	* mail-session.c (mail_session_set_interactive): Renamed from
	mail_session_enable_interaction().
	(mail_session_get_interactive): New function to get the
	interactive state.

svn path=/trunk/; revision=17702
2002-08-05 21:20:59 +00:00
405ef3bcf3 Updated to use the new Follow-Up tags. Instead of storing a string
2002-08-02  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-display.c (mail_display_render): Updated to use the new
	Follow-Up tags. Instead of storing a string containing the
	follow-up tag value, we now have to store the CamelMessageInfo.
	(mail_display_destroy): Unref the folder and the message-info.

	* folder-browser.c (followup_tag_complete): No longer needed.
	(on_right_clicked): Use the individual follow-up tags to decide
	whether or not to enable something.

	* message-list.c (ml_tree_value_at): Update to use the new
	Follow-Up tags.

	* mail-callbacks.c (flag_for_followup): Update to use the new
	MessageTagEditor API.
	(tag_editor_ok): Update this too.
	(flag_followup_completed): Updated this too.
	(flag_followup_clear): Set all the follow-up tag values to "".

svn path=/trunk/; revision=17691
2002-08-02 22:36:11 +00:00
ed7236d351 Remove the assert, and always copy over the threadtree which represents
2002-07-22  Not Zed  <NotZed@Ximian.com>

	* message-list.c (regen_list_regened): Remove the assert, and
	always copy over the threadtree which represents the current view,
	unreffing the old one if set.  For #28021.  Haven't tested this a
	lot, but i guess it cant be worse than what is there.

svn path=/trunk/; revision=17524
2002-07-22 09:22:17 +00:00
7f0ab8334b Lookup the label colour based on the label token, not an integer.
2002-07-15  Not Zed  <NotZed@Ximian.com>

        * message-list.c (ml_tree_value_at): Lookup the label colour based
        on the label token, not an integer.

        * folder-browser.c (on_right_click): Lookup the label name from
        the filter type.  Sigh, a bunch of other code should do similar
        but i'm going to leave it as integers.
        (set_msg_label): Set the label directly.

svn path=/trunk/; revision=17473
2002-07-16 02:38:41 +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
6bd5d23da7 New convenience function to get a cached normalised string.
2002-06-17  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (get_normalised_string): New convenience function
	to get a cached normalised string.
	(subject_compare): Removed, as we strip Re:'s when normalising the
	subject strings now.
	(ml_tree_value_at): Added support for the normalised columns (used
	for a sorting optimisation).
	(message_list_init): Initialise normalised_hash.
	(message_list_destroy): Destroy normalised_hash.
	(message_list_create_extras): Removed subject_compare.
	(main_folder_changed): De-cache normalised strings for any removed
	uids.

svn path=/trunk/; revision=17213
2002-06-17 19:58:22 +00:00
e8a1d5b72d If we dont support searching, dont try to.
2002-06-17  Not Zed  <NotZed@Ximian.com>

        * message-list.c (regen_list_regen): If we dont support searching,
        dont try to.

svn path=/trunk/; revision=17208
2002-06-17 11:29:10 +00:00
0469ab8eff Move m->complete = TRUE; to within the cancel-check block, this way
2002-06-11  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (regen_list_regen): Move m->complete = TRUE; to
	within the cancel-check block, this way complete only ever gets
	set to TRUE if we weren't cancelled. I assume this is how it was
	supposed to work.

svn path=/trunk/; revision=17169
2002-06-11 20:54:12 +00:00
ce2082b3ee If we dont get a folder, dont try and get details off it. Should get rid
2002-06-11  Not Zed  <NotZed@Ximian.com>

        * folder-info.c (do_get_info): If we dont get a folder, dont try
        and get details off it.  Should get rid of most of those annoying
        summary warnings, but not the cause of them.

2002-06-06  Not Zed  <NotZed@Ximian.com>

        * message-list.c (mail_regen_list): Keep track of the regeneration
        request in a list.
        (regen_list_free): Remove the request from the regenreation list.
        (message_list_set_folder): If there are any outstanding
        regneration requests, cancel them.
        (regen_list_regened): If we were cancelled, do nothing.
        (regen_list_regen): If we were cancelled, shortcut processing.
        This is all for #23571.

        * message-list.c (regen_list_regen): Change the way we calculate
        the hide deleted messages and tree view options.  Do it based on a
        search and uid's rather than a summary.
        (regen_list_regened): Handle changes to tree storage.
        (mail_regen_list): The tree is now stored between updates, so we
        can update the tree structure incrementally.  This blows out
        memory use some however.  We need an etree that uses this as its
        model directly?
        (message_list_destroy): Free the thread tree.
        (message_list_set_folder): Clear the thread tree when changing
        folder.

svn path=/trunk/; revision=17165
2002-06-11 04:54:17 +00:00
a58c048d65 Keep track of the regeneration request in a list. (regen_list_free):
2002-06-06  Not Zed  <NotZed@Ximian.com>

        * message-list.c (mail_regen_list): Keep track of the regeneration
        request in a list.
        (regen_list_free): Remove the request from the regenreation list.
        (message_list_set_folder): If there are any outstanding
        regneration requests, cancel them.
        (regen_list_regened): If we were cancelled, do nothing.
        (regen_list_regen): If we were cancelled, shortcut processing.
        This is all for #23571.

svn path=/trunk/; revision=17129
2002-06-06 09:49:14 +00:00
aa3bfbe422 Implement, return a text description of the localfolder.
2002-06-01  Not Zed  <NotZed@Ximian.com>

        * mail-local.c (mlf_getv): Implement, return a text description of
        the localfolder.

        * message-list.c (ml_duplicate_value):
        (ml_free_value):
        (ml_initialize_value):
        (ml_value_is_empty):
        (ml_value_to_string):
        (ml_tree_value_at): Implement COL_LOCATION, original location of
        message (useful for vfolder).

svn path=/trunk/; revision=17072
2002-06-03 02:52:32 +00:00
3cedfae4c2 Check for a label tag when doing a lookup on the COLOR column.
2002-05-16  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (ml_tree_value_at): Check for a label tag when
	doing a lookup on the COLOR column.

	* mail-config.c (mail_config_get_label_color_string): Return the
	colour in string format.

	* folder-browser.c (set_msg_label): Replaces colourise_msg and
	sets the "label" tag rather than the "colour" tag.

	* mail-preferences.c (mail_preferences_apply): Call
	mail_config_write() so that the settings get synced to disk.

svn path=/trunk/; revision=16938
2002-05-16 20:56:36 +00:00
d92240a741 Instead of g_assert()ing that the msg_info is not NULL, if it is NULL just
2002-05-15  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (ml_tree_value_at): Instead of g_assert()ing that
	the msg_info is not NULL, if it is NULL just return NULL. This
	fixes a crash when ETree requests the value at a root node (I
	don't understand why it needs to do that??).

svn path=/trunk/; revision=16796
2002-05-15 05:24:15 +00:00
1911f19678 Implemented.
2002-03-14  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (next_thread): Implemented.

	* message-list.c (message_list_select_next_thread): New function
	to select the next thread.

svn path=/trunk/; revision=16165
2002-03-14 20:14:08 +00:00
c5f85f4f33 Connect to the focus-in/out events on the message-list so that we can
2002-03-04  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (my_folder_browser_init): Connect to the
	focus-in/out events on the message-list so that we can disable the
	EditInvertSelection and EditSelectThread menu items when the
	message-list is not in focus.

	* folder-browser-ui.c (folder_browser_ui_message_list_unfocus):
	New function to de-sensitize some items if the message-list is not
	in focus.
	(folder_browser_ui_message_list_focus): New function to sensitize
	some items if the message-list is not in focus.

	* mail-callbacks.c (invert_selection): Only invert the selection
	of the message-list if it is the widget in focus.

	* message-list.c (message_list_select): Do not explicitly grab the
	focus here.

svn path=/trunk/; revision=15909
2002-03-04 22:01:12 +00:00
843b7d2c82 Removed, this wasn't working as intended and seemed to break other
2002-02-22  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (on_message_list_built): Removed, this wasn't
	working as intended and seemed to break other features.

svn path=/trunk/; revision=15801
2002-02-22 19:48:43 +00:00
17815d8669 Connect to our own message_list_built signal. Focus the list and select
2002-02-21  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (on_message_list_built): Connect to our own
	message_list_built signal. Focus the list and select the first
	unread message (or frst message depending). Fixes bug #3900.

svn path=/trunk/; revision=15784
2002-02-22 00:13:56 +00:00
cf945fcde2 Prompt the user to find out if he/she wants to go to the next folder with
2002-02-19  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (confirm_goto_next_folder): Prompt the user to
	find out if he/she wants to go to the next folder with unread mail
	in it.
	(find_current_folder): Find a given CamelFolderInfo node based on
	a given uri.
	(find_next_folder_r): Recursively look for a CamelFOlderInfo node
	which has unread messages.
	(find_next_folder): Given a currently selected CamelFolderInfo
	node, look for the next node containing unread messages.
	(do_evil_kludgy_goto_next_folder_hack): Find the currently
	selected folder and then find the very next folder after it that
	contains unread messages and then select it via a CORBA call to
	the shell.
	(next_unread_msg): If we fail to find an unread message in the
	message-list, prompt the user to find out if we should jump to the
	next fodler containing unread messages. If so, call
	do_evil_kludgy_goto_next_folder_hack().

	* message-list.c (message_list_select): Return a boolean value
	based on whether the call was successfull or not.

	* mail-config.c (mail_config_get_confirm_goto_next_folder):
	(mail_config_set_confirm_goto_next_folder):
	(mail_config_get_goto_next_folder):
	(mail_config_set_goto_next_folder): All new functions, yay.
	(config_read): Read in the confirm_goto_next_folder and
	goto_next_folder config options.
	(mail_config_write_on_exit): Same the options here.

svn path=/trunk/; revision=15770
2002-02-20 03:51:20 +00:00
7751734b69 Set the followup icon to use the new flag icon rather than the exclamation
2002-02-13  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser-ui.c: Set the followup icon to use the new flag
	icon rather than the exclamation mark icon.

	* mail-callbacks.c (flag_for_followup): Append the selected
	messages to the clist in the followp editor.

	* message-list.c: Include the new flag-for-followup icon.

	* message-tag-followup.c (message_tag_followup_append_message):
	New method to add a message to the message-list.
	(construct): Get the message_list widget and load the flag icon
	pixmap.

svn path=/trunk/; revision=15720
2002-02-13 22:28:39 +00:00
2d4d49a088 Get followup-up message-list values. Also highlight the message in red if
2002-02-11  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (ml_tree_value_at): Get followup-up message-list
	values. Also highlight the message in red if the due-by date is
	past due (this is what Outlook does).
	(ml_duplicate_value): Handle follow-up columns.
	(ml_free_value): Same.
	(ml_initialize_value): Here too.
	(ml_value_is_empty): And here.
	(ml_value_to_string): And finally here.

	* message-tag-followup.c (message_tag_followup_i18n_name): New
	convenience function.

svn path=/trunk/; revision=15680
2002-02-11 23:00:13 +00:00
e02a62282c removed more needs-reply cruft
svn path=/trunk/; revision=15604
2002-02-08 00:48:26 +00:00
b7ac37f6b1 Bumped the required version of gal.
2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* configure.in: Bumped the required version of gal.

From addressbook/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_setup_menus): Changed this function to use the
	new GalViewMenus which takes a GalViewInstance, instead of a
	GalViewCollection.

From calendar/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* gui/e-tasks.c (e_tasks_setup_view_menus), gui/gnome-cal.c
	(gnome_calendar_setup_view_menus): Made these use the new
	GalViewMenus stuff.

From mail/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* folder-browser.c, folder-browser.h, folder-browser-ui.c,
	folder-browser-ui.h
	(folder_browser_ui_setup_view_menus,
	folder_browser_ui_discard_view_menus): Changed this to use the new
	GalViewMenus stuff.  Made these exported functions.

	* mail-callbacks.c, message-browser.c: Changed these to not pass
	the now removed row parameter to message_list_select.

	* mail-config.c, mail-config.h (mail_config_folder_to_safe_url):
	Refactored this out of mail_config_folder_to_cachename.

	* message-list.c, message-list.h (message_list_select): Removed
	the row argument.  Changed this to use the new function in ETree
	for finding the next cursor row that matches a test.
	(message_list_construct): Handle a failed construction of the
	ETree here.
	(message_list_setup_etree, save_tree_state): Don't load or save
	the header state.  folder-browser-ui.c deals with this now.

From views/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* addressbook/galview.xml, calendar/galview.xml, mail/galview.xml,
	tasks/galview.xml: Added default-view parameters.

	* mail/As_Sent_Folder.galview: New galview.

	* mail/Makefile.am, mail/galview.xml: Added As_Sent_Folder
	galview.

From widgets/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* menus/gal-view-menus.c, menus/gal-view-menus.h
	(gal_view_menus_new): Made this take a GalViewInstance instead of
	a GalViewCollection.  Reworked most of this to utilize the
	interfaces provided by GalViewInstance.

svn path=/trunk/; revision=15592
2002-02-07 11:24:08 +00:00
a184d302d5 Removed references to NEEDS_REPLY.
2002-02-06  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c: Removed references to NEEDS_REPLY.

	* mail-callbacks.c (mark_as_needing_reply): Removed.
	(mark_as_not_needing_reply): Removed.
	(toggle_need_reply): Removed.

	* folder-browser.c (on_right_click): Remove CAN_MARK_NEEDS_REPLY
	stuff, this is going to be implemented in an entirely different
	way.

svn path=/trunk/; revision=15585
2002-02-07 00:27:24 +00:00
956b6f95d0 When performing a wraparound, check to see if the first (or last depending
2002-01-08  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_select): When performing a
	wraparound, check to see if the first (or last depending on
	direction) message fits the selection criteria before telling
	etable to find the next/previous matching node.

	* mail-account-gui.c (mail_account_gui_new): When connecting to
	the transport username changed event, pass the gui->transport not
	the gui->source.

svn path=/trunk/; revision=15267
2002-01-08 22:47:21 +00:00
fb540f5bfb Makes the auto-undelete behavior when changing message flags a bit more
2001-12-20  Jon Trowbridge  <trow@ximian.com>

        * message-list.c (on_click): Makes the auto-undelete behavior when
        changing message flags a bit more sane. (Fixes #17634)

svn path=/trunk/; revision=15200
2001-12-21 03:39:10 +00:00
6642d01f14 Add ETable magic for our new "Needs Reply" column. (The next few entries
2001-12-11  Jon Trowbridge  <trow@ximian.com>

	* message-list.etspec: Add ETable magic for our new "Needs Reply"
	column.  (The next few entries are for bug #90)

	* message-list.h: Add COL_NEED_REPLY.

	* message-list.c: Move mail_need_reply_xpm to the end of
	states_pixmaps.
	(ml_duplicate_value): Handle COL_NEED_REPLY.
	(ml_free_value): Handle COL_NEED_REPLY.
	(ml_initialize_value): Handle COL_NEED_REPLY.
	(ml_value_is_empty): Handle COL_NEED_REPLY.  Added
	needs_reply_map[] array.
	(ml_value_to_string): Handle COL_NEED_REPLY.
	(ml_tree_value_at): Fix magic numbers, undoing my changes from the
	otehr day.  Add handler for COL_NEED_REPLY.
	(message_list_create_extras): Attach icons for COL_NEED_REPLY.
	(on_click): Undo my previous changes to display need-reply status
	in COL_MESSAGE_STATUS.  Add handing for COL_NEED_REPLY.

	* mail.h: Change mail_format_mime_message, mail_format_raw_message
	and the MailMimeHandlerFn typedef to take GtkHTML and
	GtkHTMLStream args, as per our changes in mail-format.c.

	* mail-format.c: Giant refactoring.  Remove the assumption
	throughout that we will always want to render into the GtkHTML
	object contained in the MailDisplay.  Instead, always pass in the
	GtkHTML and GtkHTMLStream that we want to write to.  Also, ignore
	theme work-arounds if the printing flag is set.  (This and what
	follows fixes bug #82)

	* mail-display.h: Remove GtkHTMLStream *stream from MailDisplay.
	We don't need it anymore.

	* mail-display.c (mail_display_render): Added.  Breaks the code
	that renders the message into the GtkHTML object out of
	mail_display_redisplay.
	(mail_display_redisplay): Call mail_display_render.
	(mail_display_init): Remove reference to ->stream.
	(mail_display_new): Remove reference to ->stream.

	* mail-callbacks.c (do_mail_print): Create a new GtkHTML to render
	our printed version into (via the new function
	mail_display_render.  Set the MailDisplay's printing flag to TRUE
	before we render, and set it back to FALSE afterwards.
	(do_mail_fetch_and_print): If the preview pane isn't open when we
	try to print, fetch the message before printing.
	(print_msg): Call do_mail_fetch_and_print.
	(print_preview_msg): Call do_mail_fetch_and_print.

	* folder-browser-ui.c: Remove "PrintMessage" and
	"PrintPreviewMessage" from message_pane_enables... these now work
	when the preview pane is closed.  Disable printing if multiple
	messages are selected.

svn path=/trunk/; revision=14981
2001-12-11 18:03:44 +00:00
b5e7713c8e Implements marking messages as "Need Reply".
Implements marking messages as "Need Reply".

2001-12-09  Jon Trowbridge  <trow@ximian.com>

	* mail-need-reply.xpm: Added a really, really ugly and
	awful icon to symbolize "message needs a reply".

	* Makefile.am (EXTRA_DIST): Added mail-need-reply.xpm.

2001-12-09  Jon Trowbridge  <trow@ximian.com>

	* camel-folder-summary.c: Add "NeedsReply" to the flag_names array
	for CAMEL_MESSAGE_NEEDS_REPLY.

	* camel-folder-summary.h: Added CAMEL_MESSAGE_NEEDS_REPLY flag.

2001-12-09  Jon Trowbridge  <trow@ximian.com>

	* vfoldertypes.xml: Add "Needs Reply" option to different status
	types.

	* filtertypes.xml: Add "Needs Reply" option to different status
	types.

2001-12-09  Jon Trowbridge  <trow@ximian.com>

	* message-list.c: #include "art/mail-need-reply.xpm".
	(ml_tree_value_at): Adjust magic numbers, show "Need Reply" icon
	if the message needs reply.
	(message_list_create_extras): Adjust magic numbers to add new
	icon.
	(on_click): Changed to toggle between unread, read, and need reply
	when the status icon is clicked.

	* mail-callbacks.c (mark_as_needing_reply): Added.
	(mark_as_not_needing_reply): Added.  Add "set" value to struct
	post_send_data.
	(composer_sent_cb): Use both "flags" and "set" elements of
	post_send_data when setting message flags.
	(mail_reply): Clear "Needs Reply" flag when we actually reply to a
	message.

	* folder-browser.c: Changed flag values to be given by
	bit-shifting (1<<5) vs. base-ten (32).  Added
	CAN_MARK_DOESNT_NEED_REPLY flag.  Added "Mark as Needing Reply"
	and "Mark as Not Needing Reply" elements to context menu.
	(on_right_click): Hide "Mark as (Not) Needing Reply" context menu
	elements as appropriate.

svn path=/trunk/; revision=14946
2001-12-10 03:50:36 +00:00
289a09f501 If the path exists, make sure it's a regular file (or we can't possibly
2001-11-28  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (save_msg_ok): If the path exists, make sure
	it's a regular file (or we can't possibly save to it). Fix for
	#14127.

2001-11-28  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_select): Cleaned up the code.

	* mail-callbacks.c (previous_unread_msg): Pass wraparound as TRUE.

svn path=/trunk/; revision=14850
2001-12-03 19:57:19 +00:00
c07ade51d5 Reverted my hide_save_state patch.
2001-11-21  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c: Reverted my hide_save_state patch.

svn path=/trunk/; revision=14775
2001-11-21 20:44:26 +00:00
9ce31bbfa8 'n' shouldn't wrap if 'p' doesn't.
2001-11-20  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_select): 'n' shouldn't wrap if 'p'
	doesn't.

svn path=/trunk/; revision=14766
2001-11-20 21:33:15 +00:00
e0103cdf6e Save hide state. (message_list_hide_uids): Save hide state.
2001-11-16  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_hide_clear): Save hide state.
	(message_list_hide_uids): Save hide state.
	(message_list_hide_add): Save hide state.

	* mail-format.c (format_mime_part): Make sure the mime-type is
	non-NULL before passing it off to mail_lookup_handler().

svn path=/trunk/; revision=14734
2001-11-16 22:54:19 +00:00
404df6b3a1 Use GINT_TO_POINTER here for platforms where simply casting an int to void
2001-11-02  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (ml_tree_value_at): Use GINT_TO_POINTER here for
	platforms where simply casting an int to void * won't work.
	(build_flat_diff, main_folder_changed): Call
	e_tree_model_pre_change here.

svn path=/trunk/; revision=14581
2001-11-03 13:28:23 +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
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
3
36894c7adc Dont do anything if we're destroyed #13021.
2001-10-23    <NotZed@Ximian.com>

        * message-list.c (regen_list_regened): Dont do anything if we're
        destroyed #13021.

svn path=/trunk/; revision=13963
2001-10-23 22:10:14 +00:00
700863d703 Check that the cursor_uid is non-NULL before emitting a "message_selected"
2001-10-16  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (on_cursor_activated_idle): Check that the
	cursor_uid is non-NULL before emitting a "message_selected"
	signal. Fixes bug #6015.

svn path=/trunk/; revision=13706
2001-10-16 21:35:13 +00:00
8c85ed61ba Added an async_event handler to store_info. (mail_note_store): Setup async
* mail-folder-cache.c: Added an async_event handler to store_info.
	(mail_note_store): Setup async event handler here.
	(store_finalised): Flush out async events here.
	(folder_changed): Use async event handler to emit event.
	(mail_note_folder): Chagned, do most of the work in the calling
	context, only do the corba stuff in main.
	(store_folder_subscribed): Use async event, and do more work locally.
	(store_folder_unsubscribed): Same.
	(store_folder_deleted): Call store_folder_unsubscribed if we have
	to do any work.
	(store_folder_created): Call store_folder_subscribed if we have to
	do any work.
	(store_folder_unsubscribed): Ref store while busy.
	(real_folder_deleted): And unref here.
	(store_folder_subscribed): Reg store while busy.
	(real_folder_created): Unref here.
	(mail_note_folder): Ref folder while busy.
	(real_note_folder): And unref here.
	(mail_note_folder): Hook onto folder_deleted event.
	(folder_deleted): Just mark this folder as no longer available.

	* mail-session.c (register_timeout): Use mail_call_main instead of
	proxy_event.
	(remove_timeout): Same here.

	* folder-browser.c (folder_changed): use the new mail_async_event
	stuff.
	(folder_changed_main): Remove old async event handling stuff.
	(FOLDER_BROWSER_LOCK/UNLOCK): Removed.
	(FolderBrowserPrivate): Removed too, sigh.

	* mail-mt.c (mail_async_event_new, mail_async_event_emit,
	mail_async_event_destroy): New functions to handle async events.
	(mail_proxy_event, mail_proxy_event_id): Removed old functions for
	async events.
	(do_call): Add suport for MAIL_CALL_p_pp.
	(mail_msg_free): Use mail_async_event instead of proxy_event.

	* message-list.c (message_changed): Promote the message_changed to
	a folder_changed and use main_folder_changed to process it.
	(main_message_changed): Remove.d
	(message_list_init): Setup async event handler.
	(message_list_destroy): Remove async handler.
	(folder_changed): Use async hanler to emit event in main loop.
	(message_changed): Same.

svn path=/trunk/; revision=13698
2001-10-16 19:13:31 +00:00
29175904b0 Revert the change to remove the Score column until Chris can fix ETable so
* message-list.c, message-list.h, message-list.etspec: Revert the
	change to remove the Score column until Chris can fix ETable so
	it's possible to remove a column without breaking everyone's
	exisiting settings.

svn path=/trunk/; revision=13646
2001-10-13 01:29:14 +00:00
fdd4274ddf removed Score stuff from the message-list
svn path=/trunk/; revision=13626
2001-10-12 20:40:48 +00:00
eb6606cf3f Update for folder_flags.
* mail-local.c (mlf_set_folder, mlf_unset_folder): Update for
	folder_flags.

	* folder-browser-ui.c (folder_browser_ui_add_list): Check
	CAMEL_FOLDER_IS_TRASH flag rather than checking
	CAMEL_IS_VTRASH_FOLDER.

	* folder-browser.c (folder_browser_toggle_hide_deleted): Likewise

	* message-list.c (message_list_set_folder): Likewise.
	(message_list_set_hidedeleted): Remove redundant trash check.

svn path=/trunk/; revision=13510
2001-10-09 03:08:29 +00:00