* folder-browser.c (folder_browser_set_uri): Merged into
folder_browser_new: nothing ever changes the URI of an existing
folder browser any more.
(folder_browser_new): Make this take a uri argument and do the
work folder_browser_set_uri used to do, except that we set fb->uri
right away, so that if the folder browser's control is activated
before got_folder() gets called, then folder_browser_ui_add_list()
will have access to the correct uri for purposes of setting
ViewThreaded, etc. Fixes#4913.
(got_folder): Don't set fb->uri here since it will already have
been set. Don't call message_list_set_threaded, since it should be
a noop now (and if it's not, it would make the message list not
match the menu item).
* folder-browser-ui.c (folder_browser_ui_add_list): Remove some
code that was failing to work around the problems above.
* message-browser.c (message_browser_new): Pass uri to
folder_browser_new, remove call to set_uri.
* folder-browser-factory.c (folder_browser_factory_new_control):
Likewise. Also fix a s/destroy/unref/ in an error cleanup.
svn path=/trunk/; revision=12954
2001-09-10 <NotZed@Ximian.com>
* mail-local.c (mail_local_reconfigure_folder): Dynamically create
the folder type list from camel.
(reconfigure_clicked): And change code to handle changes.
2001-09-10 <NotZed@Ximian.com>
* merged mail_local patch from peterw. Many changes.
svn path=/trunk/; revision=12759
2001-08-24 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (launch_cb): Use the new e_mkdtemp function.
* folder-browser.c (message_list_drag_data_get): Use the new
e_mkdtemp function.
svn path=/trunk/; revision=12462
2001-08-23 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (destination_folder_handle_drop): Check to
make sure we actually have drag data.
* folder-browser.c (message_list_drag_data_received): Check to
make sure we have valid data.
svn path=/trunk/; revision=12424
2001-08-21 Peter Williams <peterw@ximian.com>
* folder-browser-ui.c (fbui_sensitize_items): Rename to
fbui_real_sensitize_items. Now we queue a change and set up a timeout,
making sure weed out redundant changes, fixing flicker.
(fbui_sensitize_timeout): New function. The timeout.
(fbui_real_sensitize_items): Semi-new function. Rename of old
fbui_sensitize_items.
(folder_browser_ui_set_selection_state): Pass the FB instead of only
the UIC to sensitize_items.
(folder_browser_ui_message_loaded): Same.
* folder-browser.c (folder_browser_destroy): Kill the new timeout if
it is registered.
* folder-browser.h: Add some members to FolderBrowser for keeping
track of the queue of changes.
svn path=/trunk/; revision=12343
2001-08-09 Peter Williams <peterw@ximian.com>
Fix bug #215... desensitize menu items based on the number of
selected messages (and whether there's a message in the pane)
* folder-browser-ui.c (folder_browser_ui_add_message): Sensitize
the menu items appropriately based on the old state.
(fbui_sensitize_items): New function. Set the sensitivity of a
list of commands.
(folder_browser_ui_set_selection_state): New function. Move the FB
to a new state of selected-ness, and sensitize menu items
appropriately.
(folder_browser_ui_message_loaded): New function. When notified
that a message has been loaded, sensitize some menu items.
* folder-browser-ui.h: Prototype new functions.
* folder-browser.h: New enumeration,
FolderBrowserSelectionState, that records the previous state
of the selection (_NONE, _SINGLE, _MULTIPLE).
* folder-browser.c (got_folder): If the component is set,
set our selection state to _NONE, because that's the default
state of the ETree.
(on_selection_changed): When the number of selected messages
is updated, notify the FBUI code of our new state.
(folder_browser_gui_init): Hook up to the selection_changed
signal and default to the _NONE selection state.
(done_message_selected): Notify when a message is loaded.
2001-08-08 Peter Williams <peterw@ximian.com>
* mail-folder-cache.c: Display how many messages are selected,
too.
(make_folder_status): If multiple messages are selected, add that
to the string (the 0 and 1 cases are boring)
(selection_changed): New function, update the selected count.
(mail_folder_cache_note_fb): Connect to the selection_changed
signal.
svn path=/trunk/; revision=12012
* folder-browser.c (message_list_drag_data_get): Fix the fix for
#6722.
* mail-ops.c (save_messages_save): Likewise.
(save_part_save): Deal with the possibility that
camel_mime_filter_charset_new_convert will return NULL (bad
charset name). Fixes#6611.
svn path=/trunk/; revision=12008
2001-08-11 Jason Leach <jleach@ximian.com>
* folder-browser.c: Make the right click "Resend..." into "Edit as
New Message...", bug #6838.
svn path=/trunk/; revision=11927
2001-08-10 Jon Trowbridge <trow@ximian.com>
* e-msg-composer-hdrs.c (set_recipients): Removed comment about
the need to resolve nicknames properly, because we now do that.
2001-08-10 Jon Trowbridge <trow@ximian.com>
* e-filter-bar.h: Set the subitems to NULL in the pre-defined
ESearchBarItems.
* e-filter-bar.c (rule_editor_clicked): Set the ESearchBarItem's
subitems to NULL.
(build_items): Set the ESearchBarItem's subitems to NULL.
(e_filter_bar_new): Set the ESearchBarItem's subitems to NULL.
* e-search-bar.c: Added support for subitems, so that a search
option can key off of another option menu rather than just an
entry.
2001-08-10 Jon Trowbridge <trow@ximian.com>
* gui/component/addressbook.c: Set the ESearchBarItem
subitems explicitly to NULL.
2001-08-10 Jon Trowbridge <trow@ximian.com>
* gui/cal-search-bar.c: Where we have ESearchBarItems, set their
subitems to NULL.
2001-08-10 Jon Trowbridge <trow@ximian.com>
* folder-browser.c: Set our ESearchBarItems subitems to NULL.
svn path=/trunk/; revision=11904
2001-08-10 Jason Leach <jleach@ximian.com>
* folder-browser.c: Make the context menu for the Sent folder have
"Resend..." instead of "Resend", to clarify that it will bring up
a dialog needing your input rather than just blindly sending the
message again. Also give it the 'e' accelerator. Bug #6838.
svn path=/trunk/; revision=11901
2001-08-10 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (on_right_click): Added a comment about leaking
memory here, but we seem to not even use the 2 strings we
strdup...is this code still under construction?
* mail-ops.c (mail_send_message): Free the sent_folder_uri at the
bottom of the function (ironically enough we were freeing it if we
encountered an error but never free'd it on success :-)
(get_folderinfo_got): Fixed a memory leak...this one would have
gone away once we got rid of the debug g_warning though.
svn path=/trunk/; revision=11868
2001-08-09 Peter Williams <peterw@ximian.com>
[ * folder-browser.c (on_key_press): The bonobo menu items now
handle 'n' and 'p'. ]
(on_key_press): 'q' as well.
in ui:
2001-08-09 Peter Williams <peterw@ximian.com>
* evolution-mail-global.xml: Give the (pre)view pane toggle
an accelerator of 'q', like we were implementing the hard
manual way before.
svn path=/trunk/; revision=11858
2001-08-09 Peter Williams <peterw@ximian.com>
* folder-browser.c (on_key_press): The bonobo menu items now
handle 'n' and 'p'.
svn path=/trunk/; revision=11853
2001-08-09 Anna Marie Dirks <anna@ximian.com>
Fixes bug #6918
* folder-browser.c: Changed the "Store search as vFolder"
menu item to "Create vFolder from Search".
svn path=/trunk/; revision=11848
2001-08-09 Jeffrey Stedfast <fejj@ximian.com>
Fixes bug #6722
* mail-ops.c (save_messages_save): Don't set the default perms
here, let the user's umask deal with permissions.
* folder-browser.c (message_list_drag_data_get): Don't set any
default perms.
svn path=/trunk/; revision=11842
2001-08-06 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (expunge_folder): Set the message-display
message to NULL if we can't get an info too.
svn path=/trunk/; revision=11711
2001-08-04 Jason Leach <jleach@ximian.com>
* message-list.c (message_list_select): Add a @wraparound
argument, so the 'n' and 'p' keypresses (or anything else that
wants to) can wrap around to find the next unread.
* folder-browser.c (on_key_press): Tell it to wrap around here.
* mail-callbacks.c (delete_msg): Don't wrap around here (or the
other callbacks in this file).
svn path=/trunk/; revision=11651
2001-08-01 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (folder_browser_copy): Do the Right Thing (tm)
if the message list is not the widget in focus (which is to copy
the text selected in the html viewer instead). Fixes bug #5868.
svn path=/trunk/; revision=11558
2001-07-26 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (message_list_drag_data_get): If we don't have
any messages selected, break out. This fixes bug #5612.
* component-factory.c (xfer_folder): Fixed a strstr (url,
"noselect=yes") brokenness.
(destination_folder_handle_motion): Same.
(destination_folder_handle_drop): And again here.
* mail-format.c (handle_application_pgp): Implemented.
(setup_mime_tables): Setup the application/pgp handler to use
handle_application_pgp instead of handle_text_plain.
(handle_text_plain): Remove special-case hacks for application/pgp
types.
svn path=/trunk/; revision=11438
2001-07-25 Peter Williams <peterw@ximian.com>
* folder-browser.c (etree_key): Make it so Enter always opens the message
in another window.
svn path=/trunk/; revision=11409
2001-07-23 Jason Leach <jleach@ximian.com>
[Bug #5225: No UI way to mark as unimportant]
* folder-browser.c (on_right_click): Do the necessary stuff to
show or hide the correct "Mark Important" or "Mark as Unimportant"
menu items depending on the status of messages that are selected.
* folder-browser-ui.c: Add the MarkAsUnimportant verb here.
* mail-callbacks.c (mark_as_unimportant): Simple function that's
the callback for these new menu items.
svn path=/trunk/; revision=11316
2001-07-19 Jason Leach <jleach@ximian.com>
* mail-display.c (mail_display_new): Set the vertical scrolling
policy for the mail display to AUTOMATIC, only get a scrollbar if
the e-mail is longer than one frame.
* folder-browser.c (my_folder_browser_init): We were setting the
policy twice (and to two different things). Removed this one.
* message-list.c (message_list_init): Set the policy for the
message list scroll frame to be horizontal=NEVER,
vertical=AUTOMATIC (scrollbar only if you have >1 page of
messages).
svn path=/trunk/; revision=11239
2001-07-18 Jeffrey Stedfast <fejj@ximian.com>
* mail-tools.c (mail_tool_generate_forward_subject): Do what was
suggested in #4596.
svn path=/trunk/; revision=11210
2001-07-17 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (message_list_drag_data_recieved): Fix to
correctly handle text/uri-lists that contain more than a single
url.
* component-factory.c (destination_folder_handle_drop): Fix to
correctly handle text/uri-lists that contain more than a single
url.
svn path=/trunk/; revision=11174
2001-07-16 Peter Williams <peterw@ximian.com>
* mail-display.c (mail_display_redisplay): Use our own display_style
member instead of the global setting.
(mail_display_init): Initialize display_style.
* mail-display.h: Include "mail-config.h" and add a display_style member.
* mail-format.c (write_headers): Look at the MailDisplay's display_style
instead of using the full_headers data.
* folder-browser.c (folder_browser_set_message_display_style): Set
the MailDisplay's display style as well as the global display
style.
(my_folder_browser_init): Don't save preference changes by default. (This
is only observered wrt. the message display style but should apply to other
items.)
* folder-browser-factory.c (folder_browser_factory_new_control): Set this
FB to save the preferences set in it.
* folder-browser-ui.c (folder_browser_ui_add_message): Read our display's
state instead of the global setting.
svn path=/trunk/; revision=11131
2001-07-10 Jason Leach <jleach@ximian.com>
[Bug #4305: Make the automatic mark-as-read timer optional]
* mail-config.glade: Necessary changes to make the Mark as "Read"
label a toggle button instead.
* mail-accounts.c (construct): Connect to the "toggled" on our new
toggle.
(timeout_toggled): New callback, called from above.
* mail-config.c (mail_config_get_do_seen_timeout): New.
(mail_config_set_do_seen_timeout): New.
(mail_config_write_on_exit): Save the preference here.
(config_read): Load it here.
svn path=/trunk/; revision=10973
2001-07-06 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (folder_browser_copy): Mark the messages as
Seen also.
(folder_browser_class_init): Create an atom type for
X-Evolution-Message selection type.
(my_folder_browser_init): Add our multiple selection types, one of
which is the default string type.
* component-factory.c (destination_folder_handle_drop): Update to
use the new X-Evolution-Message type format.
* folder-browser.c (selection_get): Convert the
X-Evolution-Message clipboard type to whatever format the target
wants.
(message_list_drag_data_get): Update because the
X-Evolution-Message type changed.
(folder_browser_copy): Same.
(x_evolution_message_parse): And here too.
svn path=/trunk/; revision=10853
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 Peter Williams <peterw@ximian.com>
Prevent folders from appearing to have -1 new messages. Prevent
nonactive folders from updating the title bar. Make the title
bar update when switching to an already-opened folder.
* mail-folder-cache.c (update_message_counts): Ignore the value for
'unread' if it is -1.
(get_mail_info_receive): Same
(mail_folder_cache_note_folderinfo): Same.
(get_folder_info): Initialize 'fb' to NULL.
(mail_folder_info): Add 'fb' member.
(mail_folder_cache_note_fb): Change note_message_list to this.
(update_idle): Only update the ShellView if the active folder browser
is the same as the one that the MFI references.
(mail_folder_cache_set_folder_browser): New function. Use it to set
the active folder browser. NULL is okay.
(check_for_fb_match): Called from the above. If the MFI has the
new folder browser as its view, queue an update.
* mail-folder-cache.h: Fix prototypes.
* mail-callbacks.c (create_folders): Check if fi->url is nonnull.
* folder-browser.c (got_folder): Change to use note_fb instead of
note_messge_list.
* folder-browser-factory.c (control_activate): Set the folder browser
(control_deactivate): Clear it here.
(fb_get_svi): Kill some inappropriately cut-n-pasted code.
svn path=/trunk/; revision=10755
2001-07-03 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (message_list_drag_data_get): Use mkdtemp if we
have it, else use mktemp but make the code safer than it was
previously.
* mail-display.c (launch_cb): Free the template string if the
tempdir failed to be created.
svn path=/trunk/; revision=10753
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-28 Jeffrey Stedfast <fejj@ximian.com>
* mail-config.c (mail_config_write_on_exit): Don't bother trying
to save the passwd if the url is NULL.
* folder-browser.c (vfolder_mlist): Strip the mlist name to fix
bug #3732.
svn path=/trunk/; revision=10571
2001-06-28 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (destination_folder_handle_drop): Since we
have an exception variable, we might as well use it when getting
folders too.
* folder-browser.c (message_list_drag_data_recieved): Call
gtk_drag_finish.
svn path=/trunk/; revision=10568
* mail-tools.c (mail_tool_uri_to_folder): After finding a folder,
attach to its "folder_changed" and "message_changed" signals.
(update_unread_count, update_unread_count_main): Moved here from
folder-browser but basically unchanged. Doing this here lets us
get folder tree updates for folders that have had messages
moved/copied/filtered into them, but which don't yet have a view
associated with them.
* folder-browser.c (update_unread_count, update_unread_count_main,
etc): Moved to mail-tools.c
svn path=/trunk/; revision=10567
2001-06-27 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c: Fixed Cut/Copy/Paste to work - it turns out I
couldn't share a single GtkInvisible between all the
FolderBrowser's after all.
svn path=/trunk/; revision=10536
2001-06-26 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (my_folder_browser_init): Helps if I spell
"received" correctly.
* mail-config.c (mail_config_set_thread_list): If the value is
already in the hash table, first remove it before setting the new
value so we don't leak.
(mail_config_set_show_preview): Same.
svn path=/trunk/; revision=10510
2001-06-26 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (message_rfc822_dnd): No longer returns a
gboolean and also takes a CamelException.
(destination_folder_handle_drop): Do better error checking.
* folder-browser.c (my_folder_browser_init): Connect to the
tree-drag-data-recieved signal.
(message_list_drag_data_recieved): New function that handles the
recieving end of the DnD event.
(x_evolution_message_parse): New convenience function to parse the
x-evolution-message type so that the cut/paste and DnD code can
share it.
(selection_received): Use x_evolution_message_parse().
svn path=/trunk/; revision=10502
2001-06-25 Joe Shaw <joe@ximian.com>
* folder-browser.c (invisible_destroyed): Check to make sure that
clipboard_selection is non-NULL before we g_byte_array_free() it.
svn path=/trunk/; revision=10495
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