| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
'GNOME_UTILS_2_0_2'.
svn path=/tags/GNOME_UTILS_2_0_2/; revision=16870
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2002-02-01 Jeffrey Stedfast <fejj@ximian.com>
* backend/ebook/e-destination.c (e_destination_is_auto_recipient):
New function to find out if a destination was one which was
auto-matically set by Evolution.
(e_destination_set_auto_recipient): Set whether or not the dest is
an auto-recipient.
(e_destination_touch): Don't touch the address if it is an
auto_recipient.
(e_destination_list_to_vector_sized): New function to avoid having
to calculate the length of the list ourselves. Allows for a bit of
optimization if our caller knows the length of the list.
(e_destination_xml_encode): Encode the auto_recipient bit.
(e_destination_xml_decode): Decode the auto_recipient bit.
svn path=/trunk/; revision=15550
|
|
|
|
|
|
|
|
|
|
| |
2002-01-28 Jeffrey Stedfast <fejj@ximian.com>
* backend/ebook/e-destination.c (e_destination_is_valid): Revert
my previous change as trow says this will break auto-completion
stuff.
svn path=/trunk/; revision=15496
|
|
|
|
|
|
|
|
|
| |
2002-01-25 Jeffrey Stedfast <fejj@ximian.com>
* backend/ebook/e-destination.c (e_destination_is_valid): Don't
check for an @ in the email address. This is to fix bug #10960.
svn path=/trunk/; revision=15477
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-12-03 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_equal): Make address
comparisons case-insensitive. (Fixes 11776)
* backend/ebook/e-card.c (e_card_email_match_single_string): Make address
host comparisons case-insensitive. (Fixes 11776)
svn path=/trunk/; revision=14856
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-12-03 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-manager.c (focus_out_cb): Clean
ESelectNamesModel on focus-out. (Half of a fix for 15656)
* backend/ebook/e-destination.c (nonempty): Fix this function
and make it utf8-safe. (The other half of the fix for 15656)
svn path=/trunk/; revision=14855
|
|
|
|
|
|
|
|
|
| |
2001-10-27 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-destination.c (name_and_email_simple_query_cb,
nickname_simple_query_cb): Set book_uri when cardification occurs.
svn path=/trunk/; revision=14230
|
|
|
|
| |
svn path=/trunk/; revision=14211
|
|
|
|
|
|
| |
explicitly.
svn path=/trunk/; revision=14188
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-20 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_importv): Filter
out empty destinations. (also Bug #13036)
* printing/e-contact-print.c (e_contact_build_style): Use
gnome_font_new_closest; if gnome_font_new fails and returns NULL,
our spacing gets all messed up. (Bug #10785)
* gui/widgets/e-addressbook-view.c (e_addressbook_view_can_print):
Allow printing if there are any cards in our view. The selection
has nothing to do with it.
* backend/ebook/e-destination.c (e_destination_is_empty): Check
for strings that contain non-whitespace, rather than just looking
for a non-zero first character. (Bug #13036)
svn path=/trunk/; revision=13826
|
|
|
|
| |
svn path=/trunk/; revision=13612
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-10-11 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c
(e_destination_reverting_is_a_good_idea): Added. Heuristic for
whether or not we want to revert to an earlier cardified state.
(e_destination_cardify): Don't be quite as aggressive about
reverting to previous cardified states. (Bug #11890)
svn path=/trunk/; revision=13610
|
|
|
|
|
|
|
|
|
| |
2001-09-26 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_get_textrep): Use
camel_address_format, not camel_address_encode.
svn path=/trunk/; revision=13173
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-09-26 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-card-compare.c (e_card_compare_name_to_string):
Properly handle names when the individual elements (given,
addition, family) contain whitespace. (Bug #10502)
* backend/ebook/e-destination.c (e_destination_set_name): Reset
textrep when we change the name.
(e_destination_set_email): Reset textrep when we change the email.
(e_destination_get_textrep): Make sure that the textrep version of
the address is properly quoted if it contains unsafe characters.
(All related to bug #10796)
* gui/component/select-names/e-select-names-completion.c
(match_nickname): Fix nickname matching. (bug #9698)
(make_match): Use e_completion_match_new when building our match,
rather than ad hoc manipulation of the struct.
svn path=/trunk/; revision=13158
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-09-19 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (name_and_email_simple_query_cb):
Use the default e-mail address if we have nothing else to go on.
Previously we just failed, which basically meant that name-only
searches would never work properly.
(nickname_simple_query_cb): The logic was a bit tangled here; if
our query status isn't SUCCESS, always give up but don't leak the
destination. And if our nickname query fails and we try the
name-and-email query, use the textrep for a name-only search. The
only reason we are doing a nickname query in the first place is if
we have an obviously invalid e-mail.
(launch_cardify_query): Use e_destination_is_valid to determine
if we should try a nickname query first.
These changes basically fix bug 7728, and generally make the
auto-cardification of addresses a lot more clever and robust.
* backend/ebook/e-book-util.c (name_and_email_cb): Use
e_card_compare_name_to_string instead of e_card_name_match_string.
(e_book_name_and_email_query): The arguments to g_strsplit were
in the wrong order. Doh!
* backend/ebook/e-card-compare.c (e_card_compare_name_to_string):
Added. Replaces e_card_name_match_string, and actually works.
* backend/ebook/e-card.c: Removed e_card_name_match_string
function, which didn't work particularly well.
svn path=/trunk/; revision=13003
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-09-17 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_is_valid): We want
to assume that a destination that comes from a card is
automatically valid, but the right way to check that is by calling
e_destination_from_card, not by checking if dest->priv->card !=
NULL. (Fixed bug #10017)
svn path=/trunk/; revision=12930
|
|
|
|
|
|
|
|
|
| |
2001-09-12 Larry Ewing <lewing@ximian.com>
* backend/ebook/e-destination.c: free the values that are being
leaked here.
svn path=/trunk/; revision=12783
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-24 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_set_card): Put a
freeze/thaw around our the set of operations that changes the
internal state of our card, so 'changed' signal callbacks won't be
invoked on a card in an intermediary state. This fixes the bug
that was causing the e-mail addresses in cards to be blank when
replying to a message. (An unexpected side-effect of toshok's
change on 8/22 to make sure that priv->email != NULL).
(e_destination_get_name): Code slightly rearranged for (IMO)
clarity.
svn path=/trunk/; revision=12466
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-22 Chris Toshok <toshok@ximian.com>
* backend/ebook/e-destination.c (e_destination_get_email): make
sure we don't get into a situation where priv->email == NULL.
svn path=/trunk/; revision=12393
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-30 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-completion.c
(e_select_names_completion_do_query): Properly handle the case
where our "cleaned" completion is the empty string. This happens,
for example, if the query text is the string "\"". (Bug #5610).
* backend/ebook/e-destination.c (e_destination_get_address_textv):
Reassure fejj that I'm not doing something stupid here.
(e_destination_get_address): Fix address quoting. This is a
stop-gap measure until I can change this code to use Camel's
superior address-handling routines. (Also Bug #5610)
svn path=/trunk/; revision=11487
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-24 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_get_name): Added
fallbacks for the name in the case of an e-card, to avoid the
"nameless contact" bug.
svn path=/trunk/; revision=11358
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-17 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_set_string): Removed
old, broken code and annoying g_messages.
* backend/ebook/e-book-listener.c
(e_book_listener_queue_response): Hold a reference to the listener
while the idle function is active.
(e_book_listener_check_queue): Only release our reference to the
listener when the queue is empty. These two changes fix a race
condition, since the listener could be unrefed while the listener
was still active. (Seems to fix bug #4485)
svn path=/trunk/; revision=11164
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-15 Christopher James Lahey <clahey@ximian.com>
* backend/ebook/e-destination.c (e_destination_set_string):
Commented out some unused variables and labels.
(e_destination_importv): Check for the xml not parsing correctly
and just return NULL here.
* gui/component/select-names/e-select-names-model.c
(e_select_names_model_import_destinationv): Handle a NULL destv
here.
svn path=/trunk/; revision=11112
|
|
|
|
|
|
|
|
|
|
| |
2001-07-12 Jeffrey Stedfast <fejj@ximian.com>
* backend/ebook/e-destination.c (e_destination_xml_decode):
Oops. I introduced my own bug, accidently set `email' to a
g_free'd pointer - eek!
svn path=/trunk/; revision=11073
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-12 Jeffrey Stedfast <fejj@ximian.com>
* backend/ebook/e-destination.c (e_destination_importv): Optimized
the same way I optimized g_strsplit. If you use a GPtrArray
instead of a linked list, you save yourself from having to iterate
through the list an extra 3 times.
(e_destination_xml_decode): Do NOT, I repeat: do NOT!
e_utf8_xml1_decode something which is already in UTF-8 or you'll
corrupt it!! I smack thee who hath done this evil deed!
svn path=/trunk/; revision=11069
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-07-08 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-text-model.c
(e_select_names_text_model_insert_length): Check that str isn't
the empty string before doing an insert.
* backend/ebook/e-destination.c (e_destination_set_string): We were
being too smart for our own good here, and causing problems for
the completion code... (bug #4253, bug #4255, bug #4280)
(e_destination_set_name): Clear any cached address.
(e_destination_set_email): Clear any cached address.
(e_destination_get_address): Handle the cases where the name
contains some e-mail information.
svn path=/trunk/; revision=10901
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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-07-01 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_get_string): Fall
back to use the name field if all else fails (which can happen
with imported EDestinations).
svn path=/trunk/; revision=10665
|
|
|
|
|
|
|
|
|
|
| |
2001-07-01 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (e_destination_is_empty): Fix for the
"recipient not specified" bug --- we were not correctly checking
for whether or not an EDestination was actually empty.
svn path=/trunk/; revision=10664
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-06-30 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-destination.c (build_field): I was accidentally
comparing characters and strings here, and didn't see the compiler
warning. Fixed.
(e_destination_exportv): Don't export any empty destinations.
(bug#3825).
svn path=/trunk/; revision=10635
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 Jon Trowbridge <trow@ximian.com>
* printing/e-contact-print.c: Added #include <libgnome/gnome-paper.h>
* printing/e-contact-print-envelope.c: Added #include <time.h>
and #include <libgnome/gnome-paper.h>
* gui/component/select-names/e-select-names-completion.c
(match_email): Better handle matching of "nameless" contacts.
* backend/ebook/e-destination.c (e_destination_get_string): Better
handle the case of a "nameless" contact.
2001-03-29 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message): Save
the source URL using camel_mime_message_set_source.
* camel-mime-message.c (camel_mime_message_set_source): Renamed
camel_mime_message_set_identity to this. Sets the X-Evolution-Source
header.
(camel_mime_message_get_source): Returns the X-Evolution-Source
header.
2001-03-29 Jon Trowbridge <trow@ximian.com>
* mail-callbacks.c: Added #include <time.h> to get things
to compile.
* mail-callbacks.c (mail_generate_reply): Look at the
X-Evolution-Source header, and try to find a corresponding
account. If this works, send the mail from this account.
If not, use the default account.
* mail-ops.c (send_queue_send): Strip out the X-Evolution-Source
header before sending.
* mail-config.c (mail_config_get_account_by_source_url): Added.
Look up accounts by source URL.
svn path=/trunk/; revision=9032
|
|
|
|
|
|
|
|
|
| |
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
|