Commit Graph

411 Commits

Author SHA1 Message Date
8dd503d967 Fix command paths when we specify our pixmaps, so we don't get a lot of
2001-10-23  Jon Trowbridge  <trow@ximian.com>

	* gui/component/addressbook.c: Fix command paths when we specify
	our pixmaps, so we don't get a lot of totally useless & very ugly
	bonobo-ui spew.

	* backend/ebook/e-book-util.c (e_book_nickname_query): The empty
	string as an arg shouldn't generate a warning.

svn path=/trunk/; revision=13973
2001-10-24 03:04:01 +00:00
17a415bd21 We shouldn't leak the info returned by oaf_query.
2001-10-20  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book.c (activate_factories_for_uri): We
	shouldn't leak the info returned by oaf_query.

	* gui/contact-editor/e-contact-quick-add.c (card_added_cb): Remove
	superfluous call to quick_add_unref.
	(editor_closed_cb): Remove superfluous call to quick_add_unref.

	* gui/component/select-names/e-select-names.c (esn_get_key_fn): We
	need to unref the card returned by e_addressbook_model_get_card.

svn path=/trunk/; revision=13834
2001-10-21 00:19:25 +00:00
603c0228de Filter out empty destinations. (also Bug #13036)
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
2001-10-20 19:58:29 +00:00
8589cb0870 Made this take a const GList.
2001-10-18  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card.c, backend/ebook/e-card.h
	(e_card_list_get_vcard): Made this take a const GList.

svn path=/trunk/; revision=13773
2001-10-18 21:13:05 +00:00
1a671a3366 Lag our cardification on focus-out. This seems to help with the unintended
2001-10-18  Jon Trowbridge  <trow@ximian.com>

        * gui/component/select-names/e-select-names-manager.c
        (focus_out_cb): Lag our cardification on focus-out.  This seems to
        help with the unintended cardifications that can result from the
        weird focus-out/focus-in events that get generated when the popup
        disappears.

        * backend/ebook/e-card-compare.c: Removed some debug spew.

svn path=/trunk/; revision=13757
2001-10-18 17:37:59 +00:00
285881f829 Did a bit of clean up here. Might fix some crashes, specifically Ximian
2001-10-17  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card.c (e_card_get_vobject): Did a bit of clean
	up here.  Might fix some crashes, specifically Ximian bug #10164.

	* gui/widgets/e-addressbook-view.c (SPEC): Updated the model
	column numbers here.  Fixes Ximian bug #12308.

svn path=/trunk/; revision=13721
2001-10-17 08:09:12 +00:00
9a5d75225e add upgrade from 0.1 to 0.2, where we make sure id dbt's match vcard id's,
2001-10-17  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_upgrade_db):
	add upgrade from 0.1 to 0.2, where we make sure id dbt's match
	vcard id's, fixes longstanding bug (#7406) where cards were not
	modifiable or removable after having been created during a 1-2
	week long window in early betas.
	(PAS_BACKEND_FILE_VERSION): change to 0.2
	(PAS_ID_PREFIX): #define this here.
	(pas_backend_file_create_unique_id): use PAS_ID_PREFIX instead of
	the string.

svn path=/trunk/; revision=13720
2001-10-17 07:37:39 +00:00
e013e97032 Check for no extension
svn path=/trunk/; revision=13710
2001-10-16 22:17:33 +00:00
66da172519 If card->id is NULL, return an empty string. (e_card_set_id): Don't allow
2001-10-16  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-card.c (e_card_get_id): If card->id is NULL,
	return an empty string.
	(e_card_set_id): Don't allow the card id to be set to NULL; use
	the empty string instead.
	(e_card_get_vobject): When building our vcard, pass in the empty
	string as the id if card->id is NULL. (Bug #10164)

svn path=/trunk/; revision=13705
2001-10-16 21:27:59 +00:00
593a9e898b unref the book after we pass it off to evolution-addressbook.
2001-10-15  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client):
	unref the book after we pass it off to evolution-addressbook.

svn path=/trunk/; revision=13691
2001-10-15 23:41:14 +00:00
31c4879563 unref op->view. (pas_backend_ldap_process_create_card): ref op->view.
2001-10-15  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (create_card_dtor): unref
	op->view.
	(pas_backend_ldap_process_create_card): ref op->view.
	(remove_card_dtor): unref op->view.
	(pas_backend_ldap_process_remove_card): ref op->view.
	(modify_card_dtor): unref op->view.
	(pas_backend_ldap_process_modify_card): ref op->view.
	(ldap_search_dtor): unref op->view.
	(pas_backend_ldap_search): ref op->view.

svn path=/trunk/; revision=13690
2001-10-15 23:13:52 +00:00
16edd7e099 make sure to unref the book_view here so we don't leak them.
2001-10-15  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_get_book_view): make sure to unref the
	book_view here so we don't leak them.

svn path=/trunk/; revision=13680
2001-10-15 19:33:37 +00:00
dd9e321948 Properly decide whether a property needs to be marked as QP by searching
2001-10-15  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card.c (addPropValueQP, addPropValueSets,
	e_card_get_vobject): Properly decide whether a property needs to
	be marked as QP by searching for '\n'.  Fixes Ximian bug #3021.

svn path=/trunk/; revision=13675
2001-10-15 15:53:04 +00:00
c60e4c4a61 commit the importer originally from Michael M. Morrison, with fixups by
2001-10-12  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/evolution-ldif-importer.c: commit the importer
	originally from Michael M. Morrison, with fixups by toshok.

	* backend/ebook/Makefile.am (bin_PROGRAMS): add
	evolution-ldif-importer.
	(oaf_in_files): add
	GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in.

	* backend/ebook/e-card-simple.h: add WANTS_HTML and IS_LIST.

	* backend/ebook/e-card-simple.c (field_data): add WANTS_HTML and
	IS_LIST.
	(e_card_simple_set): fix typo.

	* backend/ebook/.cvsignore: ignore
	GNOME_Evolution_Addressbook_LDIF_Importer.oaf and
	evolution-ldif-importer.

	* backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in:
	ldif importer oafinfo.

svn path=/trunk/; revision=13627
2001-10-12 21:00:13 +00:00
12cd9f731c Added a boolean type here.
2001-10-12  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Added a boolean type here.

svn path=/trunk/; revision=13624
2001-10-12 19:29:27 +00:00
be75a3f952 On second thought, that should be a less-than-or-equal... :)
svn path=/trunk/; revision=13612
2001-10-12 03:50:16 +00:00
3253815c84 Added. Heuristic for whether or not we want to revert to an earlier
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-10-12 03:47:18 +00:00
f9b9d73b82 Changed these to use the new ref and unref functions for ECard auxillary
2001-10-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c (e_card_simple_destroy,
	fill_in_info, e_card_simple_sync_card, e_card_simple_set_phone,
	e_card_simple_set_address, e_card_simple_set_delivery_address,
	file_as_get_style, file_as_set_style, e_card_simple_set,
	e_card_simple_set_arbitrary),
	gui/contact-editor/e-contact-editor-address.c
	(e_contact_editor_address_destroy,
	e_contact_editor_address_set_arg,
	e_contact_editor_address_get_arg),
	gui/contact-editor/e-contact-editor-fullname.c
	(e_contact_editor_fullname_destroy,
	e_contact_editor_fullname_set_arg,
	e_contact_editor_fullname_get_arg),
	gui/contact-editor/e-contact-editor.c (phone_entry_changed,
	address_text_changed, name_entry_changed, full_name_clicked,
	full_addr_clicked, fill_in_info): Changed these to use the new ref
	and unref functions for ECard auxillary types.

	* backend/ebook/e-card-simple.h: Added a comment.

	* backend/ebook/e-card-types.h: Added ref_count field to all the
	types.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added ref and
	unref functions here for all the ECard auxillary types.  Removed
	the corresponding free functions.  Switched to using these
	functions where appropriate.

	* gui/component/addressbook-factory.c: #include
	<e-util/e-passwords.h>

	* gui/component/addressbook.c (load_uri_cb): const correctify.

	* gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names.c: #include
	<addressbook/gui/component/addressbook.h>

	* gui/widgets/e-addressbook-model.c (modify_card): Removed an
	unnecessary ref here.

svn path=/trunk/; revision=13604
2001-10-11 22:39:22 +00:00
81c256ebc1 Check that view->view != NULL. (save_contact_cb): Check that view->view !=
2001-10-11  Jon Trowbridge  <trow@ximian.com>

        * gui/component/addressbook.c (new_contact_cb): Check that
        view->view != NULL.
        (save_contact_cb): Check that view->view != NULL.
        (search_cb): Check that view->view != NULL.
        (delete_contact_cb): Check that view->view != NULL.
        (print_cb): Check that view->view != NULL.
        (print_preview_cb): Check that view->view != NULL.
        (stop_loading_cb): Check that view->view != NULL.
        (cut_contacts_cb): Check that view->view != NULL.
        (copy_contacts_cb): Check that view->view != NULL.
        (paste_contacts_cb): Check that view->view != NULL.
        (select_all_contacts_cb): Check that view->view != NULL.
        (send_contact_cb): Check that view->view != NULL.
        (send_contact_to_cb): Check that view->view != NULL.
        (update_command_state): Check that view->view != NULL.  Hold a
        reference to the AddressbookView for the duration of the function,
        in case we exit during bonobo-reentrancy.
        (addressbook_view_ref): Added.
        (addressbook_view_unref): Added.  Simple ref counting for
        AddressbookView objects.
        (addressbook_view_clear): Zero out an AddressbookView.  This is
        now separated from the deallocation of the AddressbookView object,
        so that we don't leave a dangling pointer if we exit during
        bonobo-reentrancy in update_command_state. (Which often seems to
        happen if we exit while addressbook operations are going on.)
        (destroy_callback): Replace previous call to addressbook_view_free
        with addressbook_view_clear/addressbook_view_unref calls.
        (addressbook_factory_new_control): Initialize the reference count
        in the AddressbookView object.

        * gui/widgets/e-addressbook-view.c (e_addressbook_view_destroy):
        Carefully zero out our destroyed object.
        (command_state_change): Hold a reference to ourselves during the
        signal emission.
        (get_selected_cards): Ref cards as we add them to the list.
        (e_addressbook_view_stop): Check for view != NULL.
        (e_addressbook_view_can_create): Check for view != NULL.
        (e_addressbook_view_can_print): Check for view != NULL.
        (e_addressbook_view_can_save_as): Check for view != NULL.
        (e_addressbook_view_can_send): Check for view != NULL.
        (e_addressbook_view_can_send_to): Check for view != NULL.
        (e_addressbook_view_can_delete): Check for view != NULL.
        (e_addressbook_view_can_cut): Check for view != NULL.
        (e_addressbook_view_can_copy): Check for view != NULL.
        (e_addressbook_view_can_paste): Check for view != NULL.
        (e_addressbook_view_can_select_all): Check for view != NULL.
        (e_addressbook_view_can_stop): Check for view != NULL.

        * gui/widgets/e-addressbook-model.c (addressbook_destroy): Be
        careful about zeroing out our destroyed object.

        * backend/ebook/e-book-view.c (e_book_view_stop): Added.  Stops
        event processing in the underlying listener.

svn path=/trunk/; revision=13578
2001-10-11 08:31:29 +00:00
c89b64cbc3 for some reason, matching on protocol is causing problems for me.
2001-10-04  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-book.c (activate_factories_for_uri): for some
	reason, matching on protocol is causing problems for me.
	disabling it for now.

svn path=/trunk/; revision=13415
2001-10-04 18:58:14 +00:00
dacd8610cb Strip out commas before forming our query. (match_name): Use
2001-10-02  Jon Trowbridge  <trow@gnu.org>

        * gui/component/select-names/e-select-names-completion.c
        (name_style_query): Strip out commas before forming our query.
        (match_name): Use e_card_compare_name_to_string_full, rather
        than our crufty old matching code.  Not only is this cleaner,
        but that crufty old code was very broken when it came to
        handling strings with whitespace. (Bug 8988)
        (match_nickname): utf8 and bug fixes.

        * backend/ebook/e-card-compare.c
        (e_card_compare_name_to_string_full): Added.  This is basically
        e_card_compare_name_to_string with a bunch of extra options, so
        that it can more readily be reused in other contexts.
        (e_card_compare_name_to_string): This is now just a call to
        e_card_compare_name_to_string_full with the extra args filled in
        to defaults that simulate the old behavior.

svn path=/trunk/; revision=13384
2001-10-03 20:01:07 +00:00
e1b0851d1a remove most of the oaf stuff from here. we do it in load_uri, where we'll
2001-10-02  Chris Toshok  <toshok@ximian.com>

        * backend/ebook/e-book.c (e_book_construct): remove most of the
	oaf stuff from here.  we do it in load_uri, where we'll have more
	information (namely, the protocol we're using.)
	(activate_factories_for_uri): do an oaf query to get a list of all
	objects implementing our BookFactory interface and also supporting
	the protocol used in the uri.
        (e_book_load_uri): try activating book factories to handle this
	uri, and start the iteration over the list.
        (e_book_load_uri_from_factory): try and load the uri.
        (e_book_load_uri_open_cb): callback function for the
	BookFactory_openBook call - if it succeeds, call the user's
	callback.  otherwise step to the next factory.
        (e_book_load_uri_step): go to the next factory in our list, and
	error out if there are no more.

svn path=/trunk/; revision=13358
2001-10-02 22:46:24 +00:00
bd549a75ae if there is a db error, assume deletion (pas_backend_file_changes): write
001-10-01  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_changes_foreach_key): if there is a db error,
	assume deletion
	(pas_backend_file_changes): write after all is done for efficiency

svn path=/trunk/; revision=13267
2001-10-01 18:27:46 +00:00
50f54e757c g_strdup (pas_backend_file_changes): ditto, make sure to free all data and
2001-09-28  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_changes_foreach_key): g_strdup
	(pas_backend_file_changes): ditto, make sure to free all data and
	do a hash write after each add/remove

	* conduit/address-conduit.c (local_record_to_pilot_record): use
	the local record category
	(local_record_from_ecard): ndle the fields and category we don't
	sync by making sure we don't overwrite them

svn path=/trunk/; revision=13232
2001-09-28 21:17:30 +00:00
cb20fd3b4a use priv->iid instead of the hardcoded string here.
2001-09-26  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book-factory.c (pas_book_factory_destroy): use
	priv->iid instead of the hardcoded string here.
	(pas_book_factory_activate): parameterize the factory's iid, as in
	the calendar server, and provide a default if iid == NULL.

	* backend/pas/pas-book-factory.h: add iid parameter for
	pas_book_factory_activate.

svn path=/trunk/; revision=13180
2001-09-27 00:05:03 +00:00
a232b28ce6 Use camel_address_format, not camel_address_encode.
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 23:16:00 +00:00
31f1562d14 Properly handle names when the individual elements (given, addition,
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-26 19:40:02 +00:00
781b9204d2 set the last_use and use_score fields of the card to known values so the
2001-09-26  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_changes): set
	the last_use and use_score fields of the card to known values so
	the card doesn't register as changed when only they have changed

2001-09-26  Peter Williams  <peterw@ximian.com>

 	* conduit/address-conduit.c (ecard_from_remote_record): Fix this function
 	to set email addresses properly, and handle multiple occurrences of
 	email addresses, home phone numbers, and business phone numbers.

svn path=/trunk/; revision=13153
2001-09-26 17:31:33 +00:00
917de6bd87 add evolutionperson.schema (EXTRA_DIST): add LDAP_SCHEMA to the dist (but
2001-09-24  Chris Toshok  <toshok@ximian.com>

	* backend/pas/Makefile.am (LDAP_SCHEMA): add
	evolutionperson.schema
	(EXTRA_DIST): add LDAP_SCHEMA to the dist (but don't install it).

svn path=/trunk/; revision=13107
2001-09-25 02:27:30 +00:00
211470db51 add getters for the additional name fields. (field_data): move FAMILY_NAME
2001-09-22  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-card-simple.c
	(e_card_simple_get): add getters for the additional name fields.
	(field_data): move FAMILY_NAME to the end of the list, and add
	GIVEN_NAME, ADDITIONAL_NAME (middle name), and NAME_SUFFIX.

	* backend/ebook/e-card-simple.h: same.

svn path=/trunk/; revision=13082
2001-09-22 21:13:28 +00:00
5abe315bb7 I'm slowly losing my mind.
OK, maybe it isn't such a slow process after all.

svn path=/trunk/; revision=13006
2001-09-20 04:51:45 +00:00
ac47ea73ab Yikes... fixing accidental breakage.
svn path=/trunk/; revision=13005
2001-09-20 04:50:13 +00:00
9ae341104a Use the default e-mail address if we have nothing else to go on.
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-20 02:23:41 +00:00
80b18f730d Freeing name[i] instead of namev[i] is a bad idea. (bug #10270)
2001-09-19  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book-util.c (e_book_name_and_email_query):
	Freeing name[i] instead of namev[i] is a bad idea. (bug #10270)

svn path=/trunk/; revision=12980
2001-09-19 17:27:51 +00:00
3835a0d437 add caluri field data
2001-09-18  JP Rosevear  <jpr@ximian.com>

 	* backend/ebook/e-card-simple.c (field_data): add caluri field data

 	* backend/ebook/e-card.c (e_card_get_vobject): add the caluri
 	property when appropriate
 	(parse_caluri): handle read caluri
 	(e_card_class_init): add caluri arg
 	(e_card_destroy): free the caluri
 	(e_card_get_arg): return caluri arg
 	(e_card_set_arg): set caluri from arg
 	(e_card_init): init caluri to null

 	* backend/ebook/e-card-simple.h: new simple field

 	* backend/ebook/e-card.h: new member

 	* gui/contact-editor/e-contact-editor.c (field_changed): util
 	callback to change the command state
 	(set_entry_changed_signal_field): hook up a change signal to above
 	(set_entry_changed_signals): use above function

 	* gui/contact-editor/e-contact-editor.glade: Add collaboration
 	page and fields

svn path=/trunk/; revision=12945
2001-09-18 19:20:21 +00:00
5a5022fd46 create a sexp and check if the cards match before adding them to the list
2001-09-18  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_build_cards_list): create a sexp and check if
	the cards match before adding them to the list
	(pas_backend_file_process_get_cursor): send extra param

svn path=/trunk/; revision=12940
2001-09-18 18:19:26 +00:00
f774ea81e5 use g_strfreev. (match_name): s/g_free/g_strfreev. (match_file_as):
2001-09-17  Larry Ewing  <lewing@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(name_style_query): use g_strfreev.
	(match_name): s/g_free/g_strfreev.
	(match_file_as): s/g_free/g_strfreev.

	* backend/ebook/e-book-util.c (e_book_name_and_email_query): fix
	the memory handling here.  All there members of the vector need to
	be freed all the time.

	* backend/ebook/load-pine-addressbook.c (parse_line): free the
	string outside of the test that makes sure there are three
	entries.

svn path=/trunk/; revision=12936
2001-09-18 05:11:31 +00:00
d448b80bd6 We want to assume that a destination that comes from a card is
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-18 02:31:05 +00:00
f346981c0c Do the right thing if the card we are trying to send to has no valid
2001-09-17  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-card.c (e_card_list_send): Do the right thing if
	the card we are trying to send to has no valid e-mail addresses.
	(bug #10137)

svn path=/trunk/; revision=12927
2001-09-18 02:03:46 +00:00
04b1bded1c fix syntax errors (which are broken, imo...)
2001-09-16  Chris Toshok  <toshok@ximian.com>

	* backend/pas/evolutionperson.schema: fix syntax errors (which are
	broken, imo...)

svn path=/trunk/; revision=12866
2001-09-17 00:45:36 +00:00
63a62abfad No loose name matches on family names. (#8802)
2001-09-15  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-card-compare.c (e_card_compare_name): No
	loose name matches on family names. (#8802)

svn path=/trunk/; revision=12857
2001-09-15 08:58:02 +00:00
25d7fddd4e Make "stop" do nothing but set the stopped flag, as in
2001-09-15  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book-listener.c (e_book_listener_stop): Make
	"stop" do nothing but set the stopped flag, as in
	e-book-view-listener.c.
	(e_book_listener_destroy): Clean up our queue here, rather than in
	e_book_listener_stop.
	(response_free): Added.  Move the rather lengthy bit of code
	needed to free a EBookListenerResponse into one place.
	(e_book_listener_check_queue): Properly deal with the stopped
	flag.
	(e_book_listener_queue_response): If the stopped flag is set, just
	drop the incoming response.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_stop): Make "stop" do nothing but set the
	stopped flag.
	(e_book_view_listener_destroy): Move all of the clean-up that used
	to be in e_book_view_listener_stop here.  This considerably simplifies
	the logic required to avoid various race conditions.
	(e_book_view_listener_check_queue): Properly deal with the stopped flag.
	(e_book_view_listener_queue_response): Drop all incoming responses if
	we are stopped.

2001-09-14  Jon Trowbridge  <trow@ximian.com>

	* backend/pas/pas-book.c (pas_book_queue_request): Hold a
	reference to the book on behalf of our idle function.
	(pas_book_check_queue): When we are finished, drop the reference
	we've been holding on behalf of the idle function.

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_create_card): Hold a reference to the
	book_view while sending our notifications.
	(pas_backend_file_process_remove_card): Hold a reference to the
	book_view while sending our notifications.

	* gui/contact-editor/e-contact-quick-add.c (quick_add_unref): Remove
	debugging spew.

	* backend/ebook/e-book-util.c: Remove a lot of unused code that
	worked around bugs that have long since been fixed.
	(simple_query_disconnect): Added.  Breaks out the part of
	simple_query_free that disconnect signals.
	(simple_query_free): Replace code w/ a call to
	simple_query_disconnect.
	(simple_query_sequence_complete_cb): Call simple_query_disconnect
	before executing the callback, so that our callbacks don't get
	triggered by any book changes that might occur during that
	callback.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_check_queue): Changed to be consistent with
	e_book_listener_check_queue.
	(e_book_view_listener_queue_response): Also changed to use a
	high-frequency timeout.

	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):
	OK, I've agonized over this stupid little function, and it should
	now be race-free.
	(e_book_listener_queue_response): We process our response queue in
	a high-frequency timeout rather than an idle.  Using an idle
	function leads to some tricky race conditions and bad interactions
	with bonobo's semi-broken attempts to take over event processing.
	(e_book_view_listener_stop): Manually disable our timeout and
	clean up.

svn path=/trunk/; revision=12851
2001-09-15 06:05:29 +00:00
b289057485 [Automake 1.5 fixes pointed out by Richard Boulton
<richard@tartarus.org>, as per #9258.]

* backend/pas/Makefile.am: Rename `LDAP_BACKEND_SOURCES' to
`LDAP_BACKEND_FILES'.

* backend/ebook/Makefile.am: Set CLEANFILES directly instead of
using `+='.

svn path=/trunk/; revision=12839
2001-09-14 23:22:58 +00:00
1ec654cc56 use ldap_init. ldap_open is deprecated in openldap 2.x.
2001-09-13  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): use
	ldap_init.  ldap_open is deprecated in openldap 2.x.

svn path=/trunk/; revision=12820
2001-09-14 01:46:05 +00:00
d4adafd589 Fix vcard importing
svn path=/trunk/; revision=12784
2001-09-12 21:43:29 +00:00
c8eb36beb8 free the values that are being leaked here.
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-12 21:20:37 +00:00
2e3a7b37fe See e_book_listener_check_queue below.
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-09-09 03:45:55 +00:00
79d3756857 add -DEVOLUTION_IMAGESDIR.
2001-09-06  Chris Toshok  <toshok@ximian.com>

	* gui/component/Makefile.am (INCLUDES): add -DEVOLUTION_IMAGESDIR.

	* gui/widgets/e-addressbook-view.c (card_deleted_cb): remove
	status messages from here.
	(e_addressbook_view_delete_selection): same.

	* gui/widgets/e-addressbook-model.c (sequence_complete): emit a
	NULL status message along with the stop_state_changed.  The null
	status message will clear the status bar for this view.

	* gui/component/addressbook.c (set_status_message): use the
	EvolutionActivityClient stuff.

	* backend/pas/pas-backend-ldap.c (view_destroy): remove status
	message for abandoning a search.
	(ldap_op_process_current): wrap status messages in _().
	(ldap_op_process): same.
	(create_card_handler): same, and remove the notify_status for ""
	and add a notify_complete call after the card is added.
	(remove_card_handler): same.
	(modify_card_handler): same.
	(poll_ldap): wrap status messages with _(), and remove the "Search
	Complete" message.
	(ldap_search_handler): wrap status message.

	* backend/pas/pas-backend-file.c (pas_backend_file_search): use
	_() on status messages, and make sure the last notify_* called is
	notify_complete.

svn path=/trunk/; revision=12663
2001-09-07 00:33:57 +00:00
bd7a7a7bb9 Check if the file is a VCard before importing
svn path=/trunk/; revision=12610
2001-09-04 23:11:00 +00:00
93b7d21156 I18n fixes (mainly making buttons on the right side less Anglocentric :-)
* backend/ebook/e-card-simple.c
(field_data): Marked "name" and "short_name" fields for translation.
(e_card_simple_get_name, e_card_simple_get_short_name): Return
localized version of the name (using U_() macro).

* gui/contact-editor/e-contact-editor.c (set_entry_changed_signals):
Connect "changed" signal from "entry-web" entry to widget_changed.
(changing this field wasn't making "Save and Close" button sensitive)

* gui/widgets/Makefile.am (glade_DATA): Removed alphabet.glade.

* gui/widgets/e-addressbook-view.c
(button_labels, button_letters): New strings containing a list of
labels and "values" of all buttons placed on the right side of the
addressbook view (intended for localization).
(struct LetterClosure): Changed the type of letter field to gunichar.
(e_utf8_split): New function, similar to g_strsplit, but operates on
UTF-8 strings.
(jump_to_letter): Don't hardcode letters, build queries dynamically
using UTF-8 and localized letters stored in button_letters.
(connect_button): Removed.
(create_alphabet): Don't use glade file, build buttons manually using
(localized) labels from button_labels. Use (localized) values from
button_letters when creating LetterClosure.

* gui/widgets/e-minicard-view-widget.[ch]
(e_minicard_view_widget_jump_to_letter): Changed the type of the
second argument from char to gunichar.

* gui/widgets/e-minicard-view.c
(compare_to_utf_str): Renamed from compare_to_letter, now operates on
UTF-8 string.
(e_minicard_view_jump_to_letter): Changed the type of the second
argument from char to gunichar + conversion to UTF-8 string.

* gui/widgets/e-minicard-view.h
(e_minicard_view_jump_to_letter): Changed the type of the second
argument from char to gunichar.

svn path=/trunk/; revision=12563
2001-09-02 20:09:16 +00:00