* 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
* folder-browser.c (my_folder_browser_init): Connect to
key_press_event on the GtkHTML widget.
(etree_key): Only handle space/backspace here, pass the rest off
to on_key_press.
(on_key_press): Handle Delete/N/P/Menu in either MessageList or
MailDisplay.
* message-list.c (message_list_select): Grab focus if we don't
have it.
svn path=/trunk/; revision=9694
* folder-browser.c (folder_browser_destroy): Unhook event handlers
before syncing the folder, since the folder browser will have been
destroyed by the time the sync thread completes and calls the
signal handlers.
svn path=/trunk/; revision=9630
2001-04-24 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c: Added a new signal, "message_loaded" that gets
emitted when the message has been loaded and set on the
mail_display.
(folder_browser_class_init): Define the "message_loaded" signal
stuff.
(done_message_selected): Emit the "message_loaded" signal here.
* message-browser.c (message_browser_next_msg): Do our own
message-list manipulation. We want the next message, not the next
unread message.
(message_browser_prev_msg): Same here but for previous.
(message_browser_new): Connect to the folder browser's
"message_loaded" signal.
(message_browser_folder_loaded): Don't connect to the
message-list's "message_selected" signal.
(message_browser_message_loaded): Nw callback which replaces the
old message_browser_message_selected callback's functionality.
svn path=/trunk/; revision=9551
* folder-browser.c: Add accelerators to the context menu.
(on_right_click): Use e_tree_get_cell_geometry and a
GtkMenuPositionFunc when responding to a Menu-key press so we can
line the menu up with the selected row rather than the cursor.
* message-browser.c: include <gal/util/e-util.h> for E_MAKE_TYPE.
svn path=/trunk/; revision=9547
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
2001-04-22 Gediminas Paulauskas <menesis@delfi.lt>
* folder-browser.c, mail-autofilter.c, mail-callbacks.c, mail-ops.c,
mail-summary.c, mail-vfolder.c: use system = EVOLUTION_DATADIR "/file"
instead of g_strdup_printf. Rename userrules to user (and system) to be
consistent.
* mail-send-recv.c: set window icon to send-receive.xpm
2001-04-21 Gediminas Paulauskas <menesis@delfi.lt>
* mail-summary.c: translate "Mail summary".
svn path=/trunk/; revision=9490
2001-03-29 Kjartan Maraas <kmaraas@gnome.org>
* *.*: Cleaned up #includes. Remove unneccesary includes of
<gnome.h>, <gtk/gtk.h>, <bonobo.h> and replaced with more
fine grained headers where needed. Also marked a bunch of
strings for translations and added some missing prototypes.
svn path=/trunk/; revision=9025
2001-03-20 Christopher James Lahey <clahey@ximian.com>
* folder-browser.c (etree_key): Made this check if the control
mask is set.
svn path=/trunk/; revision=8844
2001-03-19 Christopher James Lahey <clahey@ximian.com>
* configure.in: Bumped gal requirement to 0.5.99.8.
From addressbook/ChangeLog:
2001-03-19 Christopher James Lahey <clahey@ximian.com>
* Merged branch:
2001-03-14 Christopher James Lahey <clahey@ximian.com>
* gui/widgets/e-minicard-view.c: Call
e_selection_model_simple_insert_rows and
e_selection_model_simple_delete_rows instead of
e_selection_model_simple_insert_row and
e_selection_model_simple_delete_row.
End of branch
From mail/ChangeLog:
2001-03-19 Christopher James Lahey <clahey@ximian.com>
* Merged e-tree-rework-branch:
2001-03-18 Christopher James Lahey <clahey@ximian.com>
* message-list.c: Added has_save_id and get_save_id methods.
* subscribe-dialog.c: Added arguments for
e_tree_memory_callbacks_new of get_save_id and has_save_id to
NULL.
2001-03-16 Christopher James Lahey <clahey@ximian.com>
* message-list.c: Added a call to
e_tree_memory_set_expanded_default to TRUE. Removed all calls to
set_expanded on nodes while the tree is frozen since this fails
miserably now.
2001-03-13 Christopher James Lahey <clahey@ximian.com>
* message-list.c (message_list_get_layout): Turned off draw-grid.
2001-03-09 Christopher James Lahey <clahey@ximian.com>
* folder-browser-factory.c, folder-browser.c, message-list.c,
message-list.h, subscribe-dialog.c, subscribe-dialog.h,
mail-callbacks.c: Converted these all to use ETree instead of
ETable.
End of branch
From shell/ChangeLog:
2001-03-19 Christopher James Lahey <clahey@ximian.com>
* Merged e-tree-rework-branch:
2001-03-19 Christopher James Lahey <clahey@ximian.com>
* e-storage-set-view.c (etree_get_save_id): Made "root" detection
deal properly with removed nodes.
2001-03-18 Christopher James Lahey <clahey@ximian.com>
* e-shell-view.c (e_shell_view_save_settings): Added some unused
code to implement saving of the expanded state.
* e-storage-set-view.c: Added has_save_id and get_save_id methods.
2001-03-13 Christopher James Lahey <clahey@ximian.com>
* e-storage-set-view.c (ETREE_SPEC): Set draw-grid here to false.
2001-03-09 Christopher James Lahey <clahey@ximian.com>
* e-storage-set-view.c, e-storage-set-view.h: Chaned this to use
ETree instead of ETable.
End of branch
svn path=/trunk/; revision=8839
2001-03-19 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser-factory.c: Add Resend Message menu item.
* folder-browser.c (on_right_click): Add resend to the right-click
menu.
* mail-callbacks.c (composer_sent_cb): Unref the message.
(composer_postpone_cb): Unref the message here too.
(resend_msg): New callback to allow resending of messages in the
Sent folder.
svn path=/trunk/; revision=8816
2001-03-17 Not Zed <NotZed@Ximian.com>
* mail-mt.c (mail_msg_free): Move the proxy event outside the lock
(otherwise we always deadlock).
* mail-local.c (reconfigure_clicked): Clear the message list
during update inside the folder thingy. This is a hell mess, need
to move the gui stuff to mail-callbacks and make this reconfigure
thing a more generic func.
* message-list.c (ml_value_to_string): Cleanup the logic to use
lookup tables.
(sort_uid_to_rows): Removed due to rewrite below.
(build_flat_diff): Changes for node/summary/etc changes. Also do
changed nodes too.
(clear_tree): Free the info reference for nodes in our hashtable.
(build_subtree): Ref the info reference in our hash/tree node.
(on_click): Dont free message info, since we just got our ref to
it.
(remove_node_diff): Free messageinfo off node.
(build_flat): Ref messageinfo.
(message_list_set_folder): Allow a NULL folder to be set -
i.e. clear the view.
(message_list_set_folder): Emit a no message sleeted signal.
(build_tree): Change cursor keeping stuff to work with new info.
Turned off BROKEN_ETREE - well maybe it'll work. Check for
duplicate messages displayed, etc.
2001-03-16 Not Zed <NotZed@Ximian.com>
* message-list.h: Added uid_nodemap; mapping of uid's to e-tree
nodes.
* message-list.c (build_flat): Changed to take a summary argument,
and to store node in node map, etc, and store info's in e-tree.
(build_subtree): Changed to store node in node map, and to store
info's in tree directly.
(ml_tree_value_at): Changed to get info directly from tree node,
removed allocated return value logic.
(ml_tree_value_at): Removed all "fake node" handling, no fake
nodes should ever exist.
(id_is_uid, id_is_subject, id_uid, id_subject): Removed macro's no
longer used.
(new_id_from_uid, new_id_from_subject): Removed no longer used.
(get_message_uid):
(get_message_info): Treat tree node data as messageinfo.
(message_list_select): Dont free the messageinfo, as its part of
our data, not retrieved from folder.
(message_list_drag_data_get): ditto.
(subtree_unread): Treat tree node data as messageinfo.
(subtree_size): ditto.
(subtree_earliest): ditto.
(clear_tree): Reset uid_nodemap on clear.
(save_node_state): tree nodes == messageinfo's.
(add_node_diff): ditto.
(remove_node_diff): ditto.
(main_folder_changed): use uid_nodemap to lookup changed nodes.
(main_message_changed): ditto.
svn path=/trunk/; revision=8775
2001-03-08 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (on_double_click): Call open_msg here so that
it does the Right Thing (tm).
svn path=/trunk/; revision=8600
2001-02-27 Miguel de Icaza <miguel@ximian.com>
* gui/e-day-view.c (e_day_view_on_event_right_click): Reorganize
the menus to have entries always in a consistent fashion, as
reported to the genepool mailing list.
(e_day_view_on_event_right_click): Added a FIXME comment to the
FIXME comment without a FIXME.
Now we use e_popup_menu. This allows us to hide/show items on
demand, and to sensitize/de-sensitize items depending on their
state.
This will also let us add icon support (when we get nice icons for
this)
* gui/e-week-view.c (e_week_view_show_popup_menu): Ditto.
The files popup-menu.c and popup-menu.h can now be removed.
2001-03-01 Miguel de Icaza <miguel@ximian.com>
* folder-browser.c (on_right_click): Move the context menus to
the toplevel code; Use enumerations for the various bitfield
constants.
Add support for hiding items that are not required (read/unread
and delete/undelete).
This requires my previous patch, as it assumes "Open" does the
right thing instead of having two operations: Open and Edit.
2001-02-28 Miguel de Icaza <miguel@ximian.com>
* folder-browser.c (on_right_click): Removed draft folders op
here, since open_msg now does the right thing (edit or view).
* folder-browser-factory.c (update_pixmaps): Removed MessageEdit
from here.
* mail-callbacks.c (open_msg): New function, does the "right
thing" to a message (either, edit or open).
* folder-browser-factory.c: Register new command here.
(update_pixmaps): Rename keys that have been shuffled around.
(update_pixmaps): Rename to match new updates on xml file.
Rename MessageOpenNewWindow to MessageOpen. Change action from
"view_message" to "open_message".
* mail-callbacks.c (mark_all_as_seen): New command. Marks all
messages as seen.
2001-03-06 Miguel de Icaza <miguel@ximian.com>
* evolution-tasks.xml: Added "File/New/Task" as well.
* evolution-mail.xml: Added "File/New/Mail Message" at the top
with binding C-n.
* evolution-calendar.xml: Set the binding for New Appointment to C-n
* evolution-contact-editor.xml: Set the toolbar to hlook=text
vlook=icon; Set all icons priority-text to 1.
* evolution-addressbook.xml: Added "Contact" to the New menu.
* evolution.xml: Provide an entry point to put "New" items on the
first level.
We are going to need some Bonobo support to "hide" objects when
other objects appear (like, having Mail Message bound to C-S-X in
the global space, and when we switch to Mail, we only show the
entry that has C-n as the binding).
2001-02-28 Miguel de Icaza <miguel@ximian.com>
* evolution.xml: Moved Importer after the Folder operations per
Dan's proposal.
* evolution-addressbook.xml: Renamed Settings/AddressBook
Configuration to Tools/Settings.
Make all the items have "Print" items that use the same icon
instead of a collection of icons.
* evolution-calendar.xml: Moved "Calendar Preferences" from
"Settings" to "Tools/Settings".
* evolution-mail.xml: Settings menu is fully gone. All things
that run a dialog now end up in "Tools" while actions end up in
"Actions". Hence I am right.
Renamed "Mail Configuration..." to "Identieies and Servers"
Move MessageMarkAsRead, MessageMarkAsUnRead
to Edit menu. Add MessageMarkAllAsRead.
Remove "Print Message" from Message menu. Remove "Print Preview
Message" from Message menu. Leave them on the "File" menu.
Renamed "Reply to Sender" to "Reply" (awaiting Ettore's
permission).
Renamed "Messages" to "Actions".
Open Message renamed to "Open Selected Items" (as this is what it
actually does).
Moved "Save Message As" to "File" menu.
Added "Properties" to the File/Folder submenu.
Edit menu now looks like this: Message Move, Message Copy, Select
All, Invert Selection, Delete, Undelete, Mark as Read, Mark as
Unread. Some of them were moved from the "Messages" menu.
"Forward message" shortcut changed to C-f
Tools menu created.
Create Rule From message moved to "Tools".
* evolution.xml: Added Tools menu. Moved Edit/Customize to
Tools/Customize Toolbar.
Added File/Folder submenu. Duplicate "New Folder" in here.
2001-02-28 Miguel de Icaza <miguel@ximian.com>
* menus/gal-view-menus.c (build_menus): Add translation string
here.
svn path=/trunk/; revision=8572
2001-03-03 Not Zed <NotZed@Ximian.com>
* mail-tools.c: Remove very old camel lock stuff.
* mail-local.c (register_folder_registered): Add the local folder
as a potential vfolder source.
* folder-browser.c (got_folder): When we have a new folder,
register it as a potential vfolder source.
* mail-vfolder.c: Added the source rule to the vfolder_info.
(vfolder_refresh): Store the rule in the vfolder info, etc.
(vfolder_register_source): Function to register a newly opened
folder with us.
(vfolder_uri_to_folder): Save the folder in the vfolder_info too.
(source_finalise): Handle clenaup when the folder dies.
svn path=/trunk/; revision=8534
2001-03-01 Not Zed <NotZed@Ximian.com>
* folder-browser.c (folder_browser_search_menu_activated): Fixes
for changes to search bar.
(search_save): Removed.
(search_full): Removed.
(search_full_clicked): Removed.
(folder_browser_search_option_items[]): Removed.
(folder_browser_search_query_changed): Changed for search bar
changes.
(folder_browser_clear_search): Removed.
* mail-vfolder.c (vfolder_clone_rule): New function to clone a
filter/search rule into a matching vfolder rule.
* mail-send-recv.c (mail_receive_uri): Setup a timeout for status
updates.
(build_dialogue): Setup timeout id for status updates.
(operation_status_timeout): New function to set the status via a
timeout.
(receive_done): Remove the timeout handler if we need to.
(operation_status):
(receive_status): Just update the info, and let the timeout
handler update the gui.
(do_free_status):
(do_show_status): Removed gui thread status message processing.
2001-02-28 Not Zed <NotZed@Ximian.com>
* folder-browser.c (folder_browser_config_search): New function to
configure the FilterRule for the search mechanism.
2001-02-27 Not Zed <NotZed@Ximian.com>
* folder-browser.c (folder_browser_gui_init): Setup the search bar
as a filterbar.
(got_folder): Set the whole search bar sensitive or not based on
the search capability of the folder.
* folder-browser.h: Changed to use efilterbar instead of esearchbar.
svn path=/trunk/; revision=8438
* mail-vfolder.c (vfolder_gui_add_from_mlist): Rule to add mlist
vfolder.
* mail-autofilter.c (filter_gui_add_for_mailing_list): Removed.
(rule_from_mlist): Build a generic match rule from an mlist.
(vfolder_rule_from_mlist): Setup the vfolder rule for an mlist.
(filter_rule_from_mlist): Setup a filter rule fro an mlist.
(filter_gui_add_from_mlist): GUI thingy to do the work.
* folder-browser.c (on_right_click): Added vfolder on mailing list
to filter menu.
(on_right_click): Use header_raw_check_mailign_list instead of
mlist magic to get the mailing list name.
(filter_mlist): Changed to use new add_from_mlist() call.
(vfolder_mlist): New function for vfolder from mlist.
svn path=/trunk/; revision=8358
2001-01-27 Christopher James Lahey <clahey@helixcode.com>
* folder-browser.c (etable_key): Don't handle home and end keys
since %ETable deals with them now.
svn path=/trunk/; revision=7865
2001-01-26 Not Zed <NotZed@Ximian.com>
* message-list.c (build_tree): Define BROKEN_ETREE again, till we
get this stuff fixed better.
2001-01-25 Not Zed <NotZed@Ximian.com>
* folder-browser.c: Moved teh "sender contains" item to the end of
the list, so the gui doesn't suddenly change on everyone. Fixed
the sender-contains search string to be a valid s-exp (ha, didn't
test it even once eh ettore?!)
(search_save): Dont have the sender contains as the default case
(which well, never gets called anyway), oops i guess i should've
reviewed the patch a little more.
svn path=/trunk/; revision=7835
2001-01-24 Not Zed <NotZed@Ximian.com>
* folder-browser.c (search_string[]): Fix the subject match
expression, which was missing a closing ).
* mail-send-recv.c (do_show_status): Escape any % signs in the
string before setting the format string.
svn path=/trunk/; revision=7797
2001-01-22 Not Zed <NotZed@Ximian.com>
* component-factory.c (owner_set_cb): remove a warning with
conditional news compilation.
* mail-ops.h: Cleaned up the header list.
* folder-browser-factory.c: Replace the old get_send mail with the
new one (button).
* mail-ops.c (set_x_mailer):
(mail_load_evolution_rule_context):
(mail_do_fetch_mail):
(mail_do_filter_ondemand):
(mail_send_mail_old):
(mail_do_send_queue): All removed, (for) now lives in mail-send-recv.c.
(load_context):
(setup_filter_driver):
(filter_get_folder):
(mail_filter_folder):
(mail_fetch_mail):
(mail_update_subfolders):
(mail_send_mail):
(mail_send_queue): New equivalents of all these fundtions, moved
from mail-send-recv.c ...
(mail_filter_on_demand): Moved here too.
(mail_load_filter_context): Export this.
* mail-callbacks.c (apply_filters): Use the new
mail_filter_on_demand() call.
(send_receieve_mail): Use mail_send_receive to do the work. Add a
little error handling here that used to be elsewhere.
(send_queued_mail): Removed.
(fetch_mail): Removed.
(select_first_unread): #ifdef'd this out. Not sure if this still
makes sense, but it doesn't get run right now anyway.
(composer_postpone_cb): Fix the setting of message flags. You
dont need to get them first, ever.
* mail-send-recv.c (mail_send_message): Dont use
mail_tool_send_via_transport anymore (it does nothing useful).
* mail-tools.c (mail_tool_camel_lock_up): Turned into a noop.
(mail_tool_camel_lock_down): And here too.
(mail_tool_move_folder_contents): Removed from the code (hasn't
bene used for ages).
(mail_tool_send_via_transport): Removed, it doesn't save anything.
svn path=/trunk/; revision=7702
* mail-display.c (pixmap_press): Update for e_popup_menu_run
change.
* folder-browser.c (etable_key): On GDK_Menu (the menu key on
105-key keyboards), pop up the right-click menu.
(on_right_click): update for e_popup_menu_run change.
svn path=/trunk/; revision=7662
2001-01-07 Jeffrey Stedfast <fejj@helixcode.com>
* mail-callbacks.c (check_send_configuration): Updated to reflect
changes to the mail-config API.
(create_msg_composer): Same.
(forward_get_composer): Same.
(send_queued_mail): Same.
(composer_send_cb): Same.
* mail-account-editor.c: Updated to build cleanly. *
mail-config-druid.c: Same. * mail-accounts.c: Same.
* folder-browser-factory.c (control_activate): Updated for API
changes in mail-config.
* folder-browser.c (done_message_selected): Updated for API
changed in mail-config.
(folder_browser_gui_init): Same.
(got_folder): Same.
* component-factory.c (owner_set_cb): After using the sources
list, free it as it is no longer a const GSList as with the older
mail-config code.
* mail-config.c: Totally rewritten.
svn path=/trunk/; revision=7294
* folder-browser.c (got_folder): Connect to "message_changed" on
the folder if it's on a remote storage.
(update_unread_count): Update the folder unread count / highlight
in the shell when the unread message count changes
svn path=/trunk/; revision=7249
2001-01-04 Not Zed <NotZed@HelixCode.com>
* mail-ops.c (mail_do_send_mail): Removed old implementation.
* folder-browser.c (do_message_selected): If we haven't got a real
uid, then clear the display instead.
* message-list.c (message_list_drag_data_get): Use new save
message function, and also wait for it to finish before
continuing.
(folder_changed):
(message_changed): Use mail_proxy_event instead of
mail_do_forward.
(mail_regen_list): New iplementation to replace the old.
: remove <gnome.h> from headers. Dont define timeit by default.
(main_folder_changed):
(message_list_set_folder):
(message_list_set_threaded):
(message_list_set_search):
(message_list_hide_add):
(message_list_hide_uids):
(message_list_hide_clear): Use mail_regen_list instead of
mail_do_regenerate_messagelist.
(mail_do_regenerate_messagelist): Removed the old stuff. No
functionality changed yet, just using different thread stuff.
* mail-callbacks.c (save_msg_ok): Use new save message function.
* component-factory.c (create_view):
(add_storage): Use mail_scan_subfolders to build the folder info.
(create_folder): Use new implementation with our own callback.
(owner_set_cb): Changed b ack to use mail_get_folder, but now wait
for it to finish. This will let any gui still run, but also gives
us the required synchronous operation.
(got_folder): Callback for when the folder has been opened.
* mail-ops.c (mail_get_folderinfo): New function to just get the
folder info in another thread.
(mail_scan_subfolders): New scan subfolder implementation that
uses mail_get_folderinfo.
(mail_do_scan_subfolders): Removed old implementation.
(mail_create_folder): Nerw implementation to create a folder, only.
(mail_do_create_folder): Removed old implementation.
(mail_save_messages): New implementation, fixes a couple of minor
problems, and now provides a return so it can be waited on. Also
check that the writes worked, etc.
(mail_do_save_messages): Remove previous implementation.
(mail_do_flag_messages): Removed, nothing uses it.
(mail_do_flag_messages): Removed, nothing uses it anymore.
(mail_get_folder): REturn the operation id, so callers can wait
for it.
(sync_folder_desc):
(expunge_folder_desc): Add describe functions so we know what its
doing.
(mail_send_mail): More generic implementation of sending mail.
* mail-mt.c (mail_msg_new): Lock around seq increment. And insert
each new message into a hash table of active messages.
(mail_msg_init): Init the active message table.
(mail_msg_free): Remove the message from the active message table.
(mail_msg_wait): New function, waits for a message to be
processed, by id.
(mail_msg_check_error): Dont display the error if it is a
user-cancelled operation.
(mail_proxy_event): new implementation of mail_op_forward_event.
Only real difference is it uses the new thread stuff, and you can
wait for it to finish if you want.
(mail_proxy_event): If we're already in the main thread, just call
the function.
svn path=/trunk/; revision=7246
2001-01-02 Not Zed <NotZed@HelixCode.com>
* mail-callbacks.c (view_msg): Fix for mail_get_message change,
use queue thread.
* folder-browser.c (done_message_selected): Fix mail_Get_message
calls, use new thread.
(do_message_selected): "
* mail-ops.c (mail_get_message): Add a thread argument so callers
can specify which queue it executes on.
* mail-mt.c (mail_msg_free): Fix a free order problem.
(mail_msg_destroy): Call mail_msg_free to do the work.
(mail_msgport_replied): "
(mail_msgport_replied): Check/display errors if we get them.
(mail_msgport_received): If we have a describe function, say what
we're doing, also set busy/unbusy.
(mail_msgport_replied): Clear busy when we get a reply.
(mail_get_password): Unset busy.
(mail_msg_received): Set busy as we go.
(mail_msg_destroy): Unset busy when done.
(mail_status): Blah blah, new status interface, the other wans't
workable with the way the shell api works.
2000-12-29 Not Zed <NotZed@HelixCode.com>
* folder-browser.c (do_message_selected): If we are reconfiguring,
just keep polling till we are done (yeah kinda shitty, but easy).
(folder_browser_set_uri): Clear reconfigure flag here. ick.
(got_folder): And here too.
(on_right_click): Remove locking.
(hide_sender): and here too.
(hide_subject): And here.
(on_right_click): If we are in reconfigure, then the whole menu is disabled.
* mail-mt.c (status_busy_timeout): Clear the status_busy_timeout_id.
* mail-local.c (local_storage_new_folder_cb): Made getting folders
completely synchronous. The shell expects it, and it was only
synchronous before by a sideeffect.
(do_reconfigure_folder): Remove locking stuff.
(do_reconfigure_folder): Use our own much simpler copying routine
than that stupid move_folder_contents thing.
(update_progress): Use mail_status_message() instead.
(do_reconfigure_folder): Set the reconfigure flag during
reconfigure & set busy flag.
(cleanup_reconfigure_folder): clear busy flag.
* mail-tools.c (mail_tool_uri_to_folder): Remove the tool_lock
stuff.
(mail_tool_uri_to_folder_noex): Clear exception on exit.
(mail_tool_move_folder_contents): Get rid of this really stupid
function that is only used in one place.
* component-factory.c (owner_set_cb): Use direct calls to get the
folders, as this code must run synchronous. Remove the event wait
stuff.
* mail-callbacks.c (edit_msg): Call mail_get_messages, and create
the composers ourself.
(do_edit_messages): get_messages callback, create the composers
and connect to signals we need.
(view_msg): Dont call do_view_messages, just call
mail_get_messge for each to get them in parallel.
(do_view_message): view a single message.
* mail-ops.c (mail_edit_messages): Just use mail_get_messages
for this operation. Removed the other async operation stuff.
Changed my mind, just removed entirely.
(mail_do_view_messages): Removed.
(mail_do_setup_folder): Removed.
(mail_do_scan_subfolders): Make this run synchronously, as every
caller expects it to (even if they didn't realise).
2000-12-28 Not Zed <NotZed@HelixCode.com>
* mail-callbacks.c (send_queued_mail): Dont expunge the folder
here, but in send_queue, otherwise it might execute out of order.
(expunge_folder): Remove the talbe prechange stuff, and infact
references to the message_list folder, as we have our own folder.
Also, dont allow expunge if we're already expunging.
(expunged_folder): Clkear the expunging flag if we're finished.
* folder-browser-factory.c (control_deactivate): Likewise here.
Hrm, i thought this function required a callback, silly me.
* mail-tools.c (mail_tool_make_message_attachment): Remov e
locking.
* folder-browser.c (on_message_selected): Use a timeout handler so
we dont select immediately.
(folder_browser_set_uri): Changed to use mail_get_folder.
(got_folder): New callback called when get_folder is finished.
(folder_browser_destroy): Use new sync interface.
* mail-ops.c (mail_get_message): New function to asynchrounously
get a message.
: #define out mail_tool_camel_lock stuff entirely.
(mail_get_folder): New function to asynchrounously get a folder.
(mail_do_load_folder): Removed, replaced by more generic function
above.
(mail_do_display_message): Removed, replaced by the more generic
funciton get_message.
(mail_get_messages): New function to get a list of messages
asynchronously.
(mail_sync_folder): New interface to sync a folder async.
(mail_expunge_folder): New interface for expunging folder, with
callback.
(do_send_queue): Remove lock stuff, and expunge if (and only if)
successful, also sync the sent folder while we're at it.
* session.c (mail_session_request_dialog): Changed to use new
mail_get_password call.
* mail-mt.[ch]: New threading/interthread messaging framework.
* main.c (main): Init the message/thread system.
svn path=/trunk/; revision=7223
2000-12-16 Not Zed <NotZed@HelixCode.com>
* message-list.c (build_tree): Always use the slow (full-update)
version of the tree update code, to get around a bug(?) in etree.
(build_flat): Likewise.
2000-12-15 Not Zed <NotZed@HelixCode.com>
* mail-display.c (write_data_to_file): Dont blindly convert all
parts to utf8, e.g. image/jpg. We only convert text/* parts, and
only then if required.
2000-12-14 Not Zed <NotZed@HelixCode.com>
* component-factory.c (create_view): cast over a warning.
* folder-browser-factory.c: Add verbs for hide functions.
* message-list.c (message_list_hide_clear):
(message_list_hide_uids):
(message_list_hide_add): Some api renaming.
(message_list_hide_add): Allow ML_HIDE_SAME to be passed to mean
not to change the upper/lower range at all.
(hide_save_state): Save the state of the hide list to stable
storage.
(hide_load_state): Load the state of hte hide list.
(message_list_set_folder): Load/save the state of the folder if it
is changed/set.
(message_list_destroy): Save the state of the folder hide list
when done.
(save_tree_state): If we wrote out an empty state file, simply
remove it instead.
* folder-browser.c (on_right_click): Add some hide menus.
(hide_read): Hide read messages.
(hide_deleted): Hide deleted messages.
(hide_selected): Hide selected/current message.
(hide_none): Show all hidden messages.
(on_right_click): Lock around accesses to the message (inside
mlist_detect_magic).
(on_right_click): Free the mailing list name.
2000-12-13 Not Zed <NotZed@HelixCode.com>
* folder-browser.c (on_right_click): Add camel locking since we
call it directly. Whoever heard of a lock you 'down' to unlock?
* message-list.c (mail_do_regenerate_messagelist): Added hide
expression, messages to hide. Fixed all callers.
(do_regenerate_messagelist): IF we have a hide expression, search
and remove those from the uid list. If we have a hide range,
apply that afterwards.
(cleanup_regenerate_messagelist): Handle freeing the hide uid
temporary data, if required.
(message_list_destroy): Free hide data, also lock around all camel
object stuff.
(message_list_length): New function to get the number of messages
avaialble to be hidden by range.
(message_list_set_hide): Set the hide expression and range.
Issue: Should hiding be remembered?
(message_list_unhide_all): Turn off all hiding.
(message_list_hide_uids): Hide a list of uid's.
svn path=/trunk/; revision=7061
2000-12-13 Christopher James Lahey <clahey@helixcode.com>
* folder-browser.c (my_folder_browser_init): Made the vertical
scrollbar always be there.
* message-list.c (message_list_get_layout): Changed the minimum
width of some of the pixmap column headers.
svn path=/trunk/; revision=6983
* message-list.c: Remove the never-once-used BonoboObject stuff
and make MessageList be a GtkWidget instead. Also, keep track of
the ETable directly rather than repeatedly calling
e_table_scrolled_get_table.
* folder-browser.c (folder_browser_destroy): Use gtk methods
rather than bonobo methods to destroy the message list.
(on_right_click, on_double_click): These are being attached to the
ETable directly now, so fix the first argument (which isn't being
used anyway, but...)
(folder_browser_gui_init): simplify now that MessageList itself is
a widget. Also use message_list->table rather than
e_table_scrolled_get_table.
* mail-local.c (mail_local_reconfigure_folder): Add "mail_" to
the beginning of this function name to match its prototype and the
other vague namespace conventions in the mailer.
* mail-callbacks.c (select_all, invert_selection): Use ml->table.
(configure_folder): s/local_reconfigure_folder/mail_&/
svn path=/trunk/; revision=6908
2000-12-08 JP Rosevear <jpr@helixcode.com>
* folder-browser.c (on_double_click): the e-table double-click
signal now has extra params
svn path=/trunk/; revision=6880
2000-12-08 Christopher James Lahey <clahey@helixcode.com>
* folder-browser.c: Connect to signals on the ETable instead of
the ETableScrolled.
* subscribe-dialog.c: Used the e_table_scrolled_get_table function
instead of accessing the variable directly.
svn path=/trunk/; revision=6873
* mail-callbacks.c: (various)
* folder-browser.c (filter_mlist):
* mail-autofilter.c (filter_gui_add_from_message):
* mail-vfolder.c (vfolder_gui_add_from_message): Add some
g_return_if_fail()s to protect from crashes until the code to
enable/disable commands based on how many messages are selected is
done.
svn path=/trunk/; revision=6840
* folder-browser.c: Remove bits of filter-on-demand and toolbar
bug workaround cruft that don't do anything useful any more.
* mail-ops.c (cleanup_load_folder): unref the ref we added in
setup_load_folder.
svn path=/trunk/; revision=6812