2001-07-19 Peter Williams <peterw@ximian.com>
Policy change: NULL url's are no longer allowed in CamelFolderInfos. They used
to signify that the folder was, in IMAP jargon, NoSelect; now the same effect
is achieved by adding a "noselect=yes" parameter to the end of the URL. As far
as I know, IMAP is the only affected provider.
* providers/imap/camel-imap-store.c (delete_folder): New function. Implement
folder deletion.
(camel_imap_store_class_init): Set the delete_folder class function here.
(get_folder_status): New function. Utility wrapper around the STATUS command.
(create_folder): If the parent folder is NoSelect but is empty, delete it
and recreate it as a a subfolder-containing folder. If it is NoSelect but
contains messages, set an exception.
(parse_list_response_as_folder_info): Always set the FolderInfo's URL, but
add a NoSelect parameter if it isn't selectable.
(get_folder_info_online): Change logic of removing the namespace to reflect
URL change. Same for logic of checking unread counts.
(get_folder_info_online): Use get_folder_status to simplify this.
* camel-store.c (camel_folder_info_build): When creating
dummy parents, copy the child's URL and set the NoSelect
parameter.
In mail:
2001-07-19 Peter Williams <peterw@ximian.com>
Track the NoSelect changes in Camel.
* mail-callbacks.c (create_folders): We don't need to check if
the URL is NULL or not anymore.
* component-factory.c (create_noselect_control): New
function. Create a dummy control for folders that can't contain
messages (ie \NoSelect)
(create_view): If the URI says the folder is noselect, make a
dummy control. FIXME: still should merge in the global UI
elements.
(xfer_folder): Don't allow the operation if the destination is
NoSelect.
(destination_folder_handle_motion): Ditto.
(destination_folder_handle_drop): Ditto.
svn path=/trunk/; revision=11237
2001-07-13 Peter Williams <peterw@ximian.com>
* mail-callbacks.c (expunge_folder): Segfault prevention here if no uid is
currently loaded.
svn path=/trunk/; revision=11093
2001-07-13 Peter Williams <peterw@ximian.com>
* mail-callbacks.c (expunge_folder): Segfault prevention here if we lose
the race with message_list_set_hidedeleted().
svn path=/trunk/; revision=11092
2001-07-12 Jason Leach <jleach@ximian.com>
* mail-callbacks.c (expunge_folder): Only blank the mail display
if the message being viewed is one of those to be expunged. Bug
#4030.
svn path=/trunk/; revision=11052
2001-07-10 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (mail_generate_reply): Make sure that the
reply-to addr i non-NULL before trying to add it to the hash
table.
svn path=/trunk/; revision=10953
2001-07-06 Larry Ewing <lewing@ximian.com>
* mail-callbacks.c (composer_send_cb): add a NULL check since that
is a valid return.
svn path=/trunk/; revision=10866
2001-07-06 Peter Williams <peterw@ximian.com>
* mail-callbacks.c (composer_postpone_cb): Don't free the psd here --
it will be freed on the "destroy" signal.
* mail-folder-cache.c (maybe_update): Instead of an idle, use a very
short timeout in hopes of reducing the number of redundant updates.
* mail-tools.c (mail_tool_uri_to_folder): Only note the folder in the
cache if we successfully got it.
svn path=/trunk/; revision=10852
2001-07-06 Jason Leach <jleach@ximian.com>
* mail-callbacks.c (delete_msg): Select the very next message
after deleting, not the next undeleted (it can make things jump
around in annoying ways if you are deleting many messages), bug #4032.
* folder-browser.c: Forgot to commit the "Mark as Important" right
click menu item.
* message-list.c (message_list_set_folder): Setup the strikeout
column here (after we've gotten the folder) so we can disable
strikeouts for vtrash folders, part of bug #2224.
svn path=/trunk/; revision=10849
2001-07-03 Joe Shaw <joe@ximian.com>
* mail-callbacks.c (expunge_folder): Unset the message being displayed
when expunging. This makes expunged messages not show in the preview
pane when they're not there anymore. Fixes#3591.
svn path=/trunk/; revision=10774
2001-07-03 Joe Shaw <joe@ximian.com>
* mail-callbacks.c (mail_reply): If msg is NULL, fetch the message
and requeue a mail_reply call. Fixes bug #3816.
(requeue_mail_reply): Callback from mail_get_message().
svn path=/trunk/; revision=10772
2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (transfer_msg): Updated for the
mail_transfer_messages API.
* folder-browser.c (message_list_drag_data_recieved): Update for
the mail_transfer_messages API.
(selection_received): Same.
* mail-ops.c (mail_transfer_messages): Renamed from
mail_do_transfer_messages and also added a callback/data arguments
since we need it component_factory::xfer_folder.
* component-factory.c (xfer_folder): Use mail_transfer_messages
instead.
(destination_folder_handle_drop): Update to pass in a NULL
callback arg and a NULL data argument to mail_transfer_messages.
svn path=/trunk/; revision=10710
2001-07-02 Peter Williams <peterw@ximian.com>
* mail-folder-cache.h: New file. Protoypes for the Mail Folder Cache, which
provides a place for all the disparate pieces of the mailer to save bits of
information about a folder. Centralizes the information display code.
* mail-folder-cache.c: New file. Implements the Mail Folder Cache.
* Makefile.am (evolution_mail_SOURCES): Add the mail-folder-cache.{c,h}
* folder-browser-factory.c (fb_get_svi): Copy of that absurdly long-named
function in mail-display.c that gets the GNOME_Evolution_ShellView.
(control_activate): Set the ShellView for the folder cache.
* folder-browser.c (got_folder): Tell the folder browser about this folder.
* mail-callbacks.c (create_folders): Tell the folder cache about the new
folders.
* mail-local.c (reconfigure_folder_reconfigure): Don't unhook our
events as we no longer hook them up.
(register_folder_registered): Tell the folder cache about this
folder's place in the local storage.
(register_folder_register): No longer hook events; the Folder Cache
will do this.
(local_folder_changed, local_folder_changed_proxy): Move to mail-folder-cache.c
(free_local_folder): No longer unhook events.
* mail-ops.c (do_update_subfolders_rec): Instead of setting the
folder status ourselves, inform the Folder Cache about the changes.
* mail-tools.c (mail_tool_uri_to_folder): Replace danw's cache
with the new Mail Folder Cache.
(cache_folder, etc): removed.
svn path=/trunk/; revision=10694
2001-06-30 Jon Trowbridge <trow@ximian.com>
* mail-display.c (make_popup_window): Changed to return the
created window.
(find_socket): Added. Copied from e-shell-view.c. The fact
that I'm copying this bit of code all over isn't cool.
(html_button_press_event): Properly destroy the popup window when
the widget inside the control is destroyed.
* mail-callbacks.c (addrbook_sender): Added. Implements
the "Add sender to addressbook" right-click. (Bug #3645)
(find_socket): Added. Copied from e-shell-view.c.
* folder-browser.c: Added "Add sender to addressbook" to
context_menu[].
* mail-display.c: (handle_embedded_address_object): Removed.
(on_object_requested): Removed handling for embedded address
objects. (Which was obsolete crap.)
svn path=/trunk/; revision=10643
2001-06-29 Larry Ewing <lewing@ximian.com>
* mail-callbacks.c (create_msg_composer): make sure we show the
sig file.
* e-msg-composer.c (e_msg_composer_show_sig_file): remove now
invalid argument in the documentation.
svn path=/trunk/; revision=10616
2001-06-29 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (ask_confirm_for_only_bcc): Throw up the
confirmation dialog.
(composer_get_message): If the user only specified Bcc recipients,
prompt him/her to make sure we should continue and risk the server
adding an Apparently-To header.
* mail-config.c (config_read): Read in config option for prompting
when only Bcc recipients are specified.
(mail_config_write_on_exit): Save the option.
(mail_config_get_prompt_only_bcc): New.
(mail_config_set_prompt_only_bcc): New.
svn path=/trunk/; revision=10606
2001-06-27 Peter Williams <peterw@ximian.com>
* configure.in (gal): Bump required gal version for new accessors
in ETree.
mail:
2001-06-27 Peter Williams <peterw@ximian.com>
* folder-browser-ui.c: Uncomment EditSelectThread. Yaay!
* mail-callbacks.c (select_thread): New function. Self-explanatory
name. Implementation is a little hairy.
* mail-callbacks.h: Prototype it here.
* mail-callbacks.c (invert_selection): Here too.
(select_all): Here too.
* subscribe-dialog.c (subscribe_select_all): Update to use new
ETree accessors.
(subscribe_invert_selection): Here too.
calendar:
2001-06-27 Peter Williams <peterw@ximian.com>
* conduits/*/Makefile.am (INCLUDES): More srcdir != builddir
fixes.
svn path=/trunk/; revision=10544
* mail-mt.c (op_status_timeout): Don't pop up a progress dialog to
say "I already finished this a while ago".
* component-factory.c (storage_create_folder): Pass the path
prefix to folder_created so it can add it to the folder tree in
the right place.
* mail-callbacks.c (folder_created): Take a path prefix.
svn path=/trunk/; revision=10508
2001-06-25 jacob berkman <jacob@ximian.com>
* mail-send-recv.c (free_send_data): sync folders after we've
gotten mail
* folder-browser-factory.c (control_activate): set the ui
component on the folder browser
(control_activate): update the view preview item
(control_deactivate): don't sync the folder here
(control_deactivate): unset the ui component of the folder browser
* mail-callbacks.c (toggle_flags): stuff from jleach to add an
importance keybinding
(mark_as_important): ditto
(toggle_as_important): again
* mail-config.c (mail_config_get_show_preview):
(mail_config_set_show_preview): basically a copy of
get_thread_list() but for the preview pane
* folder-browser.c (folder_browser_destroy): unref the our ui
component
(folder_browser_set_ui_component): new function for setting the ui
component
(save_cursor_pos):
(set_cursor_pos): try to show the selected row when the preview
pane is shown
(folder_browser_set_message_preview): implement
(folder_browser_toggle_preview): toggle the preview (duh)
(on_key_press): add keybindings for marking as important (!), and
hiding the preview pane (q)
(etree_key): clean up a little bit, and make enter either show the
preview pane or open the message
(fb_resize_cb): only save the paned size if the preview is alread
shown
(folder_browser_gui_init): pass ourselves to fb_resize_cb
(on_message_selected): only add the timeout if the preview is
shown
svn path=/trunk/; revision=10491
2001-06-21 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (composer_get_message): Allow the message to be
sent even if there are no To recipients but only as long as there
are other recipients defined.
svn path=/trunk/; revision=10363
2001-06-18 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (destination_folder_handle_drop): Use a nice
switch statement and use the new enum values.
* mail-callbacks.c (list_add_addresses): Now takes a hash table of
already-used-recipients so that we don't get duplicates.
(mail_generate_reply): Pass in a rcpt_hash argument to
list_add_addresses(). These changes fix bug #1639.
svn path=/trunk/; revision=10282
2001-06-18 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (list_add_addresses): Now takes a hash table of
already-used-recipients so that we don't get duplicates.
(mail_generate_reply): Pass in a rcpt_hash argument to
list_add_addresses(). These changes fix bug #1639.
svn path=/trunk/; revision=10278
2001-06-14 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser-factory.c: Add Reply-to-List bonobo verbs.
* folder-browser.c: Add Reply-to-List menu items.
* mail-callbacks.c (mail_reply): Use an enum for specifying the
reply mode, becaus enow we can reply-to-list.
(reply_to_list): Implement.
(reply_to_sender): Use REPLY_SENDER.
(reply_to_all): Use REPLY_ALL.
(mail_generate_reply): Handle the different modes.
svn path=/trunk/; revision=10232
2001-06-08 Jon Trowbridge <trow@ximian.com>
* mail-ops.c (mail_send_message): Reattach X-Evolution-Account
information to the message after sending it. This way it can
be used to set the identity properly if we later Resend the
message.
svn path=/trunk/; revision=10162
2001-05-29 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (list_add_addresses): Take another argument to
ignore a certain address.
(mail_generate_reply): Ignore references to the reply-to address
when constructing the Cc list.
svn path=/trunk/; revision=10046
2001-05-24 Jeffrey Stedfast <fejj@ximian.com>
* message-list.c (message_list_select_uid): g_strdup the uid into
the ml->cursor_uid.
* message-browser.c (message_browser_forward_msg): Use the default
forward style.
svn path=/trunk/; revision=9969
2001-05-23 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (composer_postpone_cb): Don't free the
folder-info here, instead have mail_append_mail() call our new
function, append_mail_cleanup() which'll free the
folder-info. This fixes the problem of send-later segfaulting.
svn path=/trunk/; revision=9958
* folder-browser.c (folder_browser_is_drafts,
folder_browser_is_sent, folder_browser_is_outbox): Functions to
determine if a folderbrowser is one of the drafts, sent, or outbox
folders.
(got_folder): Pass TRUE for the "outgoing" flag to
message_list_set_folder if this is a Sent, Drafts, or Outbox
folder.
* message-list.c (message_list_set_folder): Take a flag saying
whether or not the folder is an "outgoing" folder.
(message_list_setup_etree): Ditto. Use that rather than a
hardcoded list of foldernames for deciding whether to swap From
and To in the default layout.
* mail-config.c (mail_config_folder_to_cachename): Make IMAP
folders have unique cachenames rather than only one per store, so
that IMAP Sent and Drafts folders don't get forced into having the
same layout as the INBOX.
* mail-callbacks.c: (is_sent_folder, is_drafts_folder): Gone.
Replaced with simpler folder_browser_is_* routines.
(edit_msg, resend_msg, open_msg): Use folder_browser_is_*
routines.
* mail-local.c (reconfigure_clicked): Update call to
message_list_set_folder.
svn path=/trunk/; revision=9857
* mail-display.c (on_url_requested): Load http images if the user
has force-loaded images too.
(mail_display_redisplay): Update for normal/headers/source changes.
(mail_display_load_images): New. Force HTTP image loading for the
current message.
* mail-config.c (mail_config_get_message_display_style,
mail_config_set_message_display_style): Updated and renamed from
mail_config_{get,set}_view_source
* mail-callbacks.c (load_images): New.
* folder-browser.c (folder_browser_set_message_display_style):
Renamed and updated from folder_browser_toggle_view_source.
* folder-browser-factory.c (verbs): Add ViewLoadImages.
(control_activate): Update for normal/headers/source change to
radio group.
svn path=/trunk/; revision=9820
* mail-config.glade: Split "Other" page into three pages, Display,
Composer, and PGP. Add HTML image stuff on the Display page and
default forward style on the Composer page.
* mail-config.c (mail_config_get_default_forward_style,
mail_config_set_default_forward_style): User-specified default
style for forwarding messages.
(config_read, mail_config_write_on_exit): Deal with forward style.
* mail-accounts.c: Handle HTML image display options and default
forward style.
* mail-callbacks.c (forward): New. Forward in the user-selected
default style.
(forward_inline, forward_quoted): Simplify these some. Remove the
fallback to forward attached when forwarding multiple messages: it
should just forward the multiple messages inline or quoted in
those cases. (Which it doesn't yet, but that's a bug.)
* folder-browser.c (context_menu): Remove "Forward inline" and
make "Forward" call forward() rather than forward_attached().
* folder-browser-factory.c: Update command/menu/toolbar/pixmap
gunk for the "MessageForwardAttached" vs "MessageForward" split.
* mail-session.c (mail_session_get_type):
* mail-format.c (format_mime_part):
* mail-account-gui.c (setup_service): Fix warnings.
svn path=/trunk/; revision=9792
2001-05-11 Jeffrey Stedfast <fejj@ximian.com>
* mail-vfolder.c (vfolder_edit): Don't allow multiple copies of
this to be run at a time.
* mail-callbacks.c (providers_config): Don't allow multiple copies
of this to be run at a time.
(manage_subscriptions): Same, but this was a tad more kludgy since
we don't gnome_dialog_run_and_close() this one. I had to make the
widget a semi-global variable. yuck :\
(filter_edit): Same.
svn path=/trunk/; revision=9762
2001-05-11 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (forward_inlined): If the cursor_uid is NULL,
then we can't forward anything so just return.
(forward_quoted): Same.
svn path=/trunk/; revision=9759
* folder-browser.c (on_key_press): Don't advance to the next
undeleted message after "Delete"...
* mail-callbacks.c (delete_msg): ...instead, do it here, whether
the user used Delete, Alt+D, or the toolbar. (But only if they
only deleted a single message.)
* message-list.c (message_list_select): Don't clear the display on
failure.
(build_tree): Clear the display when the currently-selected
message stops existing and we don't have an obvious message to
select instead of it. (Eg, when deleting the last message with
"hide deleted messages" set, or expunging while a deleted message
is selected.)
svn path=/trunk/; revision=9744
2001-05-08 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (edit_msg_internal): Free the UIDs if the user
decides to not go through with editing all the messages he
selected.
(resend_msg): If the user attempts to resend more than 10
messages, make sure he really means it.
(do_resend_messages): Richard Zach feels that "Resend" should open
the message(s) in a composer since he might want to edit at least
the recipients (maybe he needs to resend because the message
bounced the first time) and Ettore wants pretty much the same
thing. This makes "Resend" basically the same as "Edit" but for
previously sent messages, whereas "Edit" is only for Drafts.
svn path=/trunk/; revision=9717
2001-04-26 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (next_msg): Don't filter on Seen status.
(previous_msg): Same.
(next_unread_msg): New function that does what the old callback
next_msg callback did (only better named).
(previous_unread_msg): Same.
svn path=/trunk/; revision=9605
* mail-callbacks.c (are_you_sure): New foot-shooting-prevention
helper function.
(edit_msg_internal, view_msg): If the user has more than 10
messages selected, ask before opening them all in separate
windows, to protect against misclicks/typos after "select all"
(which we've had at least two reports of now).
svn path=/trunk/; revision=9559
2001-04-23 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (do_view_message): Use the message-browser
widget rather than the mail-view window.
* mail-view.c: Removed.
* folder-browser.c: Added a folder_loaded signal.
* message-browser.[c,h]: New window to solve all our message
browsing needs. This replaces mail-view.c.
* message-list.c (message_list_select_uid): New function needed by
the new message-browser window.
svn path=/trunk/; revision=9525