* mail-format.c (mail_lookup_handler): Use
gnome_vfs_mime_get_short_list_applications rather than
gnome_vfs_mime_get_default_application.
* mail-display.c (pixmap_press): Construct the EPopupMenu array on
the fly, based on the number of applications available to open the
MIME type.
(launch_cb): Figure out which menu item was clicked, and invoke
the appropriate application. Ugh, messy, because of the EPopupMenu
interface. Probably should get rewritten some day. Also, make this
handle apps with expects_uris set too.
svn path=/trunk/; revision=10916
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 Sam Creasey <sammy@oh.verio.com>
* mail-account-editor-news.c: Added an MailAccountEditorNews, for
NNTP configuratuion. Based on MailAccountEditor, but stripped.
* Makefile.am: added mail-account-editor-news.c and
mail-account-editor-news.h to SOURCES if ENABLE_NNTP is defined.
* mail-accounts.c (load_news): Moved this function, and fixed some
slight brokenness.
(news_edit): Added functional code using MailAccountEditorNews
(news_add): Added functional code using news_edit after
allocation.
* mail-config.glade: news_editor_window widget added. Used by
MailAccountEditorNews.
* mail-display.c (save_data_cb): Store the pathname used when
saving messages so that the next save box will default to the
previous path.
* message-browser.c (message_browser_new): add signal handler for
size_allocate on the message browser. Thus new windows are size
as they were last allocated.
(message_browser_size_allocate_cb): handler to store allocations.
* message-list.c (message_list_setup_etree): connect to the
info_changed signals for the state of the message_list->tree.
Save the folder state to disk, so that when additional
message_lists are created, they are consistant. e.g. the next
buttons do the same thing in the browser, and in the message
viewer after changing sorting options.
* subscribe-dialog.c (build_tree): freeze sc->folder model while
building the tree. Not doing so takes a very long time over 40000
newsgroups.
svn path=/trunk/; revision=10719
* configure.in: Check for gtkhtml 0.9.99.1.
2001-07-02 Larry Ewing <lewing@ximian.com>
* mail-display.c (save_part): move the saving logic out of save_cb
so that we can reuse it for the image saving code.
(save_cb): call save_part.
(save_url): new function to resolve an save an html url.
(image_save_as): save function for images and. Add it to the
link_menu, and add MASK_URL and MASK_SRC to the structure so that
we cans show the proper menus.
(html_button_press_event): call get_src as well to find external
urls references. Add popup masking.
svn path=/trunk/; revision=10707
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-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
* mail-format.c (mail_format_mime_message): We can't output
"<html>" and "</html>" here because it gets called recursively to
display message/rfc822 subparts.
* mail-display.c (mail_display_redisplay): Move rodo's html header
changes from mail_format_mime_message to here.
svn path=/trunk/; revision=10252
* mail-display.c (on_url_requested): If http mode is
HTTP_SOMETIMES, use e_book_query_address_locally to check the From
address and load images if it's found.
* mail-config.c (config_read): Default http_mode to
MAIL_CONFIG_HTTP_SOMETIMES. Fix typo to make default forward style
actually work.
svn path=/trunk/; revision=9936
* mail-display.c (mail_display_redisplay): Deal with full-header
mode in addition to source mode
* mail-format.c (write_field_row_begin): Add WRITE_NOCOLUMNS flag
to write the header in a single table cell rather than two. Output
the second columns's "<td>" when not in NOCOLUMNS mode. Don't
include the ":" in the passed-in header name.
(write_date, write_address): Update for write_field_row_begin
changes.
(write_text_field): Genericified and updated from write_subject.
(write_headers): Deal with both normal and full-header mode.
svn path=/trunk/; revision=9850
* mail-display.c (on_url_requested): Load http images if the user
has force-loaded images too.
(mail_display_redisplay): Update for normal/headers/source changes.
(mail_display_load_images): New. Force HTTP image loading for the
current message.
* mail-config.c (mail_config_get_message_display_style,
mail_config_set_message_display_style): Updated and renamed from
mail_config_{get,set}_view_source
* mail-callbacks.c (load_images): New.
* folder-browser.c (folder_browser_set_message_display_style):
Renamed and updated from folder_browser_toggle_view_source.
* folder-browser-factory.c (verbs): Add ViewLoadImages.
(control_activate): Update for normal/headers/source change to
radio group.
svn path=/trunk/; revision=9820
* mail-display.c (load_http): callback to use GNOME-VFS to load
http data.
(on_url_requested): Handle http: URLs that refer to either MIME
parts or web data.
(mail_display_redisplay_when_loaded): Moved out of
mail_content_loaded and made more generic.
* mail-format.c (add_url): Handle two different kinds of URLs
(URLs that point to CamelMimeParts and URLs that point to
GByteArrays).
(mail_content_loaded): Use mail_display_redisplay_when_loaded.
(format_mime_part): Renamed from "call_handler_function". Also,
record Content-Location if the part has one. (This is not yet 100%
correct: it doesn't deal with relative URLs correctly.)
(handle_text_html): Use Content-Location URL rather than
Content-ID, when available (will help deal with relative URLs once
GtkHTML supports that better).
(etc): Update for changes.
* mail-config.c (mail_config_get_http_mode,
mail_config_set_http_mode): get/set HTTP image downloading mode.
(config_read, mail_config_write_on_exit): save/load that data.
svn path=/trunk/; revision=9773
2001-05-10 Jon Trowbridge <trow@ximian.com>
* folder-browser.c (folder_browser_config_search): Use the
ESearchingTokenizer to highlight search matches for folder-level
searches. Still mildly broken, but it works for the simple cases.
* mail-display.c (mail_display_new): Use our ESearchingTokenizer
for the mail display GtkHTML widget.
* mail-search.c (dialog_clicked_cb): Use the ESearchingTokenizer to
highlight search matches.
(mail_search_construct): Add a match count to the search dialog.
* e-searching-tokenizer.c
(e_searching_tokenizer_set_search_string): Added. A custom HTML
tokenizer that does highlighting of search strings.
svn path=/trunk/; revision=9754
2001-04-23 Jon Trowbridge <trow@ximian.com>
* e-html-utils.c (e_text_to_html_full): Removed attempts to use
Radek's evil <DATA> hacks, which were just causing me
(and GtkHTML) grief.
2001-04-23 Jon Trowbridge <trow@ximian.com>
* gui/component/e-address-popup.c: Lots of code has been
simplified here.
(e_address_popup_factory_new_control): Rather than directly pop
our control up in a window (via the e_address_popup_popup
function, which is now gone), just return the widget and let the
caller do the popping. This works better, since it means we don't
have to work around the vagaries of bonobo focus & event handling.
(e_address_popup_set_name): Refresh when both name & email have
been set, rather than checking a stupid counter.
(e_address_popup_set_email): Ditto.
2001-04-23 Jon Trowbridge <trow@ximian.com>
* mail-display.c (html_button_press_event): Check for mailto:
links, and pop up our mail address menu when we find one.
(make_popup_window): The main piece of code (ignoring a zillion
little callbacks) to pop up our windows with reasonable semantics
for having them close automatically.
(mail_text_write): Enable converting addresses to mailto links
in message bodies.
* mail-format.c (write_address): Simplify code, removing Radek's
<DATA> hacks. Write out addresses as mailto: links.
svn path=/trunk/; revision=9534
* Makefile.am (evolution_mail_LDADD): Remove some redundant LIBS
variables... purify complained that the command line was too
long. :-}
* mail-account-gui.c: Plug leaks.
* mail-display.c (on_url_requested): close the html stream on
error too.
* mail-ops.c (fetch_mail_fetch): Move a line around that probably
doesn't affect anything, but it's correct.
* session.c (auth_callback): Plug leak.
* mail-send-recv.c (receive_status): Initialize "now".
svn path=/trunk/; revision=9303
2001-04-11 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (save_cb): Change to the user's home dir before
opening the filesel.
* mail-callbacks.c (save_msg): Same.
svn path=/trunk/; revision=9241
2001-03-30 Jon Trowbridge <trow@ximian.com>
* e-html-utils.c (e_text_to_html_full): Add support for converting
e-mail addresses to links.
(is_email_address): Added. Identifies e-mail addresses.
(email_address_extract): Added. Extracts a copy of the e-mail
address from the text.
* e-html-utils.h (E_TEXT_TO_HTML_CONVERT_ADDRESSES): Added.
* e-url.c (e_url_shroud): Added. Copy a url, replacing
any plaintext passwords with a single *.
(e_url_equal): Compare two urls, taking into account that
they may or may not be shrouded.
2001-03-30 Jon Trowbridge <trow@ximian.com>
* camel-mime-message.c (camel_mime_message_set_source): Shrould
our source URL before putting it into X-Evolution-Source.
2001-03-30 Jon Trowbridge <trow@ximian.com>
* mail-display.c (mail_text_write): Add (commented-out)
E_TEXT_TO_HTML_CONVERT_ADDRESSES.
* mail-config.c (mail_config_get_account_by_source_url):
Call e_url_equal to compare URLs.
svn path=/trunk/; revision=9050
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
* mail-format.c (get_cid): Make fake content-id URLs be guaranteed
unique: the old way (with %p on the CamelMimePart *) would
generate duplicates if memory was freed and re-allocated the right
way.
* mail-display.c (pixbuf_gen_idle, etc): Make the thumbnail cache
global rather than per-MailDisplay, since content-ids ought to be
globally unique. Also, don't leak content-id strings when the
pixbuf generation fails, and remove pixbufs from the cache after 5
minutes.
svn path=/trunk/; revision=8944
2001-03-23 Jon Trowbridge <trow@ximian.com>
* gui/widgets/e-minicard-widget.c (e_minicard_widget_set_card):
Added. Call me old-fashioned, but I just prefer to have a real
API rather than doing everything via gtk_object_get/set-type
calls.
(e_minicard_widget_set_arg): Changed to call
e_minicard_widget_set_card.
* backend/ebook/e-book-util.c: Small changes to get rid of
compiler warnings. (Casting out const, removed unused variables,
etc.) Removed some debugging messages.
* gui/component/addressbook-factory.c (main): Added call
to e_address_popup_factory_init.
* gui/component/e-address-popup.c: Added. A popup gadget that is
invoked (as a bonobo control) when an address is left-clicked in
the mailer. The addressbook is queries, and the address is either
displayed as a minicard (if it already exists) or in a "generic
format". A button is provided for editting/adding the contact.
Some of the semantics of this widget are a bit... non-standard,
because of bonobo issues. I can't really seem to replicate
popup-menu behavior because of how bonobo propogates events, etc.
so I've tried to produce something that I think is non-annoying.
YMMV.
2001-03-23 Jon Trowbridge <trow@ximian.com>
* mail-display.c (handle_embedded_address_object): #ifdef away
some code I don't quite want to delete yet.
(html_button_press_event): Remove some of Radek's placeholder
code, replace it with code to create my AddressPopup bonobo
control.
* mail-format.c: Remove some obsolete code that if #ifdef-ed out
a while ago.
* mail-ops.c (send_queue_send): Strip out the X-Evolution-Identity
header when sending.
2001-03-23 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Don't call camel_mime_message_set_identity. (The call is
commented out, left over from some earlier experimentation that I
want to be able to remember later...)
* camel-mime-message.c (camel_mime_message_set_identity): Added.
A function to set the X-Evolution-Identity header.
svn path=/trunk/; revision=8916
2001-03-22 Radek Doulik <rodo@ximian.com>
* mail-display.c (mail_display_new): connect to button_press_event
and iframe_created events of GtkHTML widget
(html_button_press_event): new signal handler, runs popup on
address fields and on links, later we should add popups for images
and maybe some more? any ideas?
(html_iframe_created): new signal handler, takes care of
connecting to button_press_event of all iframes
: plus bunch of empty methods for popup menu items - to be
implemented
* mail-format.c (write_address): revert back to raw HTML text,
store name and email to Text objects, workaround gtkhtml tables
bug (to be fixed soon ;-)
svn path=/trunk/; revision=8896
* mail-display.c (mail_display_redisplay): Remove a stray
camel_object_ref that was causing messages to never be finalized
if they got redisplayed (because of attachments, delayed-loading
IMAP parts, etc)
svn path=/trunk/; revision=8737
* mail-display.c (on_url_requested): Call gtk_html_end() on the
stream so things happen. Fixes a problem with some inline images
(just very small ones maybe?)
* importers/.cvsignore: create
svn path=/trunk/; revision=8691
2001-03-08 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-popup.c
(quick_add_cb): Switched to use e_contact_quick_add_free_form.
Removed debugging code, hopefully without introducing any bugs
in the process.
* gui/component/select-names/e-select-names-text-model.c
(e_select_names_text_model_insert_length): Fix bug with commas
inside of name/address combos. As long as the comma is inside of
quotes, it will be treated as part of the name rather than as a
break between addresses.
* gui/component/select-names/e-select-names-completion.c
(match_nickname): Use e_card_name_to_string for nickname match
strings.
(match_email): Use e_card_name_to_string for email match strings.
(e_select_names_completion_begin): Strip quotes out of query text,
so we don't produce malformed sexps.
Added William Blake quote easter egg.
* contact-editor/e-contact-quick-add.c: Further attempts to fix...
mostly unsuccessful.
(e_contact_quick_add_free_form): Added. Takes a single string
and tries to parse out (using some simple, loose rules) the
name and e-mail -- then calls e_contact_quick_add. An attempt to
get the computer to automatically Do The Right Thing.
* backend/ebook/e-book.c: Fixed some broken indentation. Yes, I'm
anal.
* gui/component/GNOME_Evolution_Addressbook.oafinfo: Added oaf_server
info for EAddressWidget.
* gui/component/GNOME_Evolution_Addressbook.oaf.in: Added oaf_server
info for EAddressWidget.
* gui/component/addressbook-factory.c (main): Add call to
e_address_widget_factory_init.
* gui/component/e-address-widget.h:
* gui/component/e-address-widget.c: Added. A little widget (and a
Bonobo control, BTW) for displaying addresses, with a left-click
menu. Used to display addresses in the mail viewer (as embedded
GtkHTML objects, replacing the text previously used). Still quite
incomplete.
2001-03-08 Jon Trowbridge <trow@ximian.com>
* mail-format.c (write_field_row_begin): Added. Table row HTML
broken out into its own function.
(write_subject): Added. Emits the proper HTML for the subject
line.
(write_field_to_stream): #ifdef-ed out of existence.
(write_address): Take a CamelInternetAddress and spit out an
<object> tag with the appropriate <param>s.
* mail-display.c (on_object_requested): Check for an "address"
object. If found, call...
(handle_embedded_address_object): ...this function, which creates
an AddressWidget bonobo control and passes in the necessary info.
I never really realized just quite how much GtkHTML kicks ass
until I figured out how to make this work.
svn path=/trunk/; revision=8607
2001-02-08 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (on_object_requested): Cast the CamelMedium to a
CamelMimePart before performing actions on it as if it were a
CamelMimePart.
* mail-config-druid.c (druid_finish): Save the auto-check settings.
(construct): Initialize auto-check widgets.
(mail_config_druid_get_auto_check): New function
(mail_config_druid_get_auto_check_minutes): New functions
* mail-config.c (config_read): Read in whether or not to check
every x minutes.
(mail_config_write): Save auto-check config data and SSL.
svn path=/trunk/; revision=8126
2001-01-28 Not Zed <NotZed@Ximian.com>
* mail-display.c (write_data_to_file): Changed to use
mail_save_part to save the data in another thread.
(save_data_cb): Hide the fileselector once we have a button press,
and are saving stuff.
* mail-ops.c (mail_save_part): New function to save a part content
asynchronously.
svn path=/trunk/; revision=7867
* mail-format.c (mail_content_loaded): Check if a message part's
content is available, and if it's not, queue a thread that will
load it and then queue an idle-handler redisplay of the message.
(call_handler_function): Call mail_content_loaded() on the part
and don't try to display it if it's currently offline.
(get_data_wrapper_text): Simplify a bit
* mail-display.c (mail_display_queue_redisplay): rename and make
non-static.
(mail_display_redisplay): Use a "new and improved" way of
preserving the GtkHTML scroll location. ("new and improved" is
code for "gross and hackish", but there should be a real interface
for this eventually.)
(on_url_requested): Use mail_content_loaded() and don't write out
offline cid: URLs
* mail-identify.c (mail_identify_mime_part): Use
mail_content_loaded and don't try to identify the data if it's
offline.
svn path=/trunk/; revision=7813
* 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