* component-factory.c (folder_types): add "mail/public". Leave
"vtrash" as it is rather than renaming it to "mail/vtrash",
because we want it to behave differently from normal mail folders
more often than we want it to behave the same.
(type_is_mail, type_is_vtrash): utility funcs
(create_view, create_folder, remove_folder, xfer_folder,
populate_folder_context_menu, unpopulate_folder_context_menu,
destination_folder_handle_drop, storage_create_folder): Use
type_is_mail/type_is_vtrash.
(create_component): Register "New Post" with "mail/public" instead
of "mail" so it becomes the default New icon for it. (29024)
* mail-callbacks.c (transfer_msg): Use "mail/*" for allowed type.
* message-browser.c (transfer_msg): Likewise.
* mail-account-gui.c (mail_account_gui_new): Use "mail/*" instead
of "mail" here for sent/drafts allowed type. (?)
svn path=/trunk/; revision=18223
2002-09-18 Not Zed <NotZed@Ximian.com>
* component-factory.c (notify_listener_exception): helper to map a
camel excpeiton to a listener result.
(storage_create_folder): Use above to return more meaningful error.
(storage_remove_folder): "
(storage_xfer_folder): ". For #28209.
svn path=/trunk/; revision=18101
2002-09-17 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (mail_display_render): Use e_strftime_fix_am_pm
here which fixes locale issues as well as working around systems
that don't support %P (afaik).
* mail-ops.c (prep_offline_do): Cache important messages too.
svn path=/trunk/; revision=18095
2002-09-11 Not Zed <NotZed@Ximian.com>
* component-factory.c (configure_folder_popup): Handle file uri's
too.
* mail-callbacks.c (configure_folder): clear message list before
calling configure folder.
(local_configure_done): completion callback to reset message list
when done.
* mail-local.c (mail_local_reconfigure_folder): changed args to
accept uri, and done callback.
(reconfigure_got_folder): moved code to callback which presents
the configure uri once we have the folder.
svn path=/trunk/; revision=18039
* gui/component/addressbook-component.c (create_component): Pass
NULL as @unpopulate_folder_context_menu_fn to
evolution_shell_component_new().
* gui/component-factory.c (create_object): Pass NULL as
@unpopulate_folder_context_menu_fn to
evolution_shell_component_new().
* mail-account-gui.c (mail_account_gui_save): Remove unused
variable.
* component-factory.c (unpopulate_folder_context_menu): New.
(create_component): Pass it to evolution_shell_component_new().
* component-factory.c (create_component): Pass NULL as
@unpopulate_folder_context_menu_fn to
evolution_shell_component_new().
* e-storage-set-view.c (popup_folder_menu): Remove the context
menu items using
evolution_shell_component_client_unpopulate_folder_context_menu()
instead of doing it ourself, since BonoboUI sucks.
* evolution-shell-component-client.c
(evolution_shell_component_client_unpopulate_folder_context_menu):
New.
* evolution-test-component.c (register_component): Pass NULL as
@unpopulate_folder_context_menu_fn to
evolution_shell_component_new().
* evolution-shell-component.c: New member
unpopulate_folder_context_menu_fn in
EvolutionShellComponentPrivate. New member uic in
EvolutionShellComponentPrivate.
(init): Init new members to NULL.
(destroy): bonobo_object_unref() priv->uic if not NULL.
(evolution_shell_component_new): New arg
@unpopulate_folder_context_menu_fn.
(evolution_shell_component_construct): Likewise.
(impl_populateFolderContextMenu): Set priv->uic to the newly
created UIComponent.
(impl_unpopulateFolderContextMenu): New, implementation for the
::unpopulateFolderContextMenu CORBA method.
(class_init): Install.
* Evolution-ShellComponent.idl (unpopulateFolderContextMenu): New
method.
(AlreadyPopulated): New exception.
(populateFolderContextMenu): Can raise it.
(NotPopulated): New exception.
svn path=/trunk/; revision=17963
2002-09-04 Not Zed <NotZed@Ximian.com>
* component-factory.c (storage_xfer_folder): Dont translate / to
dir_sep anymore, we always use /.
svn path=/trunk/; revision=17944
2002-08-07 Peter Williams <peterw@ximian.com>
* component-factory.c (request_quit): If outbox_folder is NULL, don't
try and get its message count (this should never happen, but has.)
svn path=/trunk/; revision=17731
2002-08-05 Jeffrey Stedfast <fejj@ximian.com>
* mail-mt.c (mail_msg_check_error): If we are not in interactive
mode, don't display error dialogs.
* component-factory.c (interactive_cb): Updated to use the new
function mail_session_set_interactive().
(owner_unset_cb): Same here.
* mail-session.c (mail_session_set_interactive): Renamed from
mail_session_enable_interaction().
(mail_session_get_interactive): New function to get the
interactive state.
svn path=/trunk/; revision=17702
2002-08-05 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (user_create_new_item_cb): Updated to call
post_to_url if the id is "post".
* mail-callbacks.c (post_to_url): New function so that we don't
need a FolderBrowser to post a new message.
(post_message): Call post_to_url since they shared so much code.
svn path=/trunk/; revision=17698
* gui/component/addressbook-component.c (create_component): Change
the order so that "New Contact" is first and "New Contact List" is
next.
* gui/component-factory.c (create_object): Change the order of the
user creatable items a bit so that "New Appointment" and "New
Meeting" are at the top when in a calendar folder.
* component-factory.c (create_component): Put "New Mail Message"
before "New Message Post" instead of vice versa.
* evolution-mail-global.xml: Remove "New Mail Message" and "Post
Message" items.
svn path=/trunk/; revision=17661
* gui/component/addressbook-component.c (add_creatable_item): Pass
"contacts" as the @folder_type to
evolution_shell_component_add_user_creatable_item().
* gui/component-factory.c (add_creatable_item): New arg
@folder_type, pass it to
evolution_shell_component_add_user_creatable_item().
(create_object): Set the right folder types for the various
user-creatable items.
* component-factory.c (create_component): Pass "mail" as
@folder_type to
evolution_shell_component_add_user_creatable_item().
* evolution-test-component.c (register_component): Pass NULL for
@folder_type to
evolution_shell_component_add_user_creatable_item().
* e-shell-user-creatable-items-handler.c: New member folder_type
in struct MenuItem.
(ensure_menu_items): Initialize ->folder_type.
(item_is_default): New helper function.
(create_menu_xml): New arg @folder_type. Put the items on the top
using item_is_default().
(shell_view_view_changed_callback): Pass the folder type to
create_menu_xml().
* evolution-shell-component.c: New member folder_type in
UserCreatableItemType.
(user_creatable_item_type_new): New arg @folder_type.
(user_creatable_item_type_free): Free ->folder_type.
(evolution_shell_component_add_user_creatable_item): New arg
@folder_type.
(impl__get_userCreatableItemTypes): Set ->folderType in the
returned CORBA structs.
* Evolution-ShellComponent.idl: New member folderType in struct
UserCreatableItemType.
* e-shell-user-creatable-items-handler.c: New member component_id
in struct MenuItem. Removed member menu_xml from
EShellUserCreatableItemsHandlerPrivate.
(init): No need to initialize menu_xml here anymore.
(impl_destroy): ...And no need to free here, either.
(setup_menu_xml): New, derived from ensure_menu_xml(). This
orders the menu so that the items for the current component go at
the top.
(create_menu_xml): Removed.
(e_shell_user_creatable_items_handler_attach_menus): Set up
properly for the current component ID, using setup_menu_xml().
svn path=/trunk/; revision=17658
2002-07-26 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (create_component): Add a new menu item for
posting to the New toolbar button thing.
(destination_folder_handle_drop): Don't use a NULL exception when
we already have one to use anyway.
(got_folder): Move the *fp = folder; to before the check to make
sure folder != NULL, this makes it so that if getting a folder
fails at least have have a known value to look out for (NULL)
rather than some random garbage.
svn path=/trunk/; revision=17617
2002-07-26 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (create_component): Add a new menu item for
posting to the New toolbar button thing.
svn path=/trunk/; revision=17612
2002-07-24 Not Zed <NotZed@Ximian.com>
* component-factory.c (owner_set_cb): Initialise the standard
uri's before doing anything else.
* mail-vfolder.c (uri_is_ignore): Return true if the uri is any
sent, drafts or outbox folder uri.
(mail_vfolder_add_uri): Dont automagically add any
sent/outbox/drafts folder with "local" or "remote" etc rules, only
add sent folders if explictly listed as folder rules. Maintain
the remote/local folders list accordingly.
(vfolder_adduri_do): dont check against sent_folder, drafts_folder
or outbox_folder, this is checked by above code. For #14863.
svn path=/trunk/; revision=17564
2002-07-16 Jeffrey Stedfast <fejj@ximian.com>
* mail-accounts.c (account_able_clicked): Re-enable some #if 0'd code.
* mail-vfolder.c (vfolder_load_storage): Updated to not pass TRUE
for an auto_connect argument since that argument no longer exists.
* mail-account-gui.c (add_new_store): Updated to not pass an
auto_connect argument.
* component-factory.c (add_storage): Don't ever auto-connect here.
(mail_add_storage): No longer takes an auto_connect argument.
(mail_load_storages): Only load the account storages that are
enabled.
svn path=/trunk/; revision=17483
2002-07-15 Peter Williams <peterw@ximian.com>
* mail-offline-handler.c (service_is_relevant): Account for the case
that when a disco store is "online" but actually offline and we're
going online, we should actually connect it.
* component-factory.c (mail_load_storages): Always set auto_connect
to FALSE, same reason as below.
* mail-session.c (mail_session_init): Initialize our session to not be online,
since the shell will tell us to go online if we need to.
svn path=/trunk/; revision=17459
2002-07-10 Not Zed <NotZed@Ximian.com>
** fixes for #10781
* mail-callbacks.c (filter_edit): Add back a cancel button. We
dont need to do anything special to 'undo' here, as the rules are
loaded every time they're used.
* mail-vfolder.c (vfolder_editor_clicked): If ok wans't clicked,
revert the ruleset.
(vfolder_editor_destroy): Fake a button of -1 if we get destroyed
with no click.
(context_rule_removed): Unref the folder after we delete it. If
we're the last ref to the folder, unrefing it means it no longer
exist,s which means no delte processing occurs ...
svn path=/trunk/; revision=17449
2002-07-03 Jeffrey Stedfast <fejj@ximian.com>
* mail-vfolder.c (vfolder_load_storage): Pass TRUE as the
auto_connect argument to mail_load_storage_from_uri().
* mail-account-gui.c (add_new_store): Pass FALSE as the
auto_connect value to mail_load_storage_from_uri().
* mail-format.c (handle_multipart_encrypted): Pass the correct
pointer into camel_multipart_encrypted_decrypt().
* component-factory.c (mail_add_storage): Now takes an
auto-connect argument which it passes along to add_storage().
(mail_load_storage_from_uri): Same.
(add_storage): Only call mail_note_store() if we plan on
auto-connecting.
svn path=/trunk/; revision=17363
* gui/component/addressbook-component.c (add_creatable_item): New
arg @tooltip; pass it to
evolution_shell_component_add_user_creatable_item() [which now has
a @tooltip arg].
* gui/component-factory.c (add_creatable_item): New arg @tooltip.
Pass it to evolution_shell_component_add_user_creatable_item(),
which now has a @tooltip arg.
(create_object): Added tooltips.
* component-factory.c (create_component): Pass a tooltip to
evolution_shell_component_add_user_creatable_item.
* e-shell-user-creatable-items-handler.c: New member tooltip in
struct MenuItem.
(ensure_menu_items): Initialize the tooltip member.
(shell_view_view_changed_callback): Set the tooltip for the "New"
button.
(ensure_menu_xml): Set up the tooltip here as well.
* evolution-shell-component.c: Add tooltip member to struct
UserCreatableItemType.
(user_creatable_item_type_new): New arg @tooltip.
(evolution_shell_component_add_user_creatable_item): New arg
@tooltip.
(impl__get_userCreatableItemTypes): Put the tooltip in the struct
as well.
* e-shell-user-creatable-items-handler.c (setup_toolbar_button):
Create a GtkTooltips object and attach it to the combo_button
using gtk_object_set_data().
(shell_view_view_changed_callback): Set up a tooltip for the
button, according to the default.
* Evolution-ShellComponent.idl: Add a tooltip member to struct
UserCreatableItemType.
svn path=/trunk/; revision=17343
2002-06-28 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (mail_load_storages): Don't skip over
disabled accounts - put them in the folder tree too.
svn path=/trunk/; revision=17329
2002-06-25 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (mail_add_storage): Some compiler warning
fixes.
* mail-crypto.c (mail_crypto_pgp_mime_part_sign): Removed.
(mail_crypto_get_pgp_cipher_context): New convenience function to
construct a pgp cipher context.
(mail_crypto_pgp_mime_part_verify): Use the new
get_pgp_cipher_context function.
(mail_crypto_pgp_mime_part_encrypt): Same.
(mail_crypto_pgp_mime_part_decrypt): Here too.
* mail-account-gui.c (mail_account_gui_new): Initialise the
pgp_always_trust checkbox.
(mail_account_gui_save): Get whether or not to always_trust the
user's pgp keys.
* mail-config.c (account_copy): Copy over the pgp_always_trust
option.
(config_read): Read in the always_trust option.
(mail_config_write): Save the always_trust option.
svn path=/trunk/; revision=17277
2002-06-18 Jeffrey Stedfast <fejj@ximian.com>
* message-list.c (message_list_change_first_visible_parent): New
convenience function to find the first parent node that is visible
and emit a changed signal on it.
(main_folder_changed): If a message changed, call
change_first_visible_parent() in case we are in a collapsed thread
so that our first visible parent gets updated as well. Fixes bug
#26263.
* component-factory.c (storage_remove_folder): Simplify the error
checking.
svn path=/trunk/; revision=17228
2002-06-10 Jeffrey Stedfast <fejj@ximian.com>
* mail-accounts.c (account_able_clicked): Comment out the code to
add/remove the store to the folder-tree when it gets
enabled/disabled.
svn path=/trunk/; revision=17162
2002-06-06 Jeffrey Stedfast <fejj@ximian.com>
* mail-account-gui.c (mail_account_gui_save): If this account is
not a completely new account (ie, it is an edited account), then
remove any trace of it from the shell storages. If the new account
belongs in the folder-tree, add it to the list of storages.
* component-factory.c (mail_add_storage): New function to add a
single storage.
svn path=/trunk/; revision=17138
2002-06-03 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (request_quit): Prompt the user to see if he
really wants to quit when there are queued messages in the Outbox.
svn path=/trunk/; revision=17089
2002-05-30 Jeffrey Stedfast <fejj@ximian.com>
* mail-send-recv.c (mail_send_receive): Noop if we are in offline
mode.
* component-factory.c (mail_remove_storage): If the store is not
in the storage hash, then it must not have ever been added. Fixes
bug #25456.
svn path=/trunk/; revision=17052
* component-factory.c (request_quit): New.
(create_component): Pass it as the @request_quit_fn to
evolution_shell_component_new().
* e-msg-composer.c: New local `all_composers'; keeps a list of all
the composer windows created. Changed type of `parent_class' to
BonoboWindowClass *.
(do_exit): Cleaned up a bit. Raise the composer window before
showing the message box dialog.
(exit_dialog_cb): Removed.
(e_msg_composer_request_close_all): New.
(create_composer): Add the composer to the all_composers list and
weakref it.
(msg_composer_destroy_notify): GtkDestroyNotify function for the
composer's weakref; remove the composer from the all_composers
list.
svn path=/trunk/; revision=16930
* (various places): Update for camel_folder_append_message /
camel_folder_transfer_messages_to API change.
* mail-ops.c (mail_append_mail): Pass the appended_uid to the
callback.
* mail-callbacks.c (composer_save_draft_cb, save_draft_done,
do_edit_messages): Take advantage of the append_message change to
keep track of the UID of the saved draft so that we can delete the
old copy of the draft each time we save a new one. Remove the
FIXME suggesting we should do that, since we're doing it now. :)
svn path=/trunk/; revision=16766
* e-local-storage.c (construct): Pass %FALSE as
@has_shared_folders to evolution_storage_new().
* evolution-storage.c: New member has_shared_folders in
EvolutionStoragePrivate.
(init): Initialize to FALSE.
(evolution_storage_new): New arg @has_shared_folders.
(evolution_storage_construct): Likewise.
(impl_Storage__get_folderList): Renamed from
impl_Storage__get_folder_list.
(impl_Storage__get_hasSharedFolders): New, implementation for
::hasSharedFolders.
(evolution_storage_get_epv): Install the CORBA method
implementation.
* Evolution-Storage.idl: Make Storage::name a readonly attribute. New attribute Storage::
* component-factory.c (add_storage): Pass %FALSE as
@has_shared_folders to evolution_storage_new().
* gui/component/addressbook-storage.c
(addressbook_get_other_contact_storage): Pass %FALSE as
@has_shared_folders to evolution_storage_new().
svn path=/trunk/; revision=16733
2002-05-06 Not Zed <NotZed@Ximian.com>
* component-factory.c (idle_quit): Check all threads are idle as
well, using new e_thread_busy call. Should fix#22553? Also
sleep a little bit, to let the other threads run.
svn path=/trunk/; revision=16684
2002-04-03 Jeffrey Stedfast <fejj@ximian.com>
* message-tag-followup.c (construct): Set the window title/icon
here instead.
* message-tag-editor.c (message_tag_editor_init): Don't set the
title or window icon here, this is a generic class.
* mail-format.c (handle_multipart_signed): Replace
get_url_for_icon with the new mail_display_get_url_for_icon
function.
(handle_multipart_digest): Here too.
(get_cid): Use mail_display_add_url instead.
(get_location): Same.
(handle_text_enriched): Here too.
(handle_multipart_signed): And here.
* message-tag-followup.c (message_tag_followup_i18n_name): Use the
U_() macro, not the _() macro as it is what we really want.
* mail-ops.c (mail_send_message): Don't cast the message into a
CamelMedium before sending anymore.
* mail-callbacks.c (expunge_folder): Set the followup argument to
NULL here.
(done_message_selected): Get the followup value here and pass it
to the mail-display here.
(do_mail_fetch_and_print): Again with the NULL followup here.
* folder-browser.c (folder_browser_set_message_preview): Update to
pass in NULL as the followup since we are setting the message to
NULL here.
(done_message_selected): Get and set the appropriate followup
value here.
(do_message_selected): Update to pass in NULL as the followup
since we are setting the message to NULL here.
* mail-display.c (mail_display_set_message): Now takes a followup
tag value.
(mail_display_init): Set md->followup to NULL.
(mail_display_destroy): Free md->followup.
(mail_display_add_url): New: replaces the static add_url function
originally in mail-format.c
(mail_display_get_url_for_icon): New: replaces get_url_for_icon
which was originally in mail-format.c
svn path=/trunk/; revision=16334
2002-03-26 Jeffrey Stedfast <fejj@ximian.com>
Sync with yet-another-mail-config branch.
* mail-composer-prefs.c: Updated to get the right widgets and
whatnot. Also updated to tell the evolution-config-control that
stuff has changed.
* mail-preferences.c: Updated to get the right widgets and
whatnot. Also updated to tell the evolution-config-control that
stuff has changed.
* mail-accounts.etspec: New file needed by mail-accounts.c
svn path=/trunk/; revision=16257
* component-factory.c (folder_types): Remove "mailstorage", since
it's not needed any more.
(storage_activate): Gone, although some of it is moved to
storage_connect.
(create_view): Remove mailstorage code.
(add_storage): Connect to the storage's open_folder signal.
Instead of creating a "mailstorage" folder, call
evolution_storage_has_subfolders to let the shell know we haven't
finished filling it in yet.
(storage_connect): Handler for the storage's asyncOpenFolder
signal. Call mail_note_store() to try to connect.
(storage_connected): Callback for above. If the connection attempt
failed, call evolution_storage_has_subfolders again to make the
shell re-close the storage.
* mail-folder-cache.c (update_folders): Remove a piece of
mailstorage legacy code from here.
svn path=/trunk/; revision=16170
* component-factory.c (add_storage): Update for storage changes:
explicitly create a root folder.
* mail-display.c (mail_display_render): Fix the "don't scroll back
to the top of the HTML widget when opening an attachment" hack
again by moving it here from mail_display_redisplay(). (It has to
happen after the gtk_html_begin.)
(mail_display_redisplay): Pass reset_scroll arg to
mail_display_render.
* mail-callbacks.c (do_mail_print): Pass reset_scroll (TRUE) to
mail_display_render.
svn path=/trunk/; revision=15967
2002-01-30 Not Zed <NotZed@Ximian.com>
* component-factory.c (create_component): re-enable popup menu.
(populate_folder_context_menu): If we're on a vfolder, and its not
UNMATCHED, create a change properties item, and set it up
approriately.
(change_prop_popup): Callback to edit the vfolder rule. For
#3358.
svn path=/trunk/; revision=15523