Commit Graph

17 Commits

Author SHA1 Message Date
abafd9de4f Unref the driver before returning to main thread, so any closing
2002-08-06  Not Zed  <NotZed@Ximian.com>

        * mail-ops.c (filter_folder_filter): Unref the driver before
        returning to main thread, so any closing operations are handled
        async (as in fetch_mail_fetch()), for #28072.

        ** fixes for #24605.

        * mail-vfolder.c (vfolder_gui_add_from_mlist): Removed.

        * folder-browser.c (filter_type_uid,vfolder_type_uid): Changed to
        accept args directly.  Fixed callers.
        (filter_mlist_uid,vfolder_mlist_uid): Use filter_type_uid instead
        of mlist variant.
        (vfolder_type_current): new function to handle setup of vfolders
        from the main menu.  It now uses the vfolder_type_uid function the
        same as the popup.
        (vfolder_subject, vfolder_sender, vfolder_recipient,
        vfolder_mlist): Changed to use vfolder_type_current.
        (filter_type_current): Similar for filters.
        (filter_subject, filter_sender, filter_recipient,
        filter_mlist): Changed to use filter_type_current.

        * mail-autofilter.c (rule_from_message): Handle AUTO_MLIST type.
        (rule_from_mlist):
        (vfolder_rule_from_mlist):
        (filter_rule_from_mlist): Removed.
        (filter_gui_add_from_mlist): Removed.

        * mail-autofilter.h: Added AUTO_MLIST type.

svn path=/trunk/; revision=17704
2002-08-06 02:45:07 +00:00
8ae13b9883 Changed to get the address from the messageinfo of the current selected
2002-03-26  Not Zed  <NotZed@Ximian.com>

        * mail-callbacks.c (addrbook_sender): Changed to get the address
        from the messageinfo of the current selected message rather than
        from the current_message.
        (requeue_mail_reply): Only re-queue if we got a message, could
        potentially cause an infinite loop trying to get a message it
        can't.
        (reply_to_sender, reply_to_list, reply_to_all): Always pass NULL
        as the msg to mail_replay, this forces mail_reply to always load
        the message anew.  Fixes FIXME's and popup behaviour.  Basically
        this and stuff below fixes #8542.  Its probably not the nicest
        way, but it works.
        (mark_as_important): Use the flags properly, we can set all flags
        to any combination of on or off as we want, so we just need to
        call set_flags once, thats why its set flags and not set_option.
        (toggle_flags): Fixed the logic here also, so we dont have to call
        set_message_flags more than once, and also implement a true toggle
        for any number of simultaneous flags (whilst simplifying code).

        * mail-vfolder.c (vfolder_gui_add_from_mlist): Removed the 'msg'
        parameter, its not used, fixed callers.

        * folder-browser.c (on_right_click): Lookup the mlist from
        messageinfo, and change the 'no selected' logic slightly, fixes
        most of #8542.
        (filter_data_free): Free filter data struct.
        (vfolder_type_got_message): Actually create vfolder once we have
        the message we need to use for it.  Code could probably be changed
        to use messageinfo instead.
        (vfolder_type_uid): Lookup a message based on uid, and use that to
        create a vfolder based on type.
        (vfolder_subject_uid, vfolder_sender_uid, vfolder_receipient_uid,
        vfolder_mlist_uid): Callbacks for the popup menu, used to create
        rules based on the uid rather than the message, which it loads as
        required.
        (filter_type_got_message, filter_*_uid): Similar to vfolder
        stuff above.
        (filter_menu[]): Changed callbacks to popup specific ones, not
        folderbrowser specific ones used by bonobo.
        (on_right_click): Initialise callback data for the filter submenu
        so it can look up messages for callback implementation.

svn path=/trunk/; revision=16253
2002-03-26 06:55:05 +00:00
8
4689dccf16 Implemented. (mail_vfolder_rename_uri): We do want to check renamed uri's
2001-10-28    <NotZed@Ximian.com>

        * mail-vfolder.c (mail_vfolder_rename_uri): Implemented.
        (mail_vfolder_rename_uri): We do want to check renamed uri's from
        vstores.
        (mail_vfolder_delete_uri): Same.
        (store_folder_renamed): Fix the folder hash at the same time.

        * mail-folder-cache.c (real_flush_updates): Pass the rename event
        to vfolder rename uri.

        * mail-local.c (mail_local_folder_reconfigure): Change the store
        path to be same as parent + mbox to be full path.
        (mls_delete_folder): Change store path to be parent path, and mbox
        to be full path.
        (mail_local_folder_reconfigure): Fix a leak of tmpname.

        * component-factory.c (xfer_folder): Only do a rename if we have
        remove set, cleaned up logic a bit.
        (idle_quit): Put the components still active check last last of
        all.
        (storage_create_folder): IF we have a fragment, use that as part
        part for parent.

svn path=/trunk/; revision=14276
2001-10-28 05:11:53 +00:00
8
ae5590f88d Added remove flag - its not adduri, its removeuri, its less typing than
2001-10-18    <NotZed@Ximian.com>

        * mail-vfolder.c (vfolder_adduri): Added remove flag - its not
        adduri, its removeuri, its less typing than creating a removeuri.
        (vfolder_adduri_do): Implement the remove flag.
        (mail_vfolder_remove_uri): Changed to mail_vfolder_delte_uri, to
        indicate its actually been deleted.
        (mail_vfolder_add_uri): Added remove flag.
        (rule_changed): When adding existing folders to a new rule, strdup
        the list data.

        * mail-folder-cache.c (store_finalised): Unhook from all events
        when done.
        (mail_note_store_remove): Remove a store from being noted.
        (free_folder_info): Also if we have a folder, unhook all events.
        Also remove the uri from vfolders.
        (mail_note_folder): Remove warning about adding folders to stores
        that aren't added yet - we might actually be removing the store.

        * component-factory.c (mail_remove_storage): Call
        mail_note_store_remove when we remove the storage.

svn path=/trunk/; revision=13782
2001-10-19 00:45:02 +00:00
f620356a6f Call mail_vfolder_shutdown.
2001-10-15  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (owner_unset_cb): Call
	mail_vfolder_shutdown.

	* mail-vfolder.c (mail_vfolder_shutdown): Unref all of our
	VFolders.

	* mail-folder-cache.c (real_note_folder): Remember to unref the
	folder before returning if we have already noted this folder.

svn path=/trunk/; revision=13682
2001-10-15 20:18:08 +00:00
4
e46018cd88 If we're accessing a vfolder uri, then popup the vfolder editor instead of
2001-10-04    <NotZed@Ximian.com>

        * mail-callbacks.c (configure_folder): If we're accessing a
        vfolder uri, then popup the vfolder editor instead of trying the
        mail local one.

        * mail-vfolder.c (vfolder_edit_rule): Edit a vfolder by name.

svn path=/trunk/; revision=13419
2001-10-04 19:55:31 +00:00
8
4b14db5520 Emit folder_deleted event. (remove_find_path): Fix, compare against path,
2001-09-28    <NotZed@Ximian.com>

	* mail-local.c (mail_local_store_remove_folder): Emit
	folder_deleted event.
	(remove_find_path): Fix, compare against path, not full_name.

	* mail-tools.c (mail_tool_uri_to_folder): Dont
	vfolder_register_source anymore.

	* mail-vfolder.c (rule_changed): Changed to access
	mail_fodler_cahce to find out if the folder exist yet before
	trying to open them, also use the cache as a cache so we dont have
	to open the folder if its already been opened.
	(vfolder_register_source, register_source): Removed.
	(source_finalise): Removed,
	(check_source): Removed.  All handled through diff mechanism.
	(mail_vfolder_add_uri): New function, records uri's of available
	folders, and adds them to any active vfolders if required.
	(mail_vfolder_remove_uri): New function, removes a uri from
	available folders, and checks any rules to see fi they need
	updating.
	(vfolder_adduri): New async function to add a uri to all vfolders
	that need it.
	(store_folder_deleted): oops!  free user, not rule!!

	* mail-folder-cache.c: Add uri->folderinfo hashtable, and the
	store from which they come into the store info struct.
	Add uri to the folder_info.
	(setup_folder): Store the uri in the folderinfo.
	(setup_folder): And the uri in the folder_uri hashtable.
	(mail_note_store): Store the store in the storeinfo, and setup the
	folders_uri hashtable via the store's hash functions.
	(setup_folder): Call mail_vfolder_add_uri to note this newly setup
	folder uri.
	(store_folder_deleted): Proxy call to main thread.
	(real_folder_deleted): And tell the vfolder to remove this uri
	from its folder list.
	(setup_folder): Dont call vfolder_add_uri if noselect is set on
	the uri.

2001-09-27    <NotZed@Ximian.com>

	* mail-vfolder.c: Removed vfolder_info struct, vfolder_storage.
	Neither used anymore.

svn path=/trunk/; revision=13242
2001-09-28 23:54:30 +00:00
5
c2a0bf66ba Major rewrite of most of the guts, handle changes based on signals and
2001-09-15    <NotZed@Ximian.com>

        * mail-vfolder.c: Major rewrite of most of the guts, handle
        changes based on signals and events, etc.  Use the main storage
        handling code that imap uses, etc.

        * mail-tools.c (mail_tool_uri_to_folder): Dont special case
        vfolder: anymore.

        * component-factory.c (owner_set_cb): use vfolder_load_storage(),
        new function to setup vfolder storage, after interaction has been
        enabled only.  This might need some tweaking ...
        (storage_remove_folder): Removed all the folder lookup stuff.
        Just delete the folder based on the path passed in.  There should
        be no reason this wouldn't work, right?

2001-09-14    <NotZed@Ximian.com>

        * mail-ops.c (get_folderinfo_get): Only add vtrash folder info, if
        store supports vtrash.

        * component-factory.c (mail_load_storage_by_uri): Let 'vfolder'
        stores show up too.

2001-09-13    <NotZed@Ximian.com>

        * mail-vfolder.c (vfolder_uri_to_folder): Open a vfolder then set
        its expression, since name?query open method is removed.

svn path=/trunk/; revision=12856
2001-09-15 08:13:41 +00:00
e60ee74985 Connect to the folder_remove signal on the storage. (vfolder_remove): New
2001-08-02  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-vfolder.c (vfolder_create_storage): Connect to the
	folder_remove signal on the storage.
	(vfolder_remove): New function to remove a vfolder.

svn path=/trunk/; revision=11591
2001-08-02 18:36:39 +00:00
57574f0be3 Cleaned up #includes. Remove unneccesary includes of <gnome.h>,
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-29 20:53:17 +00:00
2de08e6b9a Remove very old camel lock stuff.
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-02 23:39:39 +00:00
f01589262c Fixes for changes to search bar. (search_save): Removed. (search_full):
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
2001-03-01 00:58:16 +00:00
5c9c2f33b9 vfolder/filter on mailing list. Doesn't acutally work right yet.
* 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-02-23 00:31:23 +00:00
63f1ba7ab1 New handy dandy function to ref and return the vfolder storage (will
2001-02-19  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-vfolder.c (mail_vfolder_get_vfolder_storage): New handy
	dandy function to ref and return the vfolder storage (will
	probably be disavowed once I figure out how to get the vTrash
	folder to show up in the EvolutionLocalStorage).

	* main.c (main): Call vtrash_cleanup().

	* mail-vtrash.c: New file.
	(vtrash_uri_to_folder): vtrash: URI handler
	(vtrash_create): Replacement async vtrash function for the old one
	in mail-ops.c
	(vtrash_cleanup): Cleanup code - unrefs the cached vtrash folders
	and free's the hashtable.

	* Makefile.am: Added mail-vtrash.[c,h].

	* mail-tools.c (mail_tool_uri_to_folder): If we have a vtrash:
	URI, call the vtrash URI handler function rather than continuing
	on. Yes, I know this is a hack and it needs to be fixed.

	* mail-ops.c (mail_do_setup_trash): Removed.
	(mail_trash_get): Removed.

	* component-factory.c (owner_set_cb): Create the vTrash folder for
	the LocalStore here.

	* mail-local.c (get_folder_info): Implement.

svn path=/trunk/; revision=8288
2001-02-19 23:38:53 +00:00
8cb514d6dd Merge with camel-async.
svn path=/trunk/; revision=4687
2000-08-10 17:30:50 +00:00
443b5a82a9 Helper function to add with confirm.
2000-08-09  Not Zed  <NotZed@HelixCode.com>

	* mail-autofilter.c (filter_gui_add_from_message): Helper function to add with confirm.

	* message-list.c (on_right_click): Added menu to install vfolders/filters from message.

svn path=/trunk/; revision=4646
2000-08-09 07:20:37 +00:00
72092414aa Configurable vfolder sources, and a button to save a search
as a new vfolder.

2000-07-31  Not Zed  <NotZed@HelixCode.com>

        * mail-vfolder.h: Header for vfolder functions.

        * folder-browser.c (mail_uri_to_folder): Use new scheme to open
        vfolders.
        (search_save): New button/function to save a search as a vfolder.

        * mail-vfolder.c (vfolder_edit): Made asynchronous.
        (vfolder_uri_to_folder): New function for loading vfolders and
        setting up their source folders.
        (vfolder_refresh): Change shell vfolder uri's to indirect
        references rather than the real vfolder uri.
        (vfolder_gui_add_rule): Add a rule with user confirmation.
        (vfolder_create_part): Get a new part by name, for creating rules
        in code.

        * message-thread.c (thread_messages): Check for uid lookup
        failure, which indicates an error in the folder or calling code.

svn path=/trunk/; revision=4422
2000-07-31 15:07:49 +00:00