2001-08-20 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (storage_create_folder):
camel_folder_create_folder can now return a heirachial tree so
subscribe to down the tree.
svn path=/trunk/; revision=12257
* evolution-test-component.c: Added display_name and description
to the type.
* evolution-shell-component.c (impl__get_supported_types): Pass
`display_name' and `description' here.
(evolution_shell_component_construct): Likewise.
* evolution-shell-component.h: New members `display_name',
`description' in `EvolutionShellComponentFolderType'.
* e-component-registry.c (register_type): New args @description
and @display_name. Pass to
`e_folder_type_registry_register_type()'.
(register_component): Pass the values returned in the sequence
from __get_supported_types.
* e-folder-type-registry.c: New members `display_name' and
`description' in `struct _FolderType'.
(folder_type_new): New args @description and @display_name.
Initialize the respective fields in the `FolderType' accordingly.
(folder_type_free): Free `display_name' and `description'.
(register_folder_type): New args @display_name, @description.
(e_folder_type_registry_register_type): New args @display_name,
@description.
(e_folder_type_registry_get_description_for_type): New.
(e_folder_type_registry_get_display_name_for_type): New.
* Evolution-ShellComponent.idl: Added `display_name' and
`description' fields to the `FolderType' struct.
svn path=/trunk/; revision=12245
2001-08-19 Jeffrey Stedfast <fejj@ximian.com>
* mail-mt.c (do_op_status): Allow the activity to be NULL if there
isn't a global_shell_client so that we don't try and report status
updates when the shell is destroyed.
* mail-config.c (add_shortcut_entry): Return if there isn't a
global_shell_client.
* component-factory.c (owner_set_cb): set the global_shell_client
here and connect to the destroy signal.
* mail-vfolder.c (vfolder_create_storage): Use an extern global_shell_client.
svn path=/trunk/; revision=12242
2001-08-13 Peter Williams <peterw@ximian.com>
* component-factory.c (user_create_new_item_cb): New function,
handle "user creatable items".
(component_fn): Tell the shell that we're capable of creating
mail messages.
svn path=/trunk/; revision=11965
2001-08-13 Jason Leach <jleach@ximian.com>
* mail-local.c (get_folder): Fix this so it can actually get
folders from the hash of folders on the local store (it was
looking up plain @folder_name, which is typically "mbox", instead
of the full URI, /home/jleach/evolution/local/Foo/mbox).
* component-factory.c (do_remove_folder): Rename to
remove_folder_done, more fitting for it's purpose.
(do_xfer_folder): Similar name change.
(do_create_folder): Similar name change.
(remove_folder): Don't notifyResult for the component here, we
will notify with our result in remove_folder_done.
(xfer_folder): Ditto.
* mail-vfolder.c (vfolder_refresh): Create new folders with unread
counts of "0" instead of #FALSE (which just happens to be #defined
as zero).
svn path=/trunk/; revision=11964
2001-08-08 Peter Williams <peterw@ximian.com>
* component-factory.c (mail_load_storages): Don't load the storage
if it isn't enabled.
(mail_remove_storage_by_uri): New function. Goes through the
gymnastics of getting a CamelStore from the URI and calling
mail_remove_storage. Copied from mail_delete().
(mail_load_storage_by_uri): Break out the storage-loading part of
mail_load_storages into a single function.
(mail_load_storages): Just call mail_load_storage_by_uri several
times.
* mail.h: Prototype our new _by_uri functions.
* mail-accounts.c (news_add_destroyed): Instead of hacking around
mail_load_storages, call mail_load_storage_by_uri.
(mail_delete): Move this chunk of code into
mail_remove_storage_by_uri.
(mail_able): Add or remove the storage as necessary, with our
new _by_uri functions.
* mail-config-druid.c (druid_finish): See news_add_destroyed above.
svn path=/trunk/; revision=11881
2001-08-08 Peter Williams <peterw@ximian.com>
[ Change this gtk_object_ref on the storage to a bonobo_object_ref ]
* component-factory.c (mail_lookup_storage): And here.
* mail-vfolder.c (mail_vfolder_get_vfolder_storage): And here.
svn path=/trunk/; revision=11791
2001-08-06 Jeffrey Stedfast <fejj@ximian.com>
* mail-config.glade: Added key accelerators to a bunch of the
config options and moved the Bcc and empty-subject checkboxes to
the composer tab where they belong.
* mail-callbacks.c (providers_config): Raise the dialog if it
exists already.
(manage_subscriptions): Raise the dialog if it already exists.
(main_select_first_unread): Removed (we haven't needed this code
in ages).
(select_first_unread): Same.
(save_msg_ok): If the path is empty, just return.
* mail-local.c (mail_local_reconfigure_folder): Raise the dialog
if it already exists.
svn path=/trunk/; revision=11719
2001-08-06 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (empty_trash): Yuck. Special case whether or
not we want to expunge all the trash folders syncronously or
asyncronously based on whether or not we are doing Empty-On-Exit
or emptying trash by user request respectively.
svn path=/trunk/; revision=11701
* component-factory.c (component_factory_init): Back to using
`bonobo_generic_factory_new()'.
(component_fn): Updated accordingly.
svn path=/trunk/; revision=11694
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
* component-factory.c (populate_folder_context_menu): Added (unused)
table with strings intended to be translated (i18n tools can't extract
strings from XML data inside .c file).
svn path=/trunk/; revision=11458
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-24 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (guess_me): Do a case-insensitive comparison.
(mail_generate_reply): Only resort to the source account's
identity if we can't find out which identity to use based on the
recipients of the message first.
* mail-config.c (mail_config_get_default_account): Make sure to
return the 0th account if we don't have a default. We don't want
to return NULL.
* mail-callbacks.c (empty_trash): Use mail_tool_get_trash for the
remote store trash folders.
* mail-tools.c (mail_tool_get_trash): New convenience function.
svn path=/trunk/; revision=11353
2001-07-24 Not Zed <NotZed@Ximian.com>
* component-factory.c (create_folder): Dont call notifyResult here
if we've just launched a thread to do the work, it calls it
itself. This apparently breaks the importers, but thats a
different issue.
svn path=/trunk/; revision=11335
the ShellComponent interface. Updated the EvolutionShellComponent
GTK+ wrapper and all the component accordingly. Get the calendar to
use this so it can delete both tasks and calendar folders.
svn path=/trunk/; revision=11300
2001-07-20 Peter Williams <peterw@ximian.com>
* component-factory.c (storage_remove_folder): Don't let the user
remove vtrash folders.
svn path=/trunk/; revision=11267
2001-07-20 Peter Williams <peterw@ximian.com>
* mail-mt.c (mail_msgport_replied): Fix DanW's fix. Pass the right
arguments to mail_msg_destroy.
* component-factory.c (component_fn): Don't populate the context
menu; our only action didn't even work.
(populate_folder_context_menu): Removed. ChangeFolderProperties
needs a FolderBrowser which we don't have. It didn't even work
before.
* mail-local.c (mail_local_reconfigure_folder): Bring the creation
of the hash table to the beginning to prevent warnings. Complain
if the mailbox is non-local.
svn path=/trunk/; revision=11266
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-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 Jeffrey Stedfast <fejj@ximian.com>
* mail-ops.c (add_vtrash_info): Use g_strcasecmp() when looking
for a Trash folder - it may be lowercase or something funky.
* mail-local.c (init_trash): No need to specify the vfolder
expression here. This code was moved into camel-vtrash-folder.c
ages ago.
* component-factory.c: Let VTrash folders accept/export the same
dnd types as normal folders.
svn path=/trunk/; revision=11140
2001-07-16 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c: Let VTrash folders accept/export the same
dnd types as normal folders.
svn path=/trunk/; revision=11134
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
that it only happens in the mailer (which is the only component
actually using this).
For some reason it still doesn't work properly (i.e. the menu item
currently does nothing), but I haven't quite figured out why yet.
svn path=/trunk/; revision=10840
2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
* mail-accounts.c (construct): Setup the Empty Trash On Exit
widgets.
* mail-config.c (config_read): Option to emtpy trash on exit.
(mail_config_write_on_exit): Same.
(mail_config_set_empty_trash_on_exit): Set the option.
(mail_config_get_empty_trash_on_exit): Get the option.
* component-factory.c (owner_unset_cb): Empty the trash folders if
the user set the "empty trash on exit" option.
svn path=/trunk/; revision=10711
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-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
`external_uri_schemas' attribute. Update the EvolutionShellComponent
GTK+ wrapper accordingly. Update all the components to pass a NULL
`external_uri_schemas' list when initializing themselves as
EvolutionShellComponents.
svn path=/trunk/; revision=10548
* 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-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-19 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c: #include "folder-browser-factory.h"
* component-factory.c (mail_remove_storage): New function to
remove an EvolutionStorage.
* mail-accounts.c (mail_delete): Remove the storage from the
folder-tree.
(news_delete): Same.
svn path=/trunk/; revision=10304
2001-06-19 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (destination_folder_handle_drop): Accept
text/uri-list mime types - this allows us to drag messages from
Nautilus into an Evolution folder.
* folder-browser.c (message_list_drag_data_get): Do cleanup and
better error handling.
svn path=/trunk/; revision=10296
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>
* component-factory.c: Change the drop-type "x-evolution-dnd" to
"x-evolution-message" since we want to be able to DnD more than
one data type ;-)
* folder-browser.c: Change supported DnD drop types to disclude
URI_LIST as that seems to crash Nautilus and seems overly
complicated. Since I am going to be supporting message/rfc822,
hopefully Nautilus can handle that or else maybe something like
text/plain.
(message_list_drag_data_get): Remove the code for URI_LIST.
svn path=/trunk/; revision=10264
2001-06-14 Not Zed <NotZed@Ximian.com>
* mail-tools.c (mail_tool_uri_to_folder): If we have a fragment in
the url, use that as the folder name, and not the path component.
2001-06-13 Not Zed <NotZed@Ximian.com>
* component-factory.c (mail_load_storages): Added temp hack to let
spool providers show up in the list.
svn path=/trunk/; revision=10263
2001-06-15 Jeffrey Stedfast <fejj@ximian.com>
* mail-ops.c (mail_send_message): Fixed misuse of an uninitialized
variable.
* component-factory.c (destination_folder_handle_drop): Implemented.
* mail.h: Added prototype for evolution_folder_info_factory_init.
* mail-ops.c (mail_do_transfer_messages): Now takes a const char*
as the dest_uri. This works better all around since we strdup'd
the string anyway.
svn path=/trunk/; revision=10255
2001-06-14 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (got_folder): Updated to reflect changes to
mail_config_[g,s]et_thread_list().
(folder_browser_toggle_threads): Same.
* folder-browser-factory.c (control_activate): Updated to reflect
changes to mail_config_[g,s]et_thread_list().
* mail-config.c (mail_config_write_on_exit): Do cleanup when we're
done.
(mail_config_set_thread_list): Send in a URI so we can save the
state on a per-folder basis.
(mail_config_get_thread_list): Send in a URI so we can retrieve
the state on a per-folder basis.
* component-factory.c: Setup the accepted_dnd_types. Also added
skeleton code for DnD.
svn path=/trunk/; revision=10240