| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-09-08 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-book-view-listener.c
(e_book_view_listener_check_queue): See
e_book_listener_check_queue below.
(e_book_view_listener_queue_response): See
e_book_listener_queue_response below.
* backend/ebook/e-book-listener.c (e_book_listener_check_queue):
Explicitly prohibit reentrancy. Use gtk-unref rather than
bobobo-unref.
(e_book_listener_queue_response): Hold a gtk-ref to the listener
while the idle function runs, not a bonobo-ref. As far as I can
tell, it is impossible to avoid a race condition here when we have
to worry about bonobo reentrancy.
* gui/component/select-names/e-select-names-text-model.c
(e_select_names_text_model_insert_length): Alter a copy of the
original EDestination, rather than just using a new one. We need
to do this to preserve prior-card information for possible
reversion later.
(e_select_names_text_model_delete): Ditto.
* backend/ebook/e-destination.c (e_destination_clear_card): When
clearing a destination where ->card != NULL, store it for possible
reversion later.
(e_destination_revert): If we have an old card stored, go back to
using it for the destination.
(e_destination_is_valid): Tries to detect obviously broken
addresses.
(e_destination_cardify): If our destination is invalid, first try
to cardify simply by reverting to an older card.
(e_destination_destroy): Unref any cached old card.
(e_destination_copy): Copy the old card information.
2001-09-07 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names.c
(sync_table_and_models): Show all rows in the table, and then
remove the rows that correspond to entries in the
ESelectNamesModels in the children.
(real_add_address): Freeze/thaw our ESelectNamesModel, so that we
don't change our table while we are in the middle of iterating
over the selection.
(remove_address): Just delete the address from the
ESelectNamesModel, the signal handler will do the rest.
(selected_rows_foreach_cb): Call remove_address to do our dirty
work.
(e_select_names_add_section): Connect to the 'changed' signal from
the ESelectNamesModel, and call sync_table_and_models explicitly to
get our initial state correct.
* gui/component/select-names/e-select-names-table-model.c
(fill_in_info): Deal with EDestinations in our table that don't
come from cards.
* gui/component/select-names/e-select-names-manager.c: Added
another ESelectNamesModel* to the ESelectNamesManagerSection
struct. Called 'original_model', this contains a copy of the
model as it is when we begin using the SelectNames dialog.
(section_copy): Copy the original model.
(section_free): Free the original model.
(e_select_names_manager_add_section_with_limit): Initialize the
original model.
(e_select_names_clicked): I've changed the semantics of this
dialog quite a bit... no UI freeze can stop me! If OK is clicked,
we do nothing. If Cancel is clicked, we revert to the
'original_model' copy of our address entry state before we started
editting. Finally, we close the dialog before any of thing. Doing
it last caused problems, because signals were being triggered
which had dangling pointers as their closures.
(e_select_names_manager_activate_dialog): Copy our current state
to the original model, and share the same ESelectNamesModel
between the dialog and the address entry in the composer..
(e_select_names_manager_get_cards): Removed. It had been
#if 0/#endif-ed out for a while.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_freeze): Added.
(e_select_names_model_thaw): Added.
(e_select_names_model_uncardify): Added. If possible,
"uncardifies" a specific model entry.
(e_select_names_model_changed): Changed to pay attention
to the freeze count.
* gui/component/select-names/e-select-names-completion.c
(clean_query_text): Strip leading/trailing whitespace from
queries.
* backend/ebook/e-destination.c (e_destination_uncardify): Added.
Converts a card-associated destination into a text-associated
destination w/ the e-mail address.
(e_destination_list_to_vector): Added. A convenience routine.
(e_destination_freev): Added. A convenience routine.
(e_destination_touchv): Added. I'm lazy.
svn path=/trunk/; revision=12709
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-29 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-manager.c
(e_select_names_clicked): Use e_select_names_model_merge to
combine the selected names with any existing ones. This causes
you to not lose addresses typed directly into the entry while the
SelectNames dialog is up. (Bug #8058)
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_merge): Merge the contents of one
ESelectNamesModel into another, avoiding duplicates.
* backend/ebook/e-destination.c (e_destination_equal): Added.
Determines if two destinations appear to refer to the same
recipient.
* backend/ebook/e-card.c (e_card_list_send): Added cast to
g_free args to silence compiler warnings.
svn path=/trunk/; revision=12526
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-22 Jon Trowbridge <trow@ximian.com>
* gui/contact-list-editor/e-contact-list-editor.c (extract_info):
In the GUI, the toggle is labelled "hide addresses", not "show
addresses" -- so we have to reverse the boolean value we read in.
(fill_in_info): Same bug as before: since the GUI reads "hide", we
have to initialize the toggle to '!show_addresses', not
'show_addresses'.
* backend/ebook/e-destination.c
(e_destination_list_show_addresses): Added.
(e_destination_xml_encode): Encode the value of
e_destination_list_show_addresses into the XML.
(e_destination_xml_decode): Read and store the "show_addresses"
flag.
2001-08-22 Jon Trowbridge <trow@ximian.com>
* e-msg-composer-hdrs.c (set_recipients_from_destv): Added. Try
to properly handle contact lists in which the addresses of the
list members should be hidden.
(e_msg_composer_hdrs_to_message): Changed to extract the
destination data from the entries and pass it along to
set_recipients_from_destv.
2001-08-22 Jon Trowbridge <trow@ximian.com>
* mail-callbacks.c (ask_confirm_for_only_bcc): Provide alternative
text for this dialog for the case when a message has only Bcc
recipients because of a hidden contact list's addresses being
moved from To/Cc to Bcc.
(composer_get_message): Try to detect when our message has only
Bcc recipients because of moving addresses around due to a hidden
contact list, and show the dialog with the revised wording in this
case.
svn path=/trunk/; revision=12414
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-14 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-book-view.c (add_book_iterator): Call
e_card_set_book here.
* backend/ebook/e-book.c (e_book_do_response_get_vcard): Call
e_card_set_book here.
* backend/ebook/e-card.c, backend/ebook/e-card.h: Pulled out the
part where the uri is made part of the uid. Made uri a separate
field.
* backend/ebook/e-destination.c, backend/ebook/e-destination.h:
Change this to use ECard's split uids and uris.
svn path=/trunk/; revision=11991
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-09 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-manager.c
(e_select_names_manager_create_entry): Hook up some magic to
(basically) cardify an entry on focus-out. (What we do is actually
more complicated than that.)
* gui/component/select-names/e-select-names-bonobo.c
(entry_set_property_fn): After we set an entry's text, try to
cardify it. We need to do this so that (for example) reply
e-mails get properly cardified.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_duplicate): Use e_select_names_model_append,
rather than manipulating lists directly.
(e_select_names_model_insert): Connect "changed" signal proxy for
added EDestination.
(e_select_names_model_append): Ditto.
(e_select_names_model_replace): Ditto, and disconnect signals for
replaced EDestination.
(e_select_names_model_delete): Ditto on the disconnection.
(e_select_names_model_delete_all): Ditto.
(e_select_names_model_cardify): Added. Try to cardify a specified
EDestination.
(e_select_names_model_cancel_cardify): Added. Cancel the pending
cardification of a single EDestination.
(e_select_names_model_cardify_all): Added. Cardify all of the
EDestinations in the model.
(e_select_names_model_cancel_cardify_all): Added. Cancel's any
and all pending cardifications.
* backend/ebook/e-destination.c (e_destination_class_init): Added
"changed" and "cardified" signals.
(e_destination_freeze): Added (static).
(e_destination_thaw): Added (static).
(e_destination_clear_card): Reset allow_cardify and
cannot_cardify, cancel any pending cardifications, and emit the
"changed" signal.
(e_destination_clear_strings): Emit the "changed" signal.
(e_destination_clear): Do freeze/thaw to prevent multiple signal
emissions.
(e_destination_set_card): Check that the card we are setting is
not equal to the current card, and emit the "changed" signal if we
are actually changing.
(e_destination_set_card_uri): Emit "changed" signal, if necessary.
(e_destination_set_name): Emit "changed" signal, if necessary.
(e_destination_set_email): Emit "changed" signal, if necessary.
(e_destination_set_html_mail_pref): Emit "changed" signal, if
necessary.
(use_card_cb): If we've just loaded/set the ECard, emit the
"changed" signal.
(e_destination_set_raw): Emit "changed" signal, if necessary.
(e_destination_allow_cardification): Added.
(e_destination_set_allow_cardification): Added.
(e_destination_cardify): Added. Tries to automatically convert
a string-based EDestination to one based on an ECard.
(e_destination_cardify_delayed): Added. Cardifies in a timeout.
(e_destination_cancel_cardify): Added. Cancels any pending
cardifications.
(e_destination_xml_decode): Added freeze/thaw.
* backend/ebook/e-book-util.c (e_book_nickname_query): Added. A
canned simple query for nicknames.
* backend/ebook/e-card.c (e_card_email_find_number): Added. Given
a card and an string containing an email address, return the index
number of the address inside of the card, or -1 if the address is
not found.
svn path=/trunk/; revision=11837
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-08-02 Jon Trowbridge <trow@ximian.com>
* printing/Makefile.am (ecpsdir): Add camel dependency.
* gui/component/Makefile.am: Add camel dependency.
* backend/ebook/Makefile.am: Add camel dependency.
* gui/component/addressbook-factory.c (main): Properly init camel.
* backend/ebook/e-destination.c (e_destination_clear_strings):
Clear ->raw.
(e_destination_is_empty): We aren't empty if ->raw is set..
(e_destination_set_raw): Replaces e_destination_set_string.
(e_destination_get_name): Use camel's parser to extract the name
from ->raw.
(e_destination_get_email): Use camel's parser to extract the email
address from ->raw.
(e_destination_get_address): Use camel to produce properly quoted,
RFC-compliant addresses. Thanks camel! (Bug #5860)
* gui/component/select-names/e-select-names-completion.c
(emailify_match): Always append an e-mail address, as long as it
doesn't have one already at it's beginning or end. Don't limit
self to just emailifying entries tied to cards with multiple
addresses. (I didn't really want to do this, but people seem to
like keeping multiple cards for the same person, and other
solutions (like scanning all matches for duplicate names, and only
emailifying those) just seemed like way too much work for such a
limited payoff.)
* gui/component/select-names/e-select-names-text-model.c:
s/e_destination_set_string/e_destination_set_raw/.
* gui/component/select-names/e-select-names-popup.c
(popup_menu_card): Quote _'s in our popup menus, so that "foo_bar"
doesn't get displayed as "foobar" w/ the 'b' underlined. (Bug
#5558)
(popup_menu_nocard): Ditto.
2001-08-02 Jon Trowbridge <trow@ximian.com>
* Makefile.am: Added camel dependency (now needed by ebook).
2001-08-02 Jon Trowbridge <trow@ximian.com>
* gui/Makefile.am: Added camel dependency (now needed by ebook).
2001-08-02 Jon Trowbridge <trow@ximian.com>
* Makefile.am: Added camel dependency (now needed by ebook).
svn path=/trunk/; revision=11602
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-25 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_get_name): Properly dup
the results of e_destination_get_email.
* gui/component/select-names/e-select-names-popup.c
(e_select_names_popup): Check that our destination isn't empty
before building our popup. (Bug #5250)
* backend/ebook/e-destination.c (e_destination_is_empty): Made
argument const.
svn path=/trunk/; revision=11395
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-17 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-book-view-listener.c
(e_book_view_listener_queue_response): Hold a reference to our
listener while the idle function is active.
(e_book_view_listener_check_queue): Only unref the listener when
the idle function is finished.
* gui/component/select-names/e-select-names-manager.c
(e_select_names_clicked): Instead of replacing section->model with
source, copy source onto section->model with
e_select_names_model_overwrite_copy. #if 0/#endif out all of the
stuff related to ETextModels, because it doesn't make any sense to
me, and everything appears to work without it.
(Die bug #2059. Die! Die! Die!)
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_overwrite_copy): Added. Copies the contents
of one ESelectNamesModel onto another.
* backend/ebook/e-destination.c (e_destination_copy): Made the argument
const.
svn path=/trunk/; revision=11165
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-07 Jon Trowbridge <trow@ximian.com>
* gui/widgets/e-minicard.c (add_field): Detect the embedded
EDestination XML, and convert it to a nice-looking e-mail address.
* gui/contact-list-editor/e-contact-list-editor.c: Adjusted to
reflect changes to EContactListModel. (Yeah, this is vague,
but the changes are _really_ obvious and boring.)
* gui/contact-list-editor/e-contact-list-model.c: Revamped
to make everything an EDestination, rather than storing either
cards or strings.
* gui/component/select-names/e-select-names-text-model.c
(e_select_names_text_model_insert_length): Use
e_destination_get_textrep.
* gui/component/select-names/e-select-names-table-model.c
(fill_in_info): Use e_destination_get_name and
e_destination_get_email.
* gui/component/select-names/e-select-names-popup.c
(popup_menu_card): Use e_destination_get_name instead of
e_card_name_to_string.
(quick_add_cb): Use e_destination_get_address.
(popup_menu_nocard): Use e_destination_get_name.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_changed): Removed obsolete debugging code.
(e_select_names_model_get_textification): Use e_destination_get_textrep\.
(e_select_names_model_get_address_text): Use e_destination_get_address.
(e_select_names_model_get_string): Use e_destination_get_textrep.
(e_select_names_model_replace): Use e_destination_get_textrep.
(e_select_names_model_name_pos): Use e_destination_get_textrep.
* gui/component/select-names/e-select-names-completion.c
(emailify_match): Match only if this isn't a contact list.
(match_email): Match only if this isn't a contact list.
(match_name): Do the right thing in the case of a contact list.
(book_query_process_card_list): Don't construct a match for
each possible e-mail address if this is a contact list.
* backend/ebook/e-destination.c: Major-league de-crufting and
rationalization, combined with lots of hacks to make things work
properly with contact lists.
(e_destination_copy): Copy contact list info.
(e_destination_clear_card): Clear contact list info.
(e_destination_is_empty): If we contain a contact list, we aren't
empty.
(e_destination_set_card_uri): Added. Allows us to set a
destination by card URI.
(e_destination_set_name): Allows the contact's name only ("Jane
Smith") to be set.
(e_destination_set_email): Allows the contact's e-mail only
("jane@assbarn.com") to be set.
(e_destination_set_string): Takes a free-form string containing a
contact's name and/or e-mail, and tries to do the right thing with
it.
(e_destination_contains_card): Renamed. Used to be
e_destination_has_card.
(e_destination_from_card): Added. Returns TRUE if the
EDestination comes from either a ECard (which we presently hold)
or is specified by an ECard URI.
(e_destination_use_card): Allows an EDestination's ECard to be
accessed, via a callback. If we only are holding the URI, the
card will be loaded and stored in the EDestination.
(e_destination_get_name): Returns the name only ("Jane Smith"), or
NULL.
(e_destination_get_email): Returns the email only
("jane@assbarn.com"), or NULL.
(e_destination_get_address): Added. Returns a "full address" if
both the name & e-mail are available ("Jane Smith
<jane@assbarn.com>"), or just the e-mail if the name is unknown
("jane@assbarn.com>"). If the destination is a contact list,
returns a comma-separated list of addresses.
(e_destination_get_textrep): Added. Returns a "text
representation" of the EDestination. This is what is now
displayed for completed, "cardified" destinations in addressbook
entries.
(e_destination_is_evolution_list): Check to see if this
destination is for a contact list.
(e_destination_xml_encode): Added. Build an XML data structure
representing an EDestination.
(e_destination_xml_decode): Added. Parse an XML data structure,
constructing an EDestination.
(e_destination_export): Added. Returns a null-terminated string
containing an XML representation of the EDestination, with
newlines and excess whitespace removed.
(e_destination_import): Added. Parses a string containing an XML
representation of an EDestination.
(e_destination_exportv): Added. Returns a null-terminated string
containing an XML representation of a collection of EDestinations,
with newlines and excess whitespace removed.
(e_destination_importv): Added. Takes an XML representation of a
collection of destinations, parses it, and returns a vector of
EDestinations.
* backend/ebook/e-card.c (e_card_duplicate): Copy the ->book
pointer.
(e_card_get_id): Check that the argument is valid.
(e_card_set_id): Check that the argument is valid.
(e_card_get_book): Added. Return the EBook the ECard came from.
(e_card_get_uri): Added. Tries to returns a URI for the ECard,
which is of the form (EBook URI)/(ECard unique ID). Returns NULL
if the EBook URI or the ID are unknown/not set.
(e_card_get_vobject): If we have the URI, use it as the
VCUniqueStringProp, rather than just the ID. This is a hack to
make DnD work properly.
(parse_id): Detect if the unique ID we've been passed is a URI or
just a plain card ID, and do the right thing in either case.
(e_card_uri_extract_book_uri): Added. Convenience function for
parsing card URIs.
(e_card_uri_extract_card_id): Added. Convenience function for
parsing card URIs.
(e_card_load_uri): Added. Allows an ECard to be loaded by its
URI.
* backend/ebook/e-book-view.c: Added a EBook * to the
_EBookViewPrivate struct. This is meant to contain the EBook the
EBookView is associated with.
(add_book_iterator): Added. A convenience function for attaching
the EBook to a GList of cards (if no EBook is already stored).
(e_book_view_do_added_event): Record the EBook in the added
ECards.
(e_book_view_do_modified_event): Record the EBook in the modified
ECards.
(e_book_view_set_book): Added. Stores a pointer to the
EBookView's "parent" EBook.
(e_book_view_init): Init book_view->priv->book to NULL.
(e_book_view_destroy): Unref book_view->priv->book.
* backend/ebook/e-book.c: Added a uri field to _EBookPrivate.
(e_book_unqueue_op): Removed debugging spew.
(e_book_do_response_get_view): Attach the current EBook to the
created EBookView.
(e_book_do_response_get_changes): Attach the current EBook to the
created EBookView.
(e_book_load_uri): Save a copy of the uri in the EBook.
(e_book_get_uri): Added. Just returns book->priv->uri.
(e_book_get_card): Attach a pointer to the Ebook to the
newly-loaded ECard.
(e_book_add_card): Attach a pointer to the EBook to the
newly-added ECard.
(e_book_commit_card): Attach a pointer to the EBook to the
committed ECard.
(e_book_init): Initialize the uri to NULL.
(e_book_destroy): Free the uri string on destruction.
svn path=/trunk/; revision=10882
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-01 Chris Toshok <toshok@ximian.com>
* gui/contact-list-editor/e-contact-list-editor.c (fill_in_info):
use ECARD_UID_LINK_PREFIX.
* gui/contact-list-editor/e-contact-list-model.c
(e_contact_list_model_get_email): use ECARD_UID_LINK_PREFIX.
* backend/ebook/e-destination.h: add prototype for
e_destination_importv_list.
* backend/ebook/e-destination.c (e_destination_importv_list): new
function, take an ECard corresponding to an address list and
resolve any linked cards, returning an EDestination vector.
* backend/ebook/e-card.h (ECARD_UID_LINK_PREFIX): #define this here,
since we need to use it in a few places.
svn path=/trunk/; revision=10667
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-06-30 Jon Trowbridge <trow@ximian.com>
* gui/merging/e-card-merging.c (match_query_callback): Make the
standard for considering two cards to be match stricter.
* gui/component/select-names/e-select-names-completion.c
(make_match): Use the card's use-score to set the match's
sort_major value.
(match_name): Removed obsolete code.
(e_select_names_completion_begin): Added (double) cast to make
match->score calculation come out properly.
* backend/ebook/e-card.c: Added X-EVOLUTION-LAST-USE and
X-EVOLUTION-USE-SCORE to attribute_jump_array.
(e_card_get_today): Added. A convenience routine for getting
today's date and putting it in a GDate.
(e_card_get_use_score): Added. Compute the current, time-decayed,
use-score for the card.
(e_card_touch): Increment the use-score by one; update the last
used date.
(e_card_date_to_string): Added as a convenience routine, getting
rid of some code duplication.
(e_card_get_vobject): Add handlers for X-EVOLUTION-USE-SCORE and
X-EVOLUTION-LAST-USE.
(parse_last_use): Added.
(parse_use_score): Added.
(e_card_class_init): Added args for last-use and use-score.
(e_card_get_arg): Added handlers for last-use and use-score.
o
(e_card_set_arg): Added handlers for last-use and use-score.
* backend/ebook/e-destination.c: Added pending_card_id to
EDestinationPrivate struct.
(e_destination_copy): Copy the pending_card_id.
(e_destination_is_empty): Check for a pending_card_id. We are
non-empty if we have one.
(e_destination_clear_card): Clear pending_card_id.
(e_destination_set_card): Clear pending_card_id.
(e_destination_has_pending_card): Added.
(e_destination_use_card): Added. An asynchronous way to load a
pending card and then apply a callback to it.
(build_field): Be paranoid, map our special characters to '_'.
(e_destination_export): Use EXPORT_MAX_FIELDS symbol rather than a
hard-wired array size. Added the "card" entry.
(e_destination_import): Fix bug in handling of the "name" field.
Process the "card" field.
(e_destination_touch): "Touch" and commit the ECard corresponding
to the e-mail address in the destination. (A query against the
local addressbook is actually performed, in case the destination
isn't cardified.
* backend/ebook/e-card-compare.c (e_card_compare_name): Revamp the
way E_CARD_MATCH_FOO results are mapped to comparison results.
Report better matches when the family name is matched.
svn path=/trunk/; revision=10626
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-05-18 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-bonobo.c
(entry_get_property_fn): Return the serialized EDestinations
(rather than just a string w/ e-mail addresses) through the bonobo
component's property bag.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_export_destinationv): Added. A convenience routine
for serializing the model's EDestinations into a string.
* gui/component/select-names/e-select-names-popup.c
(add_html_mail): Added. Puts in a check menu item for whether or
not the recipient wants HTML mail.
(popup_menu_card): Add menu item for HTML mail. Enable edit
contact info item.
(popup_menu_nocard): Add menu item for HTML mail. Enable edit
contact info item.
* backend/ebook/e-book-util.c (e_book_use_local_address_book):
Added. Fetches the local addressbook and caches it on the first
call. This is meant to be an easy and efficient way to get at the
local addressbook with the minimum of code.
(e_book_query_address_locally): Added. Convenience code that
does an e-mail only e_book_name_and_email_query against the
local address book.
* backend/ebook/e-destination.c
(e_destination_set_html_mail_pref): Added. Allows the intended
recipient's HTML mail preference to be manipulated.
(e_destination_get_email_verbose): Added. Cleaned up to use
e_destination_get_name.
(e_destination_get_html_mail_pref): Added. Read the recipient's HTML mail
preference. If the destination is linked to a card, the
preference is taken from the card (unless it has been explicitly
overridden by a called to e_destination_set_html_mail_pref).
(e_destination_get_address_textv): Added. Form a unified address string
from a NULL-terminated vector of EDestinations.
(e_destination_export): Added. Serialize an EDestination to a string.
(e_destination_import): Added. Unserialize a string to build an
EDestination.
(e_destination_exportv): Added. Serialize a NULL-terminated vector of
EDestinations to a string.
(e_destination_importv): Added. Unserialize a string to build a
NULL-terminated vector of EDestinations.
* gui/component/select-names/e-select-names-completion.c:
Implemented local versions of g_strcasecmp and g_strncasecmp
(which should really be in glib, I think...) for utf8, and used
them to make this code utf8-safe.
2001-05-18 Jon Trowbridge <trow@ximian.com>
* Makefile.am (evolution_mail_LDADD): Added libebook.la (which is
now required by the composer.)
2001-05-18 Jon Trowbridge <trow@ximian.com>
* e-msg-composer-hdrs.c (set_recipients): Properly unserialize the
string returned by the "text" property of the bonobo control,
convert it into EDestinations, and use them to get the e-mail
addresses of our recipients.
22001-05-18 Jon Trowbridge <trow@ximian.com>
* Makefile.am (SUBDIRS): Changed build order. Now addressbook
gets built before mail.
svn path=/trunk/; revision=9878
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-04-16 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_get_name): Added.
* gui/component/select-names/e-select-names.c
(real_add_address_cb): Use e_select_names_model_append. It's
nicer.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_append): Added.
* gui/component/select-names/e-select-names-completion.c
(book_query_process_card_list): Filter out completion matches that
don't have an associated e-mail address.
(book_query_score): Give a bonus to the primary address, so that
it always comes up first in the completion results.
* gui/component/e-address-popup.c (e_address_popup_refresh_names):
Convert utf8 strings into gtk strings before displaying.
svn path=/trunk/; revision=9390
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-31 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names.c
(real_add_address_cb): Call e_select_names_model_clean after
adding address. This should deal with the bug reports related
to stray commas.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_clean): Added. Remove all empty destinations.
* backend/ebook/e-destination.c (e_destination_is_empty): Added. Check
if an EDestination is in essentially a null state.
svn path=/trunk/; revision=9067
|
|
|
|
|
|
|
|
|
| |
2001-03-29 Kjartan Maraas <kmaraas@gnome.org>
* *.*: Clean up #includes. Replace <gnome.h>, <bonobo.h> and
<gtk/gtk.h> with more finegrained headers where needed.
svn path=/trunk/; revision=9026
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-06 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_replace): Fix a reference counting bug.
* gui/component/select-names/e-select-names-manager.c (popup_cb):
A callback for creating the appropriate popup by calling
e_select_names_popup.
(e_select_names_manager_create_entry): Connect popup_cb to the
entry's popup signal
* gui/component/select-names/e-select-names-popup.c: Added. Code
for popup right-click menus for recipient entries. Still a bit
incomplete.
* backend/ebook/e-destination.c (e_destination_get_email_num):
Added.
* contact-editor/e-contact-quick-add.c: Added. Some code and a
dialog for very quickly adding entries to the address book.
Still not fully working.
svn path=/trunk/; revision=8567
|
|
2001-03-01 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-table-model.c
(fill_in_info): Change for new EDestination/ESelectNamesModel API.
* gui/component/select-names/e-select-names-manager.c
(e_select_names_manager_get_source): Added. A function for
looking up the ESelectNamesModel by id. (I didn't end up using
this function, but it might come in handy later.)
(e_select_names_manager_get_cards): #if 0/#endif out this
function.
(e_select_names_manager_create_entry): Modified to attach an
ESelectNamesCompletion to the entry we create.
(completion_handler): A post-completion handler for our EEntry, to
take the completion's extra data (an EDestination) and properly
stick it into our ESelectNamesModel.
* gui/component/select-names/e-select-names.c
(real_add_address_cb): Changed to operate on EDestinations rather
than ECards and to use the new ESelectNamesModel API. This leads
to a rather nice code simplication.
(remove_address): Changed for new ESelectNamesModel API.
* gui/component/select-names/e-select-names-bonobo.c
(entry_get_property_fn): Rather than just passing the entry's text
through the property bag, get the "address text" from the model.
This returns a nice, verbose string of addresses with names
expanded when the address is tied to an ECard (i.e. "Jon
Trowbridge <trow@ximian.com>").
(impl_SelectNames_get_entry_for_section): Make the text property
read-only.
(entry_set_property_fn): ...and since it is read-only now, chop
out the setter code.
* gui/component/select-names/e-select-names-text-model.h:
* gui/component/select-names/e-select-names-text-model.c: Again,
this code has been (pretty much) totally rewritten to convert all
text operations into changes on the ESelectNamesModel. This lets
us give the associated EEntry some (IMHO) nice semantics regarding
whitespace, etc. Includes object activation, so destinations tied
to ECards are underlined and can be double-clicked to bring up a
contact editor.
* gui/component/select-names/e-select-names-model.h:
* gui/component/select-names/e-select-names-model.c: I've heavily
modified this object to both hide all implementation details
(which the old version exposed a bit too much for my peculiar
tastes) and to act as an EDestination container. The old code put
the text model operations here. I've moved them all to
ESelectNamesTextModel --- so the text model actions (insert,
delete, etc.) are all done through the API rather than operating on
ESelectNamesModel internals.
* gui/component/select-names/e-select-names-completion.c: Added. A
fairly complicated object derived from ECompletion that searches
our local addressbook in various and sundry ways.
* gui/component/select-names/e-select-names-completion.h:
* backend/ebook/e-destination.h:
* backend/ebook/e-destination.c: Added. This object encapsulates
a place to sent an email to, which can either be just a address as
a string ("trow@ximian.com"), a fancier string ("Jon Trowbridge
<trow@ximian.com>"), or an ECard and a specific address within
that ECard.
svn path=/trunk/; revision=8459
|