2004-06-23 Jeffrey Stedfast <fejj@novell.com>
* em-folder-selector.c (em_folder_selector_get_selected_path):
Don't prepend the path string with a '/'.
* em-folder-tree.c (em_folder_tree_create_folder): This takes a
full_name so update the argument to make that clear.
(emft_create_folder): Same and also don't strip a leading '/'
svn path=/trunk/; revision=26513
2004-06-22 Chris Toshok <toshok@ximian.com>
* em-folder-tree.c (render_pixbuf): gtk_tree_model_get on a string
field allocates the return value. free path.
svn path=/trunk/; revision=26456
2004-06-21 Chris Toshok <toshok@ximian.com>
* em-folder-tree.c (render_display_name): gtk_tree_model_get on a
string field allocates the return value. free name.
svn path=/trunk/; revision=26448
2004-06-17 Not Zed <NotZed@Ximian.com>
** See #59885.
** Moved all of the mail specific filtering stuff from filter/* to
here. Renamed appropriately into em* space, etc.
* em-filter-folder-element.c (emff_copy_value): implement for folders.
* em-vfolder-rule.c (get_widget): read the vfolder glade from
mail-config.glade.
* mail-config.glade: moved the vfolder source selector here.
* em-search-context.c: new mail search specific rule context.
* mail-component.c (setup_search_context): use the new
em_search_context.
* vfolder-rule.c (validate): change error to mail context.
* filter-folder.c (validate): change error to mail context.
* Makefile.am (em-filter-i18n.h): added rule for i18n of mail
filter type stuff.
(libevolution_mail_la_SOURCES): added in the filter and vfolder
rule stuff specific to mail.
** See #59885.
* em-format-html-quote.[ch]: remove and remove from build, not
used.
* Makefile.am (libevolution_mail_la_LIBADD): add libeabutil and
evolutionsmime.
* mail-component-factory.c (factory): there is no mail_config
anymore.
svn path=/trunk/; revision=26380
2004-06-15 Jeffrey Stedfast <fejj@novell.com>
* em-folder-tree.c (emft_popup_copy_folder_selected): frombase is
simply the select_path, since selected_path is now just the
full_name rather than the path. Fixes bug #60075.
svn path=/trunk/; revision=26357
2004-06-14 Not Zed <NotZed@Ximian.com>
* mail-vfolder.c (rule_changed): don't check rule->source, its
irrelevent to vfolder sources, and clean up the logic a bit.
#59158.
* em-folder-tree.c (emft_popup_new_folder_response): destroy the
create dialogue if we're firing up the vfolder creation window.
svn path=/trunk/; revision=26332
2004-06-11 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-tree.c (em_folder_tree_set_selected): Free any old
select_uri string we may have.
(emft_tree_row_expanded): Remove the gross hack that was here.
(emft_get_folder_info__got): Check for priv->select_uri and try
selecting it (if we can't select it yet, it'll just be re-queued
for later).
(emft_tree_row_activated): Clear the select_uri if set, the user's
selection overrules any auto-selection.
(emft_tree_selection_changed): Same.
svn path=/trunk/; revision=26318
2004-06-11 Not Zed <NotZed@Ximian.com>
* em-folder-tree.c (emft_tree_button_press): rearrange the setting
up of the target flags, stores can have a null path.
* em-folder-selector.c (emfs_create_name_changed): use
get_selected_uri rather than path. a valid uri may have a null
path now.
(emfs_create_name_activate): and here too.
(em_folder_selector_get_selected_path): check the uri is null for
a selected path, and then handle a null path.
svn path=/trunk/; revision=26307
2004-06-10 Jeffrey Stedfast <fejj@novell.com>
Fixes bug #58825. Ugh. Really Gross Hack (tm).
* em-folder-tree.c (emft_tree_row_expanded): If the store that we
are expanding matches the uri that we've been requested to select
(e.g. from before the store was added to the tree), then give the
uri to the get_folder_info_op.
(em_folder_tree_set_selected): If the store for the uri isn't in
the tree yet, save the uri for later.
* mail-component.c (folder_selected_cb): Set the selected state of
the folder-tree and save it.
(impl_createControls): Restore the selected state on the
folder-tree.
* em-folder-tree-model.c (em_folder_tree_model_set_selected): New
function to set the selected-uri saved state.
(em_folder_tree_model_get_selected): New function to get the
selected uri saved state.
(em_folder_tree_model_save_state): Renamed.
* em-folder-tree.c (emft_update_model_expanded_state): Don't let
path be NULL if the node is a store node (path == NULL for any
other case is a bug).
(emft_maybe_expand_row): Same.
svn path=/trunk/; revision=26294
2004-06-08 Jeffrey Stedfast <fejj@novell.com>
* em-folder-tree.c (emft_tree_row_collapsed): Only change the
cursor if the currently selected folder is a subfolder of the
folder collapsed. Fixes bug #59801 without breaking bug #57665.
(emft_tree_test_collapse_row): Renamed from
emft_tree_collapse_row() to match the new signal we are connected
to.
svn path=/trunk/; revision=26258
2004-05-28 Jeffrey Stedfast <fejj@novell.com>
* em-folder-tree.c (d): Disable debug here too - all this code has
been working fine.
* em-folder-selector.c (d): Disable debug spew here too (not that
this debug was ever seen since it never hit those conditions).
* mail-folder-cache.c (d): Disable debug here too.
* em-folder-tree-model.c: Disable debug spewage that we don't need
anymore. The amount of debug spewage on the console is getting to
be too much to find anything.
* em-folder-tree.c (emft_expand_node): Use p+1 as the full_name
rather than p. Fixes bug #59187.
svn path=/trunk/; revision=26125
2004-05-27 Jeffrey Stedfast <fejj@novell.com>
* em-folder-tree.c (emft_get_folder_info__got): Instead of
removing the "Loading..." row for toplevel folder nodes on failure
(which indicates a failure conenct to the server, most likely),
collapse the store node so that if the user expands the store
node, it will automagically try connecting again. Fixes bug #57493.
svn path=/trunk/; revision=26115
2004-05-26 Not Zed <NotZed@Ximian.com>
* importers/evolution-mbox-importer.c (create_control_fn): set the
default selection to inbox.
* importers/evolution-outlook-importer.c (folder_selected)
(create_control_fn): copied from mbox importer. fixes a crash &
lets you choose the target folder.
2004-05-25 Not Zed <NotZed@Ximian.com>
* mail-component.c (mc_add_local_store_done): removed, now
redundant.
* em-folder-tree.c (em_folder_tree_set_selected): fix for path changes.
* em-folder-tree-model.c (em_folder_tree_model_set_unread_count):
change to use full name rather than path name.
* em-folder-tree-model.h: renamed path_hash to full_hash.
* em-folder-tree-model.c (folder_subscribed): dont use
g_path_get_dirname here, it is os dependent, we want / always.
(full_hash_free): rename from path_hash free.
svn path=/trunk/; revision=26090
2004-05-24 Not Zed <NotZed@Ximian.com>
* em-folder-tree.c (em_folder_tree_set_selected): use set_cursor
instead of scroll_to_row. See #58383.
(get_selected_uris_iterate): removed.
(em_folder_tree_get_selected_uris): use an interative call based
on gtk_tree_selection_get_selected_rows rather than
selected_foreach, as the gtk+ docs suggest. was trying to fix a
bug but it seems gtktreeselection bug (shift-select rows using
keyboard only)
svn path=/trunk/; revision=26058
2004-05-21 Not Zed <NotZed@Ximian.com>
* mail-mt.c (do_call): add marshaller for p_ppppp call.
* mail-session.c (get_password): fix for camel api changes.
(forget_password): same.
** See #58376.
* message-list.c (mail_regen_list): do some timeout foo so we
don't keep doing list regnerations if we're getting called too
often. God knows what this will break.
(message_list_set_selected): removede bug printf.
(regen_list_free): move the message-list poking stuff into
regen_list_regened.
(message_list_set_folder): call mail_regen_cancel to cancel any
regen stuff.
(mail_regen_cancel): cancel/clear outstanding regenerations.
(message_list_destroy): do it here too.
(message_list_select_uid): also set the pending select uid if we
have a timeout pending.
* mail-component.c (impl_createControls): set the defualt parent
to the main folderview as soon as its created.
* em-folder-tree.c (emft_popup_copy_folder_selected): use
get_toplevel rather than get_ancestor. seems the more reliable
one. also we're always parented so we shoudl always find a
toplevel window.
(em_folder_tree_create_folder): same.
(emft_popup_delete_response): set error parent.
(emft_popup_delete_folder, emft_popup_rename_folder)
(emft_popup_rename_folder, emft_popup_rename_folder):
svn path=/trunk/; revision=26030
2004-05-18 Not Zed <NotZed@Ximian.com>
* mail-folder-cache.c (folder_changed): don't emit new mail if its
any vfolder, not just vtrash folder. #56350.
* em-folder-view.c (emfv_list_done_message_selected): run
enable_menu's to make sure we're up to date. #58352.
** crappy hacks for #58385.
* em-folder-selection-button.c
(em_folder_selection_button_clicked): leave Ok button for this
selection.
* em-folder-selection.c (em_select_folder): added oklabel here too.
* em-folder-selector.c (em_folder_selector_new)
(em_folder_selector_construct, em_folder_selector_create_new):
Added oklabel- text for ok label.
(em_folder_selector_create_new): Set the ok label to Create.
* em-message-browser.c (emmb_set_message): don't mark message seen
if user has disabled auto-mark seen feature. #58629.
* em-format.c (em_format_part): if we have no content-type header,
then we get no mime-type set, so assume text/plain. #58470.
svn path=/trunk/; revision=25951
2004-05-17 Not Zed <NotZed@Ximian.com>
** Bug #6556.
* message-list.c (ml_drop_async_desc, ml_drop_async_drop)
(ml_drop_async_done, ml_drop_async_free, ml_drag_data_action)
(ml_drop_popup_copy, ml_drop_popup_move, ml_drop_popup_cancel)
(ml_tree_drag_data_received): implement async drop operations and
the ask drop option menu.
2004-05-14 Not Zed <NotZed@Ximian.com>
** Bug #6556.
* message-list.c (ml_selection_received_uidlist): removed, not
needed anymore.
(ml_selection_received): call get_uidlist to paste the selection.
(ml_tree_drag_data_received): same here.
* em-folder-tree.c (emft_drop_uid_list): removed, not needed
because of below change.
* em-utils.c (em_utils_selection_get_uidlist): actually do the
copy now, don't just decode the data.
* em-folder-tree.c (tree_drag_data_received): just copy the
selection data data itself, dont decode yet.
(emft_import_message_rfc822): removed, not needed, use em utils
stuff instead.
(emft_drop_message_rfc822): same.
(emft_drop_text_uri_list): same.
(emft_drop_async_free): simply free stuff.
(emft_drop_async_drop): call em_utils stuff where they exist to do
the drop.
* message-list.c (ml_tree_drag_data_get): send x-mailbox instead
of message/rfc822 for the mailbox.
(ml_tree_drag_data_received): handle drop of x-mailbox differently
to message/rfc822.
(ml_tree_drag_motion): implement so proper options are setup
whilst dragging.
(message_list_construct): seutp the drag src/dest types for
changes typs and with ASK action.
* em-utils.c (em_utils_read_messages_from_stream): dont unref the
stream when we get it.
(em_utils_selection_get_mailbox): add an argument to scan from or
not, for message/rfc822 vs x-mailbox drops.
(em_utils_read_messages_from_stream): Same.
* em-folder-tree.c (tree_drag_motion): default to move properly.
* message-list.c (ml_selection_received_uidlist): take a move flag.
(ml_tree_drag_data_received): handle move action.
* em-folder-tree.c (em_folder_tree_new_with_model): got sick of
this bloody warning.
* em-format.c (default_headers[]): just remove x-mailer from the
header list, if it isn't on by default. This is the default list.
(em_format_default_headers): loop through everything.
svn path=/trunk/; revision=25915
2004-05-07 Jeffrey Stedfast <fejj@ximian.com>
Fix for bug #57152.
* em-folder-tree.c (emft_get_folder_info__got): If we queried for
a recursive folder-info listing, then pass fully_loaded as TRUE to
set_folder_info().
(emft_get_folder_info__got): If we find that a folder doesn't have
children, set the expanded state to FALSE.
* em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
Now takes a "fully_loaded" argument to hint to set_folder_info
whether or not folder-info's without child nodes can possibly have
children (eg. if fully_loaded is set and fi->child is NULL, then
'load' will be FALSE no matter what fi->flags contains).
svn path=/trunk/; revision=25826
2004-05-06 Jeffrey Stedfast <fejj@ximian.com>
* mail-component.c (folder_selected_cb): Check that the folder is
selectable using the new flags argument.
* em-folder-selector.c (folder_selected_cb): Updated for below
changes.
* em-folder-tree.c (emft_tree_selection_changed): Updated to pass
a flags argument to the folder_selected signal.
(emft_tree_row_activated): Same.
svn path=/trunk/; revision=25816
2004-05-05 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-tree.c (emft_tree_row_collapsed): Select the row that
was just collapsed. Fixes bug #57665.
svn path=/trunk/; revision=25811
2004-05-05 Not Zed <NotZed@Ximian.com>
** See bug #57720.
* em-folder-browser.c (emfb_create_view_menus): removed some stuff
done in create_view_instance in the superclass.
* em-folder-view.c (emfv_create_view_instance): moved here from
em-folder-browser, setup the view instance for the folder.
(emfv_set_folder): if the folder is set, create the view instance.
* em-folder-browser.c: moved the galview instance and menu
pointers to EMFolderView, since they're basically meta-data on the
messagelist @ to fix issues.
* em-folder-view.c (em_folder_view_open_selected): copy over the
threaded list value when the message browser is brought up.
** some clean up
* evolution-mail.schemas.in.in: removed xmailer_mask stuff.
* em-migrate.c (mail_display_map[]): Removed xmailer_mask stuff.
* em-folder-view.c (emfv_setting_notify): removed xmailer_mask stuff.
* em-format-html.c (em_format_html_set_xmailer_mask): removed.
This isn't used anymore.
** Fixes the double-draw on separate mail view.
* message-list.c (on_cursor_activated_cmd): noop if the cursor and
uid match for all cases (clearing uid).
(on_selection_changed_cmd): noop if the cursor and new selection
hasn't changed & fix a memleak.
svn path=/trunk/; revision=25806
2004-05-04 Jeffrey Stedfast <fejj@ximian.com>
Fix for bug #55303, but ideally there would be a nicer way of
doing this - likely with some added ETree API but that's not
likely to happen anytime soon.
* em-folder-browser.c (scroll_idle_cb): Recall the saved scrollbar
position state and set it, then reconnect to the
message_list_scrolled signal.
(emfb_list_built): Calculate a default scrollbar position for
scroll_idle_cb to use if there's no saved state.
(emfb_set_folder): Disconnect from the message_list_scrolled
signal and the idle_scroll_id.
(emfb_list_scrolled): Save the scrollbar position state.
(emfb_destroy): Disconnect from list_scrolled_id and
idle_scroll_id.
svn path=/trunk/; revision=25794
2004-04-30 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-tree.c (tree_drag_motion): If the row the cursor is
hovering over has children and is not expanded already, setup a
timer to auto-expand it if the user hovers there long enough.
(tree_autoexpand): Callback to expand the row.
(tree_drag_leave): Disconnect the timer.
(tree_drag_drop): Same.
(em_folder_tree_destroy): Same.
svn path=/trunk/; revision=25718
2004-04-08 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-tree.c (emft_drop_folder): We need to recursively copy
the dragged folder tree over to the drop location, not just the
parent folder. We also need to subscribe to the newly created
folder in some cases.
svn path=/trunk/; revision=25375
2004-04-07 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-tree.c (emft_tree_button_press): Check that
emft_selection_get_selected() returns TRUE before we try to use
the iter. Fixes bug #56652.
(emft_popup_delete_response): Same idea here.
(emft_popup_delete_folder): Same.
(emft_popup_rename_folder): Same.
(emft_popup_properties): Same.
svn path=/trunk/; revision=25366
2004-04-06 Not Zed <NotZed@Ximian.com>
* em-folder-tree.c (emft_tree_row_expanded): ref the emfoldertree
in our thread message.
(em_folder_tree_set_selected): same.
(emft_get_folder_info__free): unref it.
* mail-folder-cache.c (ping_store): use thread_queued_slow not
thread_queued - we dont care when it runs.
* em-folder-view.c (emfv_set_folder_uri): use thread_new for
getting the folder, we do elsewhere, and it aids interactivity.
svn path=/trunk/; revision=25330
2004-03-31 Not Zed <NotZed@Ximian.com>
* *.[ch]: Cleaned up header inclusions and added plenty of forward
declarations. Sped up complete re-compilation by upto 20%.
** See bug #55950.
* em-utils.c (em_utils_in_addressbook): utility for checking if an
email address is in the addressbook. I can't tell if it works
'cause it crashes eds.
* em-format-html.c (emfh_gethttp): handle addressbook checking.
2004-03-30 Not Zed <NotZed@Ximian.com>
* mail-config.h: clean up the headers and use some forward decl's
instead.
* em-format-html.c (em_format_html_set_load_http): change state to
an int 'style' instead.
* em-folder-view.c (emfv_setting_notify): set the format load http
option to the config value directly.
** See bug #56147.
* message-list.c (clear_info): set the node data to NULL when we
unref its data.
(ml_get_save_id): use a different test for the root node, and
return NULL if we don't have any data on the node (because we're
cleaing it).
** See bug #54962.
* em-folder-tree.c (emft_popup_new_folder_response): put back the
old hack to open the vfolder editor if you try to create a folder
under vfolders.
** See bug #55940.
* mail-autofilter.c (mail_filter_rename_uri): map the uri to an
email uri before passing to filter code.
(mail_filter_delete_uri): same here.
svn path=/trunk/; revision=25261
2004-03-16 Jeffrey Stedfast <fejj@ximian.com>
Fix for bug #55358.
* em-folder-tree.c (emft_expand_node): Changed to be the callback
function for em_folder_tree_model_expand_foreach().
(emft_maybe_expand_row): Renamed from emft_loading_row_cb(). We
now handle both "loading-row" an "loaded-row" signals. Also
updated for slight change in key generation.
(em_folder_tree_new_with_model): Connect to the "loaded-row"
signal.
(emft_update_model_expanded_state): Updated for slight change in
key generation.
* em-folder-tree-model.c (em_folder_tree_model_add_store): Emit
the "loaded-row" signal for the newly added store.
(em_folder_tree_model_set_folder_info): Emit "loaded-row" for the
row we've just set the info on (but only after we've added a child
node if there is one, so the signal handler can expand the newly
added row if appropriate).
(em_folder_tree_model_class_init): Setup the "loaded-row" signal.
(em_folder_tree_model_finalize): The tree-state is now an xml file
and not a binary file, so change the expanded free func.
(em_folder_tree_model_load_state): Load the expand-state xml
file. If one doesn't exist, setup some defaults.
(em_folder_tree_model_get_expanded): Scan the XML tree for the
node.
(em_folder_tree_model_set_expanded): Same.
(em_folder_tree_model_save_expanded): Save the expand-state xml
tree to disk.
(em_folder_tree_model_expand_foreach): New function to iterate
over all xml nodes and call the callback if the expand state is
"true".
svn path=/trunk/; revision=25094
2004-03-16 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-tree.c (emft_drop_async_desc): New function to return
a description of the async drop operation. Fixes bug #54808.
svn path=/trunk/; revision=25090
2004-03-11 Not Zed <NotZed@Ximian.com>
* em-format-html.c (efh_format_header): pass the raw header in
instead of name and value.
(efh_format_headers): if we have specific headers to show, iterate
over all headers and print out all matching ones, so duplicate
headers are properly displayed. Related to #55298.
* em-folder-selector.c (em_folder_selector_construct): dont set
this to be modal. otherwise you can't click on error popups. duh.
2004-03-08 Not Zed <NotZed@Ximian.com>
* em-folder-selection-button.c
(em_folder_selection_button_clicked): don't let the user select
virtual/vtrash folders or non-selectable folders.
* mail-component.c (impl_createControls): disable selection of
non-select rows.
* em-folder-selector.c (em_folder_selector_create_new): exclude
folders with noinferiors set.
* em-folder-tree.c (folder_tree_new): add folder tree arg, hook
onto the selection funciton for the tree selection.
(emft_select_func): selection override function. allow certain
things to be excluded.
(em_folder_tree_set_excluded): api to set what is excluded from
the selectability.
(emft_tree_row_activated): call emft_select_func check to see if
this row is excluded before emitting an activated signal.
* em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
save folder info->flags in the tree store.
* mail-folder-cache.c (create_folders): use tail recursion.
(get_folders): tail recurse.
* (*): Fixed for api changes in camel.
svn path=/trunk/; revision=25020
2004-03-08 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-tree.c (emft_create_folder): New async function to
create a folder.
(em_folder_tree_create_folder): Partly moved into
emft_create_folder. Might be able to remove this code, but lewing
might be using it in Connector or something? Need to ask him...
(emft_popup_new_folder_response): Use emft_create_folder()
instead.
svn path=/trunk/; revision=24993
2004-03-03 Not Zed <NotZed@Ximian.com>
** See bug #54121.
* mail-component.c (impl_requestCreateItem)
(emc_new_folder_response): Hack in a nastish implementation of
create folder for the new menu.
(impl__get_userCreatableItems): add 'new mail folder' to new
button.
svn path=/trunk/; revision=24945
2004-03-01 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-selector.c (em_folder_selector_construct): Connect to
the folder-activated signal.
(folder_activated_cb): Call gtk_dialog_response() with
GTK_RESPONSE_OK. Fixes bug #54793.
* em-folder-tree.c (emft_tree_row_activated): New callback to emit
the "folder-activated" signal which is needed to fix bug #54793.
(emft_tree_button_press): Handle button1 double-clicks too (also
for bug #54793).
(emft_tree_button_press): On right-click, we also want to select
the folder the user right-clicked on. Fixes bug #54772.
svn path=/trunk/; revision=24928