2002-04-26 Jeffrey Stedfast * printing/Makefile.am: Don't link to libibex anymore. * conduit/Makefile.am: Same. 2002-04-26 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_child_free): Unref the text_model here instead of the model, since the model never gets set. Removed the model field since it's no longer used. 2002-04-24 Christopher James Lahey * gui/component/ldap-config.c: Updated this for the new e_table_memory_store_insert function prototype. 2002-04-24 Christopher James Lahey * gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h, gui/component/select-names/select-names.glade (folder_browse): Added a "Browse..." button to switch to a different addressbook folder. * gui/widgets/e-addressbook-util.c (e_addressbook_transfer_cards): Moved extern EvolutionShellClient out of this function so that it'd be more readable. 2002-04-23 Christopher James Lahey * gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h: Coded handling of the select_entry to search within the displayed contacts. * gui/component/select-names/select-names.glade: Updated this dialog to have an entry-select instead of an entry-find. 2002-04-23 Christopher James Lahey * gui/component/select-names/select-names.glade: Updated this dialog to match the redesign. 2002-04-23 Christopher James Lahey * gui/widgets/e-addressbook-view.c (do_popup_menu): Make unused menu items disappear instead of graying out. 2002-04-23 Christopher James Lahey * gui/widgets/e-addressbook-reflow-adapter.c, gui/widgets/e-addressbook-reflow-adapter.h: Removed e_addressbook_reflow_adapter_right_click and e_addressbook_reflow_adapter_base_right_click. * gui/widgets/e-addressbook-view.c: Handle right click menu for both types of view. Merged right click on white space with right click on main area. General clean up. * gui/widgets/e-minicard-view-widget.c, gui/widgets/e-minicard-view-widget.h: Removed a couple unnecessary functions. Added e_minicard_view_widget_get_view. Added right_click signal. * gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h: Added the right_click signal and the e_minicard_view_get_card_list function. 2002-04-22 Christopher James Lahey * gui/component/select-names/e-select-names.h: Removed an unused variable here. * gui/widgets/e-addressbook-view.c (table_right_click, table_white_space_event): Added a current view submenu to the popup menu here. 2002-04-22 Jeffrey Stedfast * gui/widgets/e-minicard-view.c (e_minicard_view_drag_begin): Allow GDK_ACTION_COPY also, since the composer for example does not accept MOVE's. Completes bug #8448. 2002-04-18 Chris Toshok * gui/component/ldap-config.glade: change order of scope option menu to match how it's stored. 2002-04-18 Chris Toshok * gui/component/GNOME_Evolution_Addressbook.oaf.in: change ldap config control text so it fits in the config dialog. * gui/component/ldap-config.c: #ifdef lots of stuff HAVE_LDAP so it'll build/run in either case. (addressbook_source_dialog_destroy): rename addressbook_add_server_druid_destroy to this, and free lots more stuff. (addressbook_add_server_druid): addressbook_add_server_druid_destroy -> addressbook_source_dialog_destroy. (do_schema_query): add 3 second timeout to schema query. (addressbook_edit_server_dialog): hook up destroy signal. (config_control_new): if HAVE_LDAP isn't defined, put up a label saying so. 2002-04-18 Chris Toshok * gui/component/Makefile.am (INCLUDES): add LDAP_CFLAGS to INCLUDES 2002-04-18 Chris Toshok * gui/component/addressbook.c (book_open_cb): no more source->type. 2002-04-18 Chris Toshok * gui/component/ldap-config.c (addressbook_dialog_get_source): fill in source->ssl. (addressbook_source_dialog_set_source): set up auth/scope/ssl option menus properly. * gui/component/addressbook-storage.c (addressbook_storage_init_source_uri): always include the limit/ssl in the uri so we don't need to rely on defaults everywhere. (ldap_source_foreach): store the ssl option. * gui/component/addressbook-storage.h: reorder SSLType to match the UI. * backend/pas/pas-backend-ldap.c: (struct _PASBackendLDAPPrivate) add field for ldap_timeout. (pas_backend_ldap_connect): reorder things a bit - we need to start tls before the root dse query, if we can. (pas_backend_ldap_load_uri): track the way ssl parameters are given in the uri, and parse out the timeout. * gui/component/ldap-config.c (port_changed_func): use the symbolic SSL name instead of an integer constant. 2002-04-18 Chris Toshok * backend/pas/pas-backend-ldap.c (get_ldap_library_info): fix memory leaks. * gui/component/GNOME_Evolution_Addressbook.oaf.in: remove the Addressbook_ConfigControl stuff to LDAP_ConfigControl. * gui/component/Makefile.am (evolution_addressbook_SOURCES): remove addressbook-config.* and add ldap-config.* (glade_DATA): same. (evolution_addressbook_LDADD): add LDAP_LIBS. * gui/component/addressbook-component.c (owner_set_cb): addressbook_config_register_factory => ldap_config_register_factory. * gui/component/addressbook.c (book_open_cb): remove source->type check - they're always LDAP. (load_uri_cb): same. * gui/component/addressbook-storage.c (ldap_unparse_ssl): new function. (ldap_parse_ssl): new function. (addressbook_storage_init_source_uri): use a more flexible scheme to build up the uri's, and add in the ssl parameter. (load_source_data): fill in source->ssl, and remove source->type assignment. (addressbook_source_copy): copy source->ssl, and remove source->type copy. (create_ldap_folder): addressbook_create_new_source => ldap_config_create_new_source. * gui/component/addressbook-storage.h: remove AddressbookSourceType (it was always LDAP), and add AddressbookLDAPSSLType. 2002-04-18 Dan Winship * backend/ebook/e-book-util.c (e_book_load_default_book): Append /addressbook.db to the end of the default URI if it starts with file: * backend/ebook/e-book.c (e_book_load_uri_step): Fix this to not loop forever if you have more than one backend. 2002-04-17 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_create_categories): Changed this to use ECategoriesMasterListOptionMenu. * gui/component/select-names/e-select-names.c (section_right_click_cb), gui/widgets/e-addressbook-reflow-adapter.c, gui/widgets/e-addressbook-view.c: Updated these to match the new EPopupMenu. 2002-04-11 Christopher James Lahey * gui/component/addressbook-component.c: Include addressbook-config.h here as this file uses it. * gui/component/select-names/e-select-names.c (SPEC, SPEC2): Made this dialog searchable by typing in the ETable. * gui/widgets/e-addressbook-model.c: Include e-addressbook-util.h here. * gui/widgets/e-addressbook-reflow-adapter.c (e_addressbook_reflow_adapter_right_click), gui/widgets/e-addressbook-view.c (table_right_click): Fixed a memory leak here by using "selection-done" signal. * gui/widgets/e-addressbook-reflow-adapter.c, gui/widgets/e-addressbook-reflow-adapter.h, gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-view.c: Added a right click menu for areas that aren't cards. 2002-04-09 Dan Winship * backend/ebook/e-book-util.c (e_book_load_default_book): Update for new-and-improved consistent default folder uri. * gui/component/addressbook.c (addressbook_load_default_book): Use e_book_load_default_book rather than duplicating most of its logic here. (load_uri_cb): Modify to work as a callback for addressbook_load_default_book as well as addressbook_load_uri. 2002-04-08 Dan Winship * gui/component/addressbook-component.c (create_view): Add view_info arg, but don't do anything with it. 2002-04-06 JP Rosevear * gui/component/GNOME_Evolution_Addressbook.oaf.in: add config_item:type 2002-04-04 JP Rosevear * conduit/Makefile.am: link to the static libversit 2002-04-04 Dan Winship * gui/widgets/e-addressbook-util.c (e_addressbook_transfer_cards): Update for evolution_shell_client_user_select_folder API change. 2002-04-04 Ettore Perazzoli * gui/component/addressbook.c: Remove AddressbookConfig, ContactNew, ContactNewList EPixmap entries. * gui/component/addressbook-factory.c (main): Print out a debugging message just before the main loop starts, for debugging purposes. 2002-04-02 Dan Winship * backend/ebook/e-card-simple.h: Fix spelling of E_CARD_SIMPLE_PHONE_ID_TTYTDD and E_CARD_SIMPLE_FIELD_PHONE_TTYTDD (they previously ended with "TTD" instead of "TDD") * backend/ebook/e-card-simple.c: Update for spelling fix. * backend/pas/pas-backend-ldap.c: Likewise 2002-04-01 Dan Winship * gui/component/select-names/e-select-names-text-model.c: parent_class should be static. (From Max Horn ) 2002-03-29 Ettore Perazzoli * gui/component/GNOME_Evolution_Addressbook.oaf.in: Add priority for the config page. Renamed to "Directory Servers". 2002-03-27 Chris Toshok * backend/pas/pas-backend-file.c (pas_backend_file_process_create_card): don't free req->vcard. it's freed in pas_book_free_request. (pas_backend_file_process_remove_card): don't free req->id for the same reason. (pas_backend_file_process_modify_card): don't free req->vcard for the same reason. (pas_backend_file_process_get_changes): don't free req->change_id or release_unref the listener for the same reason. 2002-03-27 Chris Toshok * backend/pas/pas-backend-ldap.c (check_schema_support): make sure to call ldap_value_free (values);, and ldap_msgfree (resp). (get_ldap_library_info): don't ask me why, but it appears we have to free each extension char*. (query_ldap_root_dse): make sure to free values in the subschemaSubentry code before overwriting it, and call ldap_msgfree(resp) when we're all done. (build_card_from_entry): don't leak the DN, ldap attributes, or the berval the ldap_*_attribute calls use to step through the attributes. the docs say this berval is freed when ldap_next_attribute returns NULL, but if we don't free it it leaks a substantial amount of memory. (pas_backend_ldap_search): make sure to only allocate *op once, and fix the g_warning since op isn't valid in its scope anymore. 2002-03-19 Dan Winship * backend/ebook/Makefile.am: Update for libversit change: Use .a rather than .la now. * printing/Makefile.am: Likewise * gui/component/Makefile.am: Likewise 2002-03-18 Ettore Perazzoli * gui/component/addressbook.c (addressbook_menu_activated): Removed. (addressbook_factory_new_control): Don't connect anymore, as this signal has been removed from the ESearchBar. (addressbook_factory_new_control): No more custom menu items here. 2002-03-15 Jeffrey Stedfast * gui/widgets/e-addressbook-view.c (table_right_click): Update to use new EPopupMenu API. * gui/widgets/e-addressbook-reflow-adapter.c (e_addressbook_reflow_adapter_right_click): Update to use new EPopupMenu API. * gui/component/select-names/e-select-names.c (section_right_click_cb): Update to match new EPopupMenu api. 2002-03-15 Ettore Perazzoli * gui/component/addressbook.c: Remove the `addressbook_search_menu_items'. (addressbook_menu_activated): Removed. (addressbook_factory_new_control): Don't connect. No menu items. 2002-03-15 Ettore Perazzoli * gui/component/addressbook.c (control_activate): Call `e_search_bar_set_ui_component()' to set the BonoboUIComponent for the search bar. * gui/component/GNOME_Evolution_Addressbook.oaf.in: Add an icon for the LDAP sources configuration control. 2002-03-12 Ettore Perazzoli * gui/component/addressbook.c: Remove verb "AddressbookConfig". (config_cb): Removed. * gui/component/addressbook-config.c: Remove `dialog' member from `AddresbookDialog'. Instead, add a `config_control' member. (config_control_new): New. (addressbook_config): Removed. (addressbook_config_register_factory): New. (config_control_factory_fn): New, factory function for the ConfigControl page. (addressbook_source_edit_changed): Don't change the sensitivity of the dialog. Rather, invoke ::changed on the ConfigPage. (auth_checkbutton_changed): No need to manually change the sensitiviness of the buttons here either. (add_source_clicked): Likewise, just invoke evolution_config_control_changed(). (edit_source_clicked): Likewise. (addressbook_dialog_close): Removed. (config_control_destroy_callback): New, callback for when the config control gets destroyed. (addressbook_dialog_apply): Removed. (config_control_apply_callback): New callback for EvolutionConfigControl::apply. (addressbook_dialog_ok): Removed. (addressbook_config_control_new): Set up ->config_control and connect the signals. * gui/component/addressbook-config.glade: Call the main hbox in the addressbook_sources dialog `addressbook_sources_main_hbox'. * gui/component/addressbook-component.c (owner_set_cb): Call `addresbook_config_register_factory'. * gui/component/GNOME_Evolution_Addressbook.oaf.in: Add items for OAFIID:GNOME_Evolution_Addresbook_ConfigControl and OAFIID:GNOME_Evolution_Addressbook_ConfigControlFactory. 2002-03-11 Chris Toshok * gui/component/select-names/e-select-names.c (update_query): change contains x-evolution-any-field to beginswith on email, full_name, and nickname. faster, and more applicable to this dialog. 2002-03-09 Chris Toshok * backend/idl/addressbook.idl: add TLSNotAvailable to BookLister_CallStatus. * backend/ebook/e-book-types.h: add TLS_NOT_AVAILABLE to the EBookStatus enum. * backend/ebook/e-book-listener.c (e_book_listener_convert_status): add TLS_NOT_AVAILABLE to the switch. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_get_static_capabilities): fix name. (pas_backend_ldap_class_init): fix name. (pas_backend_ldap_connect): change return type to CallStatus so we can return different errors from here. Also, do STARTTLS if the user has asked for it and the connection supports it, returning TLSNotAvailable (and close the connection) if they chose to require it. (pas_backend_ldap_load_uri): return pas_backend_ldap_connect. (func_beginswith): pull in change from evolution-1-0-branch to make full_name beginswith search both cn and sn. 2002-03-09 Chris Toshok * gui/widgets/e-addressbook-view.c (jump_to_letter): since I've gone ahead and made the file backend (by way of pas-backend-card-sexp.c) use case insensitive searches for beginswith, there's no need to list upper and lower case here. * gui/component/addressbook.c (addressbook_search_option_items): reorder things to put "Any field contains" at the end, since it's the least efficient search. Also reorder the enum to the same ordering. Change "Name contains" to "Name begins with" and change "Email contains" to "Email is". (addressbook_search_activated): change FULL_NAME to beginswith, and change EMAIL to is to match the labels. * backend/pas/pas-backend-card-sexp.c (compare_name): new function, so we can compare both full and family names (so beginswith can operate on them both.) (endswith_helper): use e_utf8_strstrcase here, since all the backends backends use case insensitive searching. (func_endswith): same. 2002-03-06 Chris Toshok * backend/pas/pas-book.c (pas_book_queue_create_card): track union/struct change. (pas_book_queue_remove_card): same. (pas_book_queue_modify_card): same. (pas_book_queue_get_cursor): same. (pas_book_queue_get_vcard): same. (pas_book_queue_authenticate_user): same. (pas_book_queue_get_book_view): same. (pas_book_queue_get_changes): same. (pas_book_free_request): new function - free everything we need to for each type of request. (pas_book_destroy): call pas_book_free_request here instead of just freeing 3 elements of the old struct. yay plugging memleaks. * backend/pas/pas-book.h: make PASRequest a union and split out members into structs, so it's a little clearer which fields are used by which requests. Also, add prototype for pas_book_free_request so backends can just free everything at once (usually in their requests_queued signal func.) * backend/pas/pas-backend-file.c (pas_backend_file_process_create_card): track struct/union change. (pas_backend_file_process_remove_card): same. (pas_backend_file_process_modify_card): same. (pas_backend_file_build_cards_list): same. (pas_backend_file_process_get_vcard): same. (pas_backend_file_process_get_cursor): same. (pas_backend_file_process_get_book_view): same. (pas_backend_file_process_get_changes): same. (pas_backend_file_process_check_connection): same. (pas_backend_file_process_authenticate_user): same. (pas_backend_file_process_get_supported_fields): same. (pas_backend_file_process_client_requests): case the union to the specific struct and pass it to the process_* functions. also, call pas_book_free_request here, instead of relying on each of the functions to free their stuff. 2002-03-07 Dan Winship * gui/component/addressbook-storage.c (addressbook_get_other_contact_storage): Update for evolution_storage_new() change. 2002-03-05 Chris Toshok * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_realize): don't set "editable" here, as the way things work the backend isn't able to override a setting from the UI, so writable books never show up as writable. 2002-03-04 Chris Toshok [fixes bug #20871] * gui/component/select-names/select-names.glade: add the status-message label. * gui/component/select-names/e-select-names.h (struct _ESelectNames): add status_message field. * gui/component/select-names/e-select-names.c (status_message): new function, set the label's text from the message. (e_select_names_init): get the status-message label, and if it's valid, connect to the status_message signal of the EAddressbookModel. 2002-02-28 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_search): don't ref the view here, since it keeps the view alive until the search is over, which we don't want. we want the view's death to cancel the search. This speeds up starting new searches after one is already active (since switching searches actually creates a new book view and destroys the old one.) (ldap_search_dtor): remove the matching unref here. The unref as it was was incorrect anyway, and caused a crash (we needed search_op->view, not op->view.) 2002-02-27 Chris Toshok [fixes bug #20690] * backend/pas/pas-backend-ldap.c (func_and): the data arg is not GList** anymore, it's PASBackendLDAPSExpData*, so use ldap_data->list instead of *list. (func_or): same. (func_not): same. (func_contains): same. (func_is): same. (func_endswith): same. (func_beginswith): same, but also special case the beginswith "fileAs" query type (the one used by the alphabet buttons on the right hand side, so we can deal with entries that don't have fileAs attributes, and return meaningful responses.) (pas_backend_ldap_build_query): initialize the PASBackendLDAPSExpData struct and pass that instead of &list. Also, take the PASBackendLDAP arg to add to the struct in case we need it at some point in the future. (ldap_search_handler): pass in the PASBackendLDAP. 2002-02-26 Chris Toshok * backend/pas/pas-backend-file.c (pas_backend_file_search): move card_count++ inside the if that checks to see if a card matches (and adds the card to the list). 2002-02-24 Chris Toshok * gui/component/addressbook.c (addressbook_query_changed): only handle the ESB_ADVANCED case here now. the actual query work is done in addressbook_search_activated. (addressbook_search_activated): split out all the searching functionality here. (addressbook_factory_new_control): hook up "search_activated" to addressbook_search_activated. 2002-02-24 Chris Toshok * gui/component/addressbook-config.c (addressbook_source_dialog_set_source): make the right auth page start up open. * gui/component/addressbook-storage.c (addressbook_source_free): free the binddn. (addressbook_source_copy): copy the binddn; 2002-02-22 Chris Toshok [ Fixes bugs 20740, 16680, and god knows what else :) ] * gui/widgets/e-addressbook-model.c (create_card): double the allocated size every time we need more space instead of using a fixed size increment. this helps huge queries. Also, remove the gtk_object_get of "file_as", as it was dead code. (book_view_loaded): handle errors here (by popping up a dialog). * backend/pas/pas-backend-ldap.c (view_destroy): search_idle -> search_timeout. (build_card_from_entry): comment out some spew, and unref ecard when we're done to plug a memory leak. (send_pending_adds): send along to the client all the cards we've been saving up. (poll_ldap): use a timeout for ldap_result to keep the backend from blocking (and it turns out keep the frontend from hanging waiting on a ref to complete) on large db's with few matches. Also, add some fairly smart, self-tuning aggregating of cards. Keep track of the number of cards we've sent the last time through as well as this time, and estimate the number we want to aggregate the next time based on them (we average them at the moment), subject to maximum/minimum number of cards. also, we have a maximum aggregation time, after which we force a flush if there are pending cards and recalculate our target pending number. there's a minimum wait time to possibly keep outselves from spamming the ui, although it's 0 at the moment. Lastly, make sure to only notify the GUI of status messages when we need to. this results in a *huge* savings. (ldap_search_handler): initialize all the pending card stuff, and use a timeout instead of an idle function for poll_ldap. * backend/ebook/e-book-view-listener.c (e_book_view_listener_queue_response): performance optimization for large adds. If we're a CardAddedEvent and there's an existing CardAddedEvent at the end of the queue, just concat the lists of cards together. This is to keep the gui from falling further and further behind the ldap backend, which is merrily spewing updates at the gui. 2002-02-21 Ettore Perazzoli * gui/component/Makefile.am: Define $(iconsdir). * gui/component/addressbook-component.c (add_creatable_item): New helper function. (create_component): Add the icons for the user creatable items as well. 2002-02-20 Chris Toshok * backend/pas/pas-backend-file.c (pas_backend_file_load_uri): track change to signature, and (for now) just change all the return FALSE's to _RepositoryOffline (what FALSE used to map to in pas_book_factory_process_request), and change TRUE to _Success. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_load_uri): track change to signature, and differentiate between pas_backend_ldap_connect failing (RepositoryOffline), and ldap_url_parse failing (OtherError). * backend/pas/pas-book-factory.c (pas_book_factory_process_request): since pas_backend_load_uri returns status now, use it to nodify the BookListener if there's a failure. * backend/pas/pas-backend.c (pas_backend_load_uri): track change to signature. * backend/pas/pas-backend.h: change return type of pas_backend_load_uri to GNOME_Evolution_Addressbook_BookListener_CallStatus to allow differentiation between failure types. * backend/ebook/e-book-listener.c (e_book_listener_convert_status): handle _AUTHENTICATION_FAILED. * backend/ebook/e-book-types.h (EBookStatus): add _AUTHENTICATION_FAILED. 2002-02-18 Chris Toshok * backend/pas/pas-book-factory.c (pas_book_factory_process_request): if the load_uri fails, notify the listener that the repository is offline. (partial fix for bug 20347) 2002-02-18 Chris Toshok * backend/pas/pas-backend-ldap.c (create_dn_from_ecard): escape commas in the dn, since they're used by ldap to specify the node's placement in the tree. (fixes bug 20089) (rfc2254_escape): just use sprintf and %02X instead. 2002-02-13 Christopher James Lahey * gui/component/select-names/e-select-names.c (set_book): Keep a ref of the model in this case as well. 2002-02-13 Christopher James Lahey * gui/component/select-names/e-select-names.c (set_book): Make sure to only set the query once when creating a new book and not at all on addressbook model creation. This prevents an accidental pair of changes from making the addressbook model load a remote addressbook. * gui/widgets/e-addressbook-model.c (get_view): If this is the first_get_view and the addressbook is remote, empty the view instead of leaving it in the state it used to be in. This only occurs if you set the book after the model has existed for a while. (e_addressbook_model_set_arg): When setting the book, set first_get_view to TRUE. 2002-02-13 Christopher James Lahey * gui/widgets/e-addressbook-view.c (display_view): Attach to the emvw instead of the emv here. * gui/widgets/e-minicard-view-widget.c, e-minicard-view-widget.h: Made this object have a "column_width" argument and a "column_width_changed" signal which are a simple layer down to the EMinicardView contained within. * gui/widgets/gal-view-minicard.c, gui/widgets/gal-view-minicard.h (gal_view_minicard_attach): Made this attach to an EMinicardViewWidget instead of a EMinicardView. 2002-02-13 Christopher James Lahey * backend/ebook/e-book-util.c, backend/ebook/e-book-util.h (e_book_expand_uri, e_book_load_address_book_by_uri, e_book_use_address_book_by_uri): New functions that take a file:// url ending in the directory name and automatically append the addressbook.db and do the appropriate thing. * backend/pas/pas-backend-card-sexp.c, backend/pas/pas-backend-card-sexp.h: Added copyright notice here. * gui/component/addressbook-component.c (destination_folder_handle_drop), gui/component/addressbook.c (set_prop): Use e_book_expand_uri instead of addressbook_expand_uri. * gui/component/addressbook-storage.c: Fixed the fcntl include here. * gui/component/addressbook.c (ContactsCopyToFolder, ContactsMoveToFolder): Added handlers for these two verbs. * gui/component/addressbook.h: Removed addressbook_expand_uri in favor of e_book_expand_uri. * gui/widgets/e-addressbook-reflow-adapter.c (transfer_cards): Added code to handle Move to and Copy to right click menu items. * gui/widgets/e-addressbook-util.c, gui/widgets/e-addressbook-util.h (e_addressbook_transfer_cards): New function to pop up a dialog and transfer a set of cards to the given folder. * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h (display_view): Don't attach to the view if it doesn't exist yet. We have to make this then attach later. (e_addressbook_view_copy_to_folder, e_addressbook_view_move_to_folder): New functions utilizing e_addressbook_transfer_cards. (table_right_click): Add copy_to_folder and move_to_folder to the right click menu for tables here. (e_addressbook_view_discard_menus): Handle menu unmerging here. * gui/widgets/e-minicard-view-widget.h (struct _EMinicardViewWidget): Removed unused field. 2002-02-13 Christopher James Lahey * gui/widgets/e-addressbook-view.c (display_view): Attach the GalViewMinicard to the EMinicardView here. * gui/widgets/gal-view-minicard.c, gui/widgets/gal-view-minicard.h (gal_view_minicard_load, gal_view_minicard_save): Made these save the column width of the view. (gal_view_minicard_attach, gal_view_minicard_detach): Added these functions to allow the GalViewMinicard to set the column width of a EMinicardView and to monitor its changes. 2002-02-12 Christopher James Lahey * gui/widgets/e-addressbook-reflow-adapter.c (addressbook_get_arg): Added an argument to get the model. * gui/widgets/e-addressbook-view.c (writable_status): Don't bother connecting to the writable_status callback on the book, simply rely on the writable_status callback on the addressbook model. * gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h (set_empty_message): Handle the case of a read only view here. 2002-02-07 JP Rosevear * gui/component/addressbook-component.c (create_component): remove "New" from user creatable menu items 2002-02-07 Christopher James Lahey * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h (e_addressbook_view_setup_menus): Changed this function to use the new GalViewMenus which takes a GalViewInstance, instead of a GalViewCollection. 2002-02-04 JP Rosevear * gui/contact-editor/e-contact-editor.c (find_address_mailing): tidy * conduit/address-conduit.c (addrconduit_load_configuration): load default address setting (addrconduit_save_configuration): save default address setting (e_addr_gui_new): new gui routine for conduit settings (e_addr_gui_fill_widgets): ditto (e_addr_gui_fill_config): ditto (e_addr_gui_destroy): ditto (e_addr_context_destroy): destroy the gui and new_cfg (local_record_from_ecard): reinstate commented out bits, determine which address to sync to pilot (ecard_from_remote_record): determine which address to sync from pilot (fill_widgets): put the gui widgets in (create_settings_window): create gui (save_settings): fill gui 2002-02-04 JP Rosevear * gui/contact-editor/e-contact-editor.c (address_text_changed): if the shown address in the mailing address or there is no mailing address, set the default flag and make sure the button is checked (address_mailing_changed): set the flags properly when the mailing address changes (e_contact_editor_init): listen for the check button being toggled (find_address_mailing): find the address (if any) with the default flag (set_address_field): set the mailing address button appropriately (fill_in_info): find the mailing address * gui/contact-editor/e-contact-editor.h: add new class data member * gui/contact-editor/contact-editor.glade: show mailing address check button 2002-02-01 Jeffrey Stedfast * 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. 2002-02-01 Christopher James Lahey * backend/ebook/e-card-simple.c (e_card_simple_sync_card): Made this preserve addressbook flags other than the first three. * backend/ebook/e-card-types.h: Added E_CARD_ADDR_MASK and E_CARD_ADDR_DEFAULT. * backend/ebook/e-card.c (get_address_flags): Added "PREF" to E_CARD_ADDR_DEFAULT mapping. * backend/ebook/test-client.c: Added #include "e-book-util.h". 2002-01-30 Chris Toshok * backend/pas/pas-backend-file.c (pas_backend_file_changes): compute the change db filename based on our contact db filename. (pas_backend_file_load_uri): store the filename in bf->priv->filename. (pas_backend_file_destroy): free the filename, and (!) free bf->priv too. 2002-01-28 Jeffrey Stedfast * backend/ebook/e-destination.c (e_destination_is_valid): Revert my previous change as trow says this will break auto-completion stuff. 2002-01-27 Ettore Perazzoli * gui/contact-editor/Makefile.am: Use EVOLUTION_ADDRESSBOOK_CFLAGS. * gui/contact-list-editor/Makefile.am: Likewise. * gui/merging/Makefile.am: Likewise. * gui/search/Makefile.am: Likewise. * gui/component/select-names/Makefile.am: Likewise. 2002-01-25 Jeffrey Stedfast * backend/ebook/e-destination.c (e_destination_is_valid): Don't check for an @ in the email address. This is to fix bug #10960. 2002-01-24 Chris Toshok [ fixes bug 16097 ] * gui/component/addressbook-config.glade: gui love for the new auth stuff. * gui/component/addressbook.c (load_uri_cb): track change to auth, and offer up different prompt strings depending on which method (binddn or email) we're using. * gui/component/addressbook-storage.c (ldap_unparse_auth): use the new auth types for ldap. (ldap_parse_auth): same. (addressbook_storage_auth_type_to_string): new function. (load_source_data): get the binddn too. (ldap_source_foreach): store out binddn or emailaddr, depending on the auth type chosen. * gui/component/addressbook-storage.h: add the more detailed auth types, add "binddn" to the source structure, and add a prototype for addressbook_storage_auth_type_to_string. * gui/component/addressbook-config.c (auth_checkbutton_changed): set the auth stuff (in)sensitive. (auth_optionmenu_activated): new function. (addressbook_source_dialog_set_source): track UI change. (addressbook_source_dialog_get_source): same. (add_scope_activate_cb): rename add_activate_cb to this to distinguish it from the auth stuff. (add_auth_activate_cb): new function. (addressbook_source_dialog): track change to auth UI stuff. (addressbook_storage_auth_type_to_string): new function. * backend/ebook/e-book.h: add auth_method arg to e_book_authenticate_user. * backend/ebook/e-book.c (e_book_authenticate_user): track change to prototype - add auth_method arg, and pass it along to the CORBA call. * backend/ebook/test-client.c (book_open_cb): track api change - keep this building. * backend/pas/pas-book.h: add auth_method slot in PASRequest. * backend/pas/pas-book.c (pas_book_queue_authenticate_user): add auth_method arg and add it to the PASRequest. (impl_GNOME_Evolution_Addressbook_Book_authenticateUser): track idl change, add auth_method and pass it along to pas_book_queue_authenticate_user. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_authenticate_user): support both "ldap/simple-email" and "ldap/simple-binddn" auth methods. * backend/idl/addressbook.idl: add "in string authMethod" to authenticateUser. 2002-01-24 Ettore Perazzoli * conduit/Makefile.am: Use EVOLUTION_ADDRESSBOOK_CONDUIT_CFLAGS and EVOLUTION_ADDRESSBOOK_CONDUIT_LIBS and remove unused flags * gui/component/Makefile.am: Use EVOLUTION_ADDRESSBOOK_CFLAGS and EVOLUTION_ADDRESSBOOK_LIBS and remove unused flags. * backend/pas/Makefile.am: Likewise. * backend/ebook/Makefile.am: Likewise. * printing/Makefile.am: Likewise. * backend/ebook/Makefile.am: Likewise. * gui/widgets/Makefile.am (INCLUDES): Likewise. 2002-01-23 Ettore Perazzoli * gui/component/addressbook-component.c (create_component): Pass a NULL @icon to `evolution_shell_component_add_user_creatable_item()'. 2002-01-23 Ettore Perazzoli * gui/contact-editor/e-contact-editor-address.c: #include . 2002-01-22 Chris Toshok [ fixes bug # 16864 ] * backend/ebook/evolution-ldif-importer.c (getValue): create and return a GString here, instead of writing to a fixed size buffer. (parseLine): use a GString here instead of a fixed size buffer. 2002-01-21 Christopher James Lahey * backend/pas/pas-backend-ldap.c (ldap_search_handler): Set the number of cards to return to the value specified in the ldap uri, leaving the default at 100. Fixes Ximian bug #13953. * gui/component/addressbook-config.c (addressbook_source_dialog), gui/component/addressbook-config.glade: Added a limit entry here to edit the limit field of the source. * gui/component/addressbook-storage.c, gui/component/addressbook-storage.h (addressbook_storage_init_source_uri): Added a limit field to this class and pass that value through in the uri that's generated. 2002-01-18 Christopher James Lahey * backend/ebook/e-card-compare.c: Made username match with no domain match be vague instead of partial. Fixes Ximian bug #13612. 2002-01-18 Christopher James Lahey * gui/component/addressbook.c (view_contact_cb): New verb to open a bunch of cards. * gui/widgets/e-addressbook-reflow-adapter.c (open_card): Call e_addressbook_show_multiple_cards instead of doing this ourselves. * gui/widgets/e-addressbook-util.c, gui/widgets/e-addressbook-util.h (e_addressbook_show_multiple_cards): Added this function to show a bunch of cards, including a dialog if lots of windows are going to appear. * gui/widgets/e-addressbook-view.c (e_addressbook_view_view, e_addressbook_view_can_view): e_addressbook_view_view calls e_addressbook_show_multiple_cards on the appropriate list of cards. 2002-01-18 Christopher James Lahey * gui/contact-editor/e-contact-editor-address.c (fill_in_countries), gui/contact-editor/fulladdr.glade: Sort country list. Country list moves from fulladdr.glade to e-contact-editor-address.c, but only a few country names have actually changed. Fixes Ximian bug #16545. 2001-12-20 Zbigniew Chyla Fixes #17725 * evolution/addressbook/printing/e-contact-print.c (complete_sequence): Do not assume that the first byte of file_as is the first letter, use utf8 functions instead. 2002-01-16 JP Rosevear * conduit/address-conduit.c: move all functions here, get rid of header files, use e-pilot-settings to display gui 2002-01-15 JP Rosevear * gui/component/select-names/select-names.glade: remove misleading title and fix spacing 2002-01-11 Christopher James Lahey * gui/component/addressbook.c (alphabet_state_changed): Handle setting the search bar to "Advanced..." when the alphabet buttons are pushed and back when they're cleared. Fixes Ximian bug #12904. (addressbook_menu_activated): When the user calls Search->clear, set the search to ESB_ANY and "", don't just set the text. This is especially useful when it's set to ESB_ADVANCED. * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h (alphabet_state_change): Added this signal which gets emitted when the alphabet buttons are pushed. (command_state_change): Removed the ref pair here. It's not necessary. gtk_signal_emit refs the object itself. 2002-01-11 Christopher James Lahey * backend/ebook/e-card-compare.c (name_synonyms): Added a couple of names here. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_get_nth_obj): Removed an unused variable. 2002-01-11 Christopher James Lahey * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h (create_alphabet): Use toggle buttons here. Fixes Ximian bug #10734. 2002-01-09 Christopher James Lahey * gui/contact-editor/e-contact-editor.c (set_fields): Choose the first filled in address field here. Fixes Ximian bug #2222. 2002-01-03 Joe Shaw * backend/ebook/test-card.c: Add a test for getting arbitrary fields. * backend/pas/pas-backend-card-sexp.c (compare_arbitrary): Added. (prop_info_table): Add a LIST_PROP for arbitrary fields. 2002-01-03 Nat Friedman * backend/ebook/e-book.c (activate_factories_for_uri): Free the query if the oaf response is of zero length. 2001-12-27 Jon Trowbridge * gui/component/select-names/e-select-names.c (real_add_address_cb): When we clean, don't clean the model's last element. This helps keep things working properly when we have signal-character separators. (section_right_click_cb): Changed to work properly with our EText-emitted popup signal. (e_select_names_add_section): Use ETexts for the recipient sections, rather than tables. This lets us make them directly editable. (Bug #1721) * gui/component/select-names/e-select-names-popup.c (popup_info_new): Pass in a ESelectNamesTextModel, not a ESelectNamesModel. (e_select_names_popup): Adjust for the new signature for e_select_names_model_text_pos. * gui/component/select-names/e-select-names-manager.c (focus_out_cb): Schedule a cleaning when we focus out. (focus_in_cb): Cancel pending cleaning when we get focus. This helps us avoid bad things happening during the fast focus out/ins that happen when the completion dropdown appears. (completion_handler): Adjust for new signatures of e_select_names_model_text_pos and e_select_names_model_name_pos. (e_select_names_manager_entry_new): Pass in our ESelectNamesTextModel when constructing the ESelectNamesCompletion. (e_select_names_manager_entry_free): Cancel any pending clean-ups. * gui/component/select-names/e-select-names-bonobo.c (entry_get_property_fn): Get the text off of the text model. Which is the only way that really makes sense when you think about it. * gui/component/select-names/e-select-names-completion.c: Added a copy of the associated ESelectNamesTextModel to ESelectNamesCompletionPrivate. This replaces the ESelectNamesModel. (e_select_names_completion_destroy): Unref ->text_model. (e_select_names_completion_handle_request): Pass in our text model's separator info when calling e_select_names_model_text_pos. (e_select_names_completion_new): Pass in the text model as an arg instead of the model, and ref it as needed. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_init): Set separator as either ", " or ",", depending on the value of the EVOLUTION_DISABLE_MAGIC_COMMA environment variable. (e_select_names_text_model_destroy): Free the separator. (changed_cb): Flush our cached text on changed. (e_select_names_text_model_set_source): Use our own changed_cb callback on changed, rather than just connecting up e_text_model_changed. (e_select_names_text_model_set_separator): Added. Lets the separator between recipients be specified. (e_select_names_text_model_get_text): Cache the text we get from calling e_select_names_model_get_textification. (e_select_names_text_model_insert_length): A bunch of small changes to properly support generic separators, rather than (implicit and explicitly) assuming ", ". (e_select_names_text_model_delete): More small tweaks to handle generic separators. (e_select_names_text_model_get_nth_obj): Use new signature when calling e_select_names_model_name_pos, and use our cached text. * gui/component/select-names/e-select-names-model.c (e_select_names_model_destroy): We don't cache the text or addr_text anymore, so no need to free them here. (e_select_names_model_changed): ...and no need to reset our text and addr_text caches here. (e_select_names_model_get_textification): Take a separator as an arg, rather than just using ", ". Also, no caching. (e_select_names_model_get_address_text): Take a separator as an arg, rather than just using ", ". And no caching here either. (e_select_names_model_clean): Add arg that give us control over whether or not the last entry should get cleaned. We need this when using a one-character separator, so that new destinations that get tacked onto the end don't get immediately cleaned away for being empty. (e_select_names_model_name_pos): Take the separator length as an argument, remove implicit assumption of length 2. (e_select_names_model_text_pos): Take the separator length as an argument, remove implicit assumption of length 2. 2001-12-20 Ettore Perazzoli [Fix #17377, Evolution doesn't work on multi-depth displays.] * gui/component/addressbook-factory.c (main): Push GdkRGB visual and colormap. 2001-12-19 Jon Trowbridge * gui/widgets/e-addressbook-reflow-adapter.c (e_addressbook_reflow_adapter_right_click): Add cut/copy/paste to right-click menu. * gui/widgets/e-addressbook-view.c (table_right_click): Add cut/copy/paste to right-click menu. (Fixes bug #14528.) Also, disable some right-click options if our addressbook isn't editable. 2001-12-18 JP Rosevear * conduit/address-conduit.c (check_for_slow_setting): go slow and clear the map if the last uri and the current uri do not match (post_sync): save the last uri * conduits/address-conduit-config.h: handle a last uri config option 2001-12-18 Chris Toshok * gui/component/addressbook.c (addressbook_default_book_open): change this to match its e-book counterpart, and only failover to the local addressbook if the protocol wasn't supported. that way errors like "failure to connect" are still reported to the user. * backend/ebook/e-book-util.h: add prototypes for e_book_load_default_book and e_book_get_config_database. * backend/ebook/e-book-util.c (e_book_default_book_open): new function, basically cut and paste addressbook_default_book_open from addressbook.c here. (e_book_load_default_book): cut and past addressbook_load_default_book here, pretty much, except leave off the auth stuff. (e_book_get_config_database): new function, returns the Bonobo_ConfigDatabase for e_book_load_default_book to use. * conduit/address-conduit.c (start_addressbook_server): use e_book_load_default_book here. 2001-12-17 Chris Toshok [ fixes bug 17355 ] * gui/component/select-names/e-select-names.c (new_folder): if we're dealing with an LDAP folder, prepend [LDAP] to it. Now that we have 3 different places where folders are coming from, it helps to be able to differentiate "Contacts" in ~/evolution and a "Contacts" ldap server and a "Contacts" exchange folder. (add_additional_select_names_uris): loop through the bonobo conf settings for additional folders, adding them to the option menu. (e_select_names_hookup_shell_listeners): call add_additional_select_names_uris. 2001-11-28 Christopher James Lahey * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_realize): Use an #ECanvasBackground here instead of a #GnomeCanvasRect. 2001-12-16 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c: Added 'cache_complete' flag to ESelectNamesCompletionPrivate. (e_select_names_completion_seq_complete_cb): Set cache_complete to TRUE if our query wasn't interrupted. (e_select_names_completion_start_query): Set cache_complete to FALSE at the beginning of a potentially-cached query. (e_select_names_completion_do_query): Only reuse cached cards if cache_complete is TRUE. (Fixes bug #10241) 2001-12-15 JP Rosevear * conduit/address-conduit.c (e_addr_context_destroy): don't free the hash table keys, we didn't allocate them and free the change objects and unref the associated cards (local_record_from_uid): unref the temp card we create (replace_record): ref the new card associated with the card change and unref the old one 2001-12-13 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): Make sure to copy the custom fields so they are not overwritten 2001-12-13 Jon Trowbridge * backend/ebook/e-book-util.c (simple_query_new): Used g_strdup_printf to dup a string. Doh! Changed to g_strdup. (Bug #17126) 2001-12-07 Jon Trowbridge * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_entry_new): Remove a reference to code I don't want to commit yet. :-) * gui/component/select-names/e-select-names-manager.c: Extensively refactored -- this code had gotten _really_ ugly. Untangle things to the point where our reference counting problems are fixable. * gui/component/select-names/e-select-names-bonobo.c (impl_destroy): Remove all of the ugly hacks to work around our memory management problems, and just unref the manager. (Fixes #14412) 2001-12-05 Chris Toshok * backend/pas/pas-backend-ldap.c (search_for_dn_with_objectclasses): move search_for_dn's contents here, and add an "existing_objectclasses" parameter that we pass on to build_card_from_entry. (search_for_dn): call search_for_dn_with_objectclasses with NULL for existing_objectclasses. (build_card_from_entry): if existing_objectclasses is non-NULL, fill it in with the list of existing objectclass values for this entry. (add_objectclass_mod): if existing_objectclasses is non-NULL, meaning we're modifying an entry, search in the existing objectclasses for the ones we want to be there, and only add what's missing. If none are missing, don't add objectclass_mod to the list of mods. (create_card_handler): track change to add_objectclass_mod (pass NULL). (modify_card_handler): use search_for_dn_with_objectclasses instead of search_for_dn, and pass the existing objectclasses to add_objectclass_mod. also, free the list when we're done. (poll_ldap): track change to build_card_from_entry (pass NULL). 2001-12-05 Chris Toshok * gui/contact-editor/e-contact-editor.c (enable_writable_fields): we need to be able to disable non-labels here as well. since we're using enable_widget and not gtk_widget_set_sensitive, it's okay to handle entries/text's, etc, here. (widget_field_mappings): add label-caluri and label-fburl here. * gui/contact-editor/contact-editor.glade: change the label names for the freebusy/calendar urls to have more descriptive names, since we use them in e-contact-editor.c now. * backend/pas/pas-backend-ldap.c: add support for caluri/calendarURI, fburl/freeBusyURI. * backend/pas/evolutionperson.schema: add calendarURI and freeBusyURI. 2001-12-04 Christopher James Lahey * gui/contact-editor/contact-editor.glade: Fixed up the accelerators and such here. * gui/contact-editor/e-contact-editor.c (file_save_as_cb): Translate this string. (pixmaps): Added a pixmap for the ContactEditorSaveClose command. (setup_tab_order): Fixed up the tab order here. * gui/contact-editor/fulladdr.glade: Made the country combo focusable here. 2001-12-03 Jon Trowbridge * 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) * 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) 2001-11-28 Christopher James Lahey * gui/contact-list-editor/e-contact-list-editor.c: Consistency fixes with standard contact editor. Added Save As, Send As, and Send To. Replaced Save toolbar with Save and Close and added Save and Close menu item. Added a trash icon. 2001-11-28 Christopher James Lahey * gui/contact-editor/e-contact-editor-address.c (setup_tab_order): Setup the tab order here. Fixes Ximian bug #13751. 2001-11-28 Christopher James Lahey * gui/component/addressbook.c (connect_master_list_changed, make_suboptions): Changed how this list of categories gets computed. Fixes Ximian bugs #7707 and #7708. 2001-11-15 Zbigniew Chyla * printing/e-contact-print-envelope.c (ecpe_linelist_dimensions), printing/e-contact-print.c (e_contact_divide_text, e_contact_output, e_contact_rectangle, e_contact_print_letter_tab, e_contact_print_letter_heading, e_contact_get_card_size, e_contact_print_card, e_contact_print_phone_list): s/gnome_font_get_width_string/gnome_font_get_width_utf8/ s/gnome_font_get_width_string_n/gnome_font_get_width_utf8_sized/ 2001-11-14 Chris Toshok * backend/pas/pas-backend-ldap.c (search_for_dn): check against LDAP_SUCCESS as the return value, not -1. (pas_backend_ldap_build_all_cards_list): same. (pas_backend_ldap_process_authenticate_user): same. 2001-11-12 Chris Toshok [ Fixes Ximian bug #14843 ] * backend/pas/pas-backend-ldap.c (func_and): don't crash if a subexpression wasn't filled in. * backend/pas/pas-backend-ldap.c (func_or): same. 2001-11-12 Jon Trowbridge * gui/contact-list-editor/e-contact-list-editor.c (list_added_cb): Release callback's reference to EContactListEditor. (list_modified_cb): Release callback's reference to EContactListEditor. (save_card): Ref the EContactListEditor on behalf of the e_book_foo callback. (Fixes bug #14743) (save_card): Set changed to false once we've saved. (list_deleted_cb): Release callback's reference. (delete_cb): Hold reference for the callback. 2001-11-12 Jon Trowbridge * gui/contact-editor/e-contact-editor.c (categories_clicked): If our call to e_categories_new returns NULL, put up an error dialog and return. (Fixed #14780) 2001-11-09 Chris Toshok [ Fixes Ximian bug #14687 ] * backend/pas/pas-backend-file.c * backend/pas/pas-book-factory.c (pas_book_factory_process_request): do load_uri before add_client, so we know if the load actually worked (add_client uses this information to respond to the new client.) before this change, the client would still think the book was in a useful state even if the load_uri failed. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client): if the we're not connected, say so. * backend/pas/pas-backend-file.c (pas_backend_file_add_client): same. (pas_backend_file_load_uri): don't report_writable here, add_client does it. was only needed before because of the improper ordering in pas-book-factory.c above. 2001-11-09 Chris Toshok [ Fixes Ximian bug #14646 ] * gui/component/addressbook.c (addressbook_default_book_open): new function. if the default_book failed to load, load the local addressbook in its place. addressbook_load_default_book): if we're loading the default_book uri, use addressbook_default_book_open as the open_response. * backend/ebook/e-book.c (e_book_load_uri_step): reset the load_state to NotLoaded so we can attempt another load_uri on the book if it fails. 2001-11-08 Jon Trowbridge * gui/component/select-names/e-select-names-bonobo.c (impl_destroy): Explicitly destroy entries. Part of the fix for the lingering completion window bug. 2001-11-04 JP Rosevear * conduit/address-conduit.c: Use ordering of the pilot's phone label list to find fields we sync in order to avoid strcmp'ing the pilot's labels rendering phone syncing usable only for english language pilots 2001-11-03 Chris Toshok [ Fixes Ximian bug #14410 ] * gui/contact-editor/e-contact-editor.c (e_contact_editor_init): init in_async_call to FALSE. (card_added_cb): turn the UI back on and set in_async_call to FALSE. (card_modified_cb): same. (card_deleted_cb): same. (save_card): turn off the UI by setting the dialog insensitive, and set in_async_call to TRUE. (delete_cb): same. (app_delete_event_cb): if we're in an async call don't let the window get deleted. * gui/contact-editor/e-contact-editor.h (struct _EContactEditor): add in_async_call flag for when we make a wombat call and need to disable the UI. * gui/contact-list-editor/e-contact-list-editor.c (e_contact_list_editor_init): init in_async_call to FALSE. (list_added_cb): turn the UI back on and set in_async_call to FALSE. (list_modified_cb): same. (list_deleted_cb): same. (save_card): turn off the UI by setting the dialog insensitive, and set in_async_call to TRUE. (delete_cb): same. (app_delete_event_cb): if we're in an async call don't let the window get deleted. * gui/contact-list-editor/e-contact-list-editor.h (struct _EContactListEditor): add in_async_call flag for when we make a wombat call and need to disable the UI. 2001-11-02 Christopher James Lahey * backend/ebook/e-card-simple.c (e_card_simple_get): Check for NULL dates before converting them to strings. Fixes Ximian bug #14394. 2001-11-02 Jon Trowbridge * gui/component/select-names/e-select-names-bonobo.c (impl_destroy): Leak select-names related data structures until the memory management issues get sorted out. Fixed bug #14086. 2001-10-31 Christopher James Lahey * gui/component/e-cardlist-model.c, gui/component/select-names/e-select-names-table-model.c, gui/widgets/e-addressbook-table-adapter.c: Make the pre_changes and changes match here. 2001-10-31 Jon Trowbridge * gui/component/select-names/e-select-names.c (e_select_names_destroy): Check that local_listener and other_contacts_listener are non-NULL before disconnecting/unrefing. * gui/component/select-names/e-select-names-manager.c (entry_destroyed): The entry shouldn't unref the manager. (e_select_names_manager_create_entry): The entry shouldn't hold a ref to the manager. It becomes circular. (e_select_names_manager_create_entry): On the other hand, we should hold a ref to the entry we create. * gui/component/select-names/e-select-names-bonobo.c (impl_destroy): Remove the explicit dialog destroy hack. 2001-10-30 Jon Trowbridge * gui/component/select-names/e-select-names-bonobo.c (impl_destroy): Force the select names dialog to be destroyed. This is a hack to fix bug #14002 -- I'll clean up the refcounting issues post-freeze. At least now it won't crash. 2001-10-30 JP Rosevear * conduit/address-conduit.c (ecard_from_remote_record): make sure to translate the character sets of the names 2001-10-30 JP Rosevear * gui/component/select-names/e-select-names-bonobo.c (manager_ok_cb): send a null bonobo arg to prevent explosion 2001-10-30 JP Rosevear * gui/widgets/e-addressbook-view.c: correct include typo 2001-10-29 Jon Trowbridge * gui/widgets/e-addressbook-util.c (e_addressbook_prompt_save_dialog): new function, a "Do you want to save changes?" dialog. * gui/widgets/e-addressbook-util.h: add prototype for e_addressbook_prompt_save_dialog. * gui/contact-editor/e-contact-editor.c (prompt_to_save_changes): call e_addressbook_prompt_save_dialog and save the card if they select save. return TRUE if the dialog should be closed, FALSE otherwise. (file_close_cb): check prompt_to_save_changes before closing the dialog. (app_delete_event_cb): same. * gui/contact-list-editor/e-contact-list-editor.c (prompt_to_save_changes): call e_addressbook_prompt_save_dialog and save the card if they select save. return TRUE if the dialog should be closed, FALSE otherwise. (file_close_cb): check prompt_to_save_changes before closing the dialog. (app_delete_event_cb): same. 2001-10-29 Chris Toshok * backend/pas/pas-backend-ldap.c (add_objectclass_mod): overload this function for modifying objectclasses too, so we can make sure evolutionPerson shows up in the objectclasses of an entry if it shows up in the schema for the server. (create_card_handler): add @replace = FALSE in the call to add_objectclass_mod. (modify_card_handler): call add_objectclass_mod with @replace = TRUE. (anniversary_compare): fix typo - return "equal", not "TRUE". (birthday_compare): same. 2001-10-29 Jon Trowbridge * conduit/address-conduit.c (pre_sync): Comment out spew. * gui/contact-list-editor/e-contact-list-editor.c (fill_in_info): Comment out spew. * gui/component/addressbook-component.c (destination_folder_handle_drop): Comment out spew. (get_dnd_selection): Comment out spew. * gui/widgets/e-addressbook-table-adapter.c (addressbook_set_value_at): Comment out spew. 2001-10-29 Jon Trowbridge * gui/component/addressbook.c (update_command_state): Check that our BonoboUIComponent has a container so we don't get a lot of annoying debug spew. * printing/smallbook.ecps: Fixed fonts. * printing/phonelist.ecps: Fixed fonts. * printing/medbook.ecps: Fixed fonts. * printing/e-contact-print.c (e_contact_get_card_size): Commented out spew. * gui/widgets/e-minicard.c (remodel): Check that e_minicard->card != NULL. 2001-10-29 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (e_select_names_completion_destroy): We were using book_data->book_view immediately after unrefing it. Reordered the code a bit to avoid this. 2001-10-29 Chris Toshok * backend/pas/pas-book-factory.h: add prototype for pas_book_factory_dump_active_backends. * backend/pas/pas-book-factory.c (pas_book_factory_dump_active_backends): new function. (dump_active_server_map_entry): new function. 2001-10-29 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (make_match): Drop a match if either of the text fields is NULL. This could happen if any of the utf-8 involved is invalid, for example. (Bug #13757) 2001-10-29 JP Rosevear * conduit/address-conduit.c (is_syncable): fix bug that allowed for phone's not to be in priority order and the item to still be syncable * conduit/address-conduit-config.h (addrconduit_load_configuration): get management by id 2001-10-29 JP Rosevear * conduit/address-conduit.c (is_syncable): a card also needs to have its phone nums in priority order to be "syncable" 2001-10-29 JP Rosevear * conduit/address-conduit.c (is_syncable): move the syncable checking code to a different function (ecard_from_remote_record): set the name parts individually (local_record_from_ecard): use is_syncable 2001-10-29 Christopher James Lahey * backend/ebook/e-card-simple.c (file_as_get_style, file_as_set_style): Use the actual ECardName in the ECard instead of parsing the full_name here. 2001-10-29 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h (e_card_simple_set_name): New function to set the ECardName on this card and fix the file_as if necessary. 2001-10-29 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h (e_card_simple_get): Handle returning dates here. (e_card_simple_get_allow_newlines): New function. Returns whether it makes much sense to have newlines in this string. * gui/component/addressbook-config.c, gui/component/addressbook-config.h (addressbook_create_new_source): The first argument here should be const. * gui/component/addressbook-storage.c: Added #include "addressbook-config.h". * gui/widgets/e-minicard-label.c (e_minicard_label_event): On an escape here, cancel editing and remove the focus from the text. * gui/widgets/e-minicard.c (add_field): Set allow_newlines here. (field_activated): Stop editing on the activate signal and remove the focus from the text. Fixes Ximian bug #12286. 2001-10-28 JP Rosevear * conduit/address-conduit.h: tidy * conduit/address-conduit-config.h: ditto * conduit/address-conduit.c (add_record): unref ecard when done 2001-10-28 Jon Trowbridge * backend/ebook/e-card.c (e_card_date_from_string): Expose this function. (e_card_date_to_string): ...and this one. Fixes build problem in pas-backend-ldap.c. 2001-10-28 Jon Trowbridge * gui/component/select-names/e-select-names.c (e_select_names_hookup_shell_listeners): Change "this should never happen" dialog to not give my name/e-mail. Sorry translators. But this really should never happen, thanks to my fix below. * gui/component/addressbook-component.c: Initialize global_shell_client to NULL. (Bug #6625) 2001-10-27 Chris Toshok [ bug #12979 ] * backend/pas/pas-backend-ldap.c (anniversary_populate): new function. (anniversary_ber): new function. (anniversary_compare): new function. (birthday_populate): new function. (birthday_ber): new function. (birthday_compare): new function. 2001-10-27 Chris Toshok * gui/component/select-names/e-select-names-completion.c (e_select_names_completion_destroy): free up all the book_data list stuff. (e_select_names_completion_got_book_view_cb): deal with book_data being passed as the closure, and increment the pending_completion_seq counter. (e_select_names_completion_card_added_cb): deal with book_data being passwd as the closure. (e_select_names_completion_seq_complete_cb): same, and decrement the pending_completion_seq if we haven't gotten one for this book view before. (e_select_names_completion_stop_query): cancel all the book_data's. (e_select_names_completion_start_query): use the books_not_ready counter instead of book_ready. also, do e_book_get_book_view on each of the book's in our list. (e_select_names_completion_do_query): change to deal with our list. (e_select_names_completion_book_ready): decrement the book_not_ready counter. (e_select_names_completion_new): add the book we're created with to our list. (e_select_names_completion_add_book): implement. * gui/component/select-names/e-select-names-completion.h: add prototype for e_select_names_completion_add_book. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_new): use addressbook_config_data, and don't unref the db. (e_select_names_manager_create_entry): always add NULL for a book (which corresponds to the local book), and if the completion_book is present, add it to the list of books to complete again. 2001-10-27 Chris Toshok * gui/contact-editor/e-contact-quick-add.c (merge_cb): change to EBookCallback signature, and unref the book. (quick_add_merge_card): use addressbook_load_default_book. (ce_have_book): change to EBookCallback signature, and unref the book. (edit_card): use addressbook_load_default_book. * gui/component/e-address-popup.c (email_table_save_card_cb): change to EBookCallback signature, and unref the book. (add_card_idle_cb): use addressbook_load_default_book, and call the cb if it fails. (e_address_popup_cleanup): fix type -- should be "pop->card = NULL", not "pop = NULL". (contact_editor_cb): change to EBookCallback signature. (edit_contact_info_cb): use addressbook_load_default_book. (start_query): change to EBookCallback signature. (e_address_popup_query): use addressbook_load_default_book. * gui/widgets/e-minicard-control.c (book_open_cb): change to EBookCallback signature, and unref the book. (save_in_addressbook): use addressbook_load_default_book instead of e_book_use_local_address_book. * gui/widgets/Makefile.am (INCLUDES): change includes since we're including addressbook.h which has it's own set of funky include path requirements. 2001-10-27 Jon Trowbridge * backend/ebook/e-book.c (activate_factories_for_uri): Don't leak stuff. (Bug #13709) 2001-10-27 Christopher James Lahey * backend/ebook/e-destination.c (name_and_email_simple_query_cb, nickname_simple_query_cb): Set book_uri when cardification occurs. 2001-10-27 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_add_section): Turned off use_ellipsis (it breaks emulate_label_resize) and on emulate_label_resize. Fixes Ximian bug #13693. 2001-10-27 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (make_match): Doh! We should be sorting our contacts so that the most frequently used ones are at the top of the list, not the bottom. * backend/pas/pas-book.c (pas_book_check_queue): That should be a bonobo_object_unref, not a gtk_object_unref. (pas_book_queue_request): Likewise, we need to bonobo_object_ref here. (pas_book_destroy): If our pas_book_check_queue timeout is still active, disable it. This should never happen, but it never hurts to be careful. (pas_book_destroy): Set book->priv to NULL after we free it. 2001-10-27 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): copy phone labels and show phone as well, clear correct entry text and correctly detect unsyncable cases 2001-10-27 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): touch the record on lookup (check_for_slow_setting): write touched only if we are doing a slow sync (card_removed): don't touch on lookup (match): touch on lookup 2001-10-27 Jon Trowbridge * backend/pas/pas-book.c (pas_book_check_queue): Added paranoid reentrancy guards. (pas_book_queue_request): Changed our idle handler into a timeout, so as to work w/ reentrancy guards. (pas_book_init): Explicit initialization. 2001-10-26 Chris Toshok * gui/component/addressbook.h: add prototypes for addressbook_config_database, and addressbook_load_default_book. * gui/component/addressbook.c (addressbook_config_database): new function, so we aren't activating the db everywhere we need to use it. (addressbook_load_default_book): load the default book, after getting the uri from bonobo-config. 2001-10-26 Jon Trowbridge * backend/ebook/e-book-util.c (simple_query_card_added_cb): Return on cancellation. (simple_query_sequence_complete_cb): Act if not cancelled. (simple_query_book_view_cb): Free & return on cancellation. (e_book_simple_query_cancel): Set cancellation flag. * gui/component/e-address-popup.c (e_address_popup_query): Hold a reference to ourselves for the duration of our addressbook fetch. (start_query): Release when we've fetched our addressbook. (e_address_popup_cleanup): Break out most of what we do in _destroy into a separate function. (e_address_popup_destroy): Class cleanup. (contact_editor_cb): Paranoid clean-up. (add_contacts_cb): Paranoid clean-up. (e_address_popup_ambiguous_email_add): Paranoid clean-up. 2001-10-26 JP Rosevear * conduit/e-address.conduit.in: remove the merges as valid sync types * conduit/address-conduit.c (pre_sync): write out only the touched records if we are doing copies * conduit/address-conduit-config.h (addrconduit_load_configuration): get the sync type 2001-10-26 Jon Trowbridge * gui/component/e-address-popup.c (e_address_popup_destroy): Cancel any pending queries. * gui/contact-editor/e-contact-editor.c (close_dialog): Don't assert, but check if ce->app != NULL, since this function can (apparently) get called multiple times. * gui/contact-editor/e-contact-save-as.c (file_exists): Remove bad dialog ref-counting crap. * gui/contact-editor/e-contact-editor.c (save_card): Ref our EContactEditor, since we are holding a pointer to it in EditorCloseStruct. (card_modified_cb): Unref our EContactEditor when we free our EditorCloseStruct. (card_added_cb): Unref our EContactEditor when we free our EditorCloseStruct. 2001-10-26 JP Rosevear * conduit/address-conduit.c (check_for_slow_setting): make debug info more accurate 2001-10-26 JP Rosevear * conduit/address-conduit.c (e_addr_context_destroy): prevent double unref (cursor_cb): correct typo (card_removed): remove the card from the map if was archived and is now deleted 2001-10-26 JP Rosevear * conduit/address-conduit.h: new member * conduit/address-conduit.c (print_remote): free the struct after using it (e_addr_context_new): make consistent with other conduits (e_addr_context_destroy): properly destroy the context (cursor_cb): no need to ref the card, its done for us (clear_entry_text): util function to free a field (free_local): free a local record (local_record_to_pilot_record): use a static buffer so we don't have to free it later (local_record_from_ecard): only fill in the fields we might not sync, clear a field before replacing the contents (for_each): track locals (for_each_modified): ditto (free_match): use free_local 2001-10-26 Christopher James Lahey * gui/widgets/e-minicard.c, gui/widgets/e-minicard.h (set_has_cursor): Added has_cursor argument. Setting the argument to TRUE if the minicard doesn't have focus will grab the focus. Fixes Ximian bug #3024. 2001-10-24 Jon Trowbridge * gui/component/addressbook-factory.c (main): Initialize gnome-vfs. * gui/component/addressbook-component.c (xfer_file): Added. (Copied from the calendar.) (xfer_folder): Fixed to allow renaming of contact folders. 2001-10-24 Christopher James Lahey * gui/widgets/e-addressbook-view.c (e_addressbook_view_class_init): Removed key_press handler here since delete and backspace are now handled by keybindings. 2001-10-23 Jon Trowbridge * 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. * gui/component/select-names/e-select-names-completion.c: Removed our cancelled flag and e_select_names_completion_cancel function, since we were just duplicating stuff that had ended up in ECompletion. (match_name): Form our menu_text properly on an additional-name match. (e_select_names_completion_got_book_view_cb): Store handles for our signals, disconnect them properly when we switch book views. (e_select_names_completion_stop_query): Disconnect signals when we stop our query. (check_capabilities): Spew if we are using LDAP for completion. (e_select_names_completion_destroy): Disconnect our signals when we destroy. This all should fix bug #10241. 2001-10-23 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_add_section): Set "draw_button" argument to TRUE on this EEntry. 2001-10-22 Christopher James Lahey * gui/contact-editor/e-contact-save-as.c (save_it): Put up an error dialog if there's an error while saving. If the person hits cancel on the "file exists" dialog, don't close the file selection dialog. Fixes Ximian bug #7055. 2001-10-21 Christopher James Lahey * gui/widgets/e-addressbook-reflow-adapter.c (model_and_selection_free): right_click_up here when we let go of the popup. * gui/widgets/e-minicard-view.c (e_minicard_view_selection_event): right_click_up here. 2001-10-21 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_add_section, e_select_names_set_default): Use an EEntry here instead of a GtkLabel. Fixes Ximian bug #7067. 2001-10-21 Jon Trowbridge * gui/component/addressbook.c (control_activate_cb): Call e_addressbook_model_force_folder_bar_message when we activate the component. (Fixes bug #11749) * gui/widgets/e-addressbook-model.c (e_addressbook_model_force_folder_bar_message): Added. Forces emission of a folder_bar_message. 2001-10-20 Larry Ewing * gui/component/select-names/e-select-names.c (e_select_names_set_default): stick with the style font if the efont bold font does not exist. (e_select_names_set_default): don't forget to unref the oldstyle. 2001-10-20 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (name_style_query): Fix memory leak. * gui/widgets/e-addressbook-view.c (jump_to_letter): Free our string vector letter_v when we are done with it. * gui/contact-editor/e-contact-quick-add.c (edit_card): Unref our QuickAdd structure. * gui/component/e-address-popup.c (e_address_popup_construct): Unref our style after we are done with it. 2001-10-20 Jon Trowbridge * 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. 2001-10-20 Ettore Perazzoli * gui/component/addressbook-component.c: Make LDAP servers non-user-creatable. 2001-10-20 Jon Trowbridge * printing/e-contact-print.c (e_contact_print_card): Check that the string we are checking for xml-ness is non-NULL. * 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) 2001-10-20 Christopher James Lahey * gui/widgets/e-minicard-view.c (e_minicard_view_selection_event): Handle focus_change in event by selecting that contact. Fixes Ximian bug #3024. * gui/component/addressbook-component.c (owner_unset_cb): Repeatedly call gtk_main_quit here as long as there is a main loop around. This is an ugly hack around Ximian bug #11760. 2001-10-20 Christopher James Lahey * gui/component/select-names/e-select-names.c: Added #include . * gui/widgets/e-minicard-control.c: Made this display the number of extra cards in the attachment as well as made it save them all to the local addressbook if the person selects the button. Fixes Ximian bug #9507. 2001-10-20 Christopher James Lahey * gui/widgets/e-minicard.c (e_minicard_event): Changed this to not grab on a right click. Fixes Ximian bug #12660. 2001-10-19 Ettore Perazzoli * gui/component/addressbook-component.c (destination_folder_handle_motion): Get @folder_type here too [to match the changes in the EvolutionShellComponentDnd interface]. Also, remove a debugging message. (destination_folder_handle_drop): Likewise. 2001-10-18 Jon Trowbridge * gui/component/select-names/e-select-names.c (add_menu_item): Translate labels in select-names option menu. (Bug #9604) * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_init): Made the default window size slightly wider. (Bug #7516) 2001-10-18 Christopher James Lahey * backend/ebook/e-card.c, backend/ebook/e-card.h (e_card_list_get_vcard): Made this take a const GList. 2001-10-18 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (check_capabilities): Added. Check if our book is local or networked. (e_select_names_completion_book_ready): Call check_capabilities. (e_select_names_completion_new): Call check_capabilities. (e_select_names_completion_do_query): If we have a networked book, keep trying if we haven't been able to cache any cards --- our earlier attempts could have failed due to too many matches. (Bug #12932) * 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. 2001-10-17 Chris Toshok * gui/component/addressbook-config.c (addressbook_source_dialog): grab focus in the Account entry when preparing the dialog, fixes #10406. 2001-10-17 Chris Toshok * gui/component/select-names/e-select-names.c (new_folder): make sure to also add "ldap-contacts" folders to the option menu. 2001-10-17 JP Rosevear * conduit/address-conduit.c (ecard_from_remote_record): sync all the fields we can, with out overwriting (local_record_from_ecard): write the fields to the pilot in priority order unless there are fields on the pilot we can't store, then fill in the fields as they are on the pilot 2001-10-17 Christopher James Lahey * 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. 2001-10-17 Chris Toshok * 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. 2001-10-16 Iain Holmes * backend/ebook/evolution-ldif-importer.c (support_format_fn): Return FALSE if no extension. 2001-10-16 Jon Trowbridge * 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) 2001-10-16 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): don't set the phone info if it is blank (ecard_from_remote_record): save up to 3 fax numbers 2001-10-15 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client): unref the book after we pass it off to evolution-addressbook. 2001-10-15 Chris Toshok * 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. 2001-10-15 Chris Toshok * 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. 2001-10-12 Chris Toshok * gui/component/addressbook-factory.c (main): call e_passwords_init and e_passwords_shutdown. 2001-10-15 Christopher James Lahey * 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. 2001-10-15 Christopher James Lahey * gui/contact-editor/e-contact-save-as.c (e_contact_save_as, e_contact_list_save_as): Set the default file name here. Fixes Ximian bug #7053. 2001-10-14 Jon Trowbridge * gui/component/select-names/e-select-names.c (e_select_names_hookup_shell_listeners): Added linebreaks to our "this shouldn't happen" dialog message. (Bug #12498) 2001-10-12 Jon Trowbridge * gui/component/addressbook-factory.c (main): Add a component name to the e_passwords_init() call. 2001-10-12 Chris Toshok * 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. 2001-10-12 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: Added a boolean type here. 2001-10-12 Jon Trowbridge * gui/component/select-names/e-select-names.c (addressbook_model_set_uri): Check to see if the uri we are setting is the same as the current uri. If so, do nothing. (Bug #11324) 2001-10-11 Jon Trowbridge * 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) 2001-10-11 Christopher James Lahey * 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 * 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 * gui/widgets/e-addressbook-model.c (modify_card): Removed an unnecessary ref here. 2001-10-11 Dan Winship * gui/component/select-names/e-select-names.c (update_folder): Don't need this any more. 2001-10-11 Jon Trowbridge * 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. 2001-10-10 Jon Trowbridge * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_destroy): If our select names dialog is still around, destroy it. Otherwise, the dialog will hang around after our composer goes away. 2001-10-06 Chris Toshok * gui/component/addressbook-config.glade: add an Email Address field/label/help text. * gui/component/addressbook-config.c (addressbook_source_dialog_set_source): fill in the email entry from the source. also, set the initial state of the email label/entry. (auth_checkbutton_changed): set the email label/entry sensitive/editable if auth is turned on, and insensitive/uneditable if it's off. (addressbook_source_dialog_get_source): get the email address from the email entry. (addressbook_source_dialog): hook up the email entry to the changed signal foo, as well as the focus handler for displaying help text. 2001-10-06 Jon Trowbridge * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_new): db isn't a BonoboObject, so don't bonobo_object_unref it! 2001-10-05 Chris Toshok * gui/component/select-names/e-select-names.c (addressbook_model_set_uri): e_book_load_uri -> addressbook_load_uri. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_new): e_book_load_uri -> addressbook_load_uri. * gui/component/addressbook.c (forget_passwords_cb): new function, call e_passwords_forget_passwords. (verbs): Add ContactsForgetPasswords. (load_uri_auth_cb): new function, call the callback and free up our closure stuff. (load_uri_cb): once the uri is loaded, check if we're configured to authenticate for it, and do so, using the e_passwords stuff. (addressbook_load_uri): wrapper around e_book_load_uri. save off the parameters and start the load-with-auth machinery. (book_open_cb): remove all the auth stuff from here, as it's handled elsewhere now. * gui/component/addressbook-factory.c (main): call e_passwords_init. * gui/component/addressbook-component.c (user_create_new_item_cb): e_book_load_uri -> addressbook_load_uri. (destination_folder_handle_drop): same. * gui/component/addressbook.h: add prototype for addressbook_load_uri (a wrapper around e_book_load_uri that also handles authentication if the user selects it.) 2001-10-05 Jon Trowbridge * gui/component/select-names/e-select-names.c (real_add_address_cb): Check to make sure our call to e_addressbook_model_get_card doesn't return NULL. * gui/widgets/e-addressbook-model.c (e_addressbook_model_get_card): Chek that we aren't requesting a negative row. * gui/contact-list-editor/e-contact-list-editor.c (add_email_cb): Move to the bottom of the scrolled window, so we can see the address we just added. (table_drag_data_received_cb): Move to the bottom of the scrolled window, so we can see the contact we just dropped. * gui/component/addressbook.c (addressbook_factory_new_control): We don't own the string returned by e_categories_master_list_nth, so terrible things will happen if we free it. (Bug 10916) 2001-10-05 Chris Toshok * gui/widgets/e-addressbook-view.c (e_addressbook_view_set_arg): don't set the editable field on the model - let the book do that. (book_writable_cb): call writable_status to propagate a ui-change event up (and sensitize the write-only toolbar buttons after you authenticate with ldap.) 2001-10-04 Chris Toshok * backend/ebook/e-book.c (activate_factories_for_uri): for some reason, matching on protocol is causing problems for me. disabling it for now. 2001-10-04 Chris Toshok * gui/component/addressbook-component.c: use ldap.png for ldap contacts. 2001-10-03 Iain Holmes * addressbook/gui/component/addressbook-storage.c (addressbook_storage_setup): Only load_storages if you have LDAP. (load_source_data): Only do stuff if you have LDAP. 2001-10-03 Christopher James Lahey * gui/widgets/e-addressbook-reflow-adapter.c (addressbook_height), gui/widgets/e-minicard.c (remodel): Fixed these to determine the fields to use properly. 2001-10-02 Jon Trowbridge * 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. 2001-10-02 Chris Toshok * 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. 2001-10-02 Christopher James Lahey * gui/component/select-names/e-select-names-model.c (e_select_names_model_get_textification): Made the max length of the textification be 2047 characters. Fixes Ximian bug #3021. 2001-10-01 JP Rosevear * conduit/address-conduit.c (ecard_from_remote_record): if there was no first name or last name, file as the company. 2001-10-01 JP Rosevear * 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 2001-09-28 JP Rosevear * 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 2001-09-27 Chris Toshok * backend/ebook/e-book.c (e_book_construct): do an oaf query to get a list of all objects implementing our BookFactory interface, instead of just activating the one IID. this should really be a global list, not a per EBook. (e_book_load_uri): start the iteration over our list of BookFactory's. (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. 2001-09-27 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): use the old record (if there was one) so as not to overwrite fields we don't sync (pre_sync): store the dbi in the context and don't make it object data 2001-09-26 Chris Toshok * 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. 2001-09-26 Jon Trowbridge * backend/ebook/e-destination.c (e_destination_get_textrep): Use camel_address_format, not camel_address_encode. 2001-09-26 Anna Marie Dirks * gui/contact-editor/contact-editor.glade: Added help text (thanks to Aaron) and re-worded the labels, and fixed the shortcuts on the brand-spanking-new Collaboration tab. 2001-09-26 Chris Toshok * gui/component/select-names/e-select-names-manager.h: add completion_book. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_new): get /Addressbook/Completion/uri, and if it's present, use the corresponding EBook for completing addresses. (focus_out_cb): use manager->completion_book here instead of NULL, which corresponds to the local addressbook. (completion_popup_cb): same. (e_select_names_manager_create_entry): same. 2001-09-26 Jon Trowbridge * 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. 2001-09-26 JP Rosevear * 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 * 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. 2001-09-25 Christopher James Lahey * gui/component/addressbook-component.c (user_create_new_item_cb): Handle creating the new contact in the current folder if it's a contacts folder. Fixes Ximian bug #7814. 2001-09-24 Chris Toshok * backend/pas/Makefile.am (LDAP_SCHEMA): add evolutionperson.schema (EXTRA_DIST): add LDAP_SCHEMA to the dist (but don't install it). 2001-09-23 JP Rosevear * conduit/address-conduit.c (ecard_from_remote_record): sync the note the to pilot and make sure to blank fields when appropriate (local_record_from_ecard): sync the note to the desktop 2001-09-22 Chris Toshok * backend/pas/pas-backend-file.c (do_create): g_free (id) in the error case to plug a memory leak. 2001-09-22 Chris Toshok * gui/widgets/e-minicard.c (remodel): when creating the cards, don't display any of the subname fields (surname, given, middle, suffix, etc.) 2001-09-22 Chris Toshok * 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. 2001-09-21 Christopher James Lahey * gui/component/addressbook.c (print_preview_cb): Hooked up print preview button. * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h (e_addressbook_view_print_preview): Added this function. * printing/e-contact-print.c, printing/e-contact-print.h (e_contact_print_preview): Added this function. 2001-09-19 Jon Trowbridge * 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. 2001-09-19 JP Rosevear * conduit/address-conduit.c (cursor_cb): don't add to the complete list of cards if the card is a list (card_added): don't add to the list of changes if the card is a list (card_changed): ditto (card_removed): ditto 2001-09-19 Jon Trowbridge * gui/component/select-names/e-select-names.c (e_select_names_hookup_shell_listeners): Change the "this should never happen" message into a request for people to e-mail me directly with info if they encounter that error. * 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) * gui/component/select-names/e-select-names-popup.c (popup_menu_card): Properly handle our GnomeUIInfo labels so that they won't be leaked if they are dynamic strings, so that they will be i18n-correct, and so that underscores won't be interpreted as key accelerators. What a PITA. Also, don't leak our iterators. (Bug #10200.) (popup_menu_list): The same GnomeUIInfo tweaking as in popup_menu_card. (popup_menu_nocard): Ditto. 2001-09-18 JP Rosevear * 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 2001-09-18 JP Rosevear * 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 2001-09-18 Larry Ewing * gui/component/select-names/e-select-names-completion.c (book_query_process_card_list): unref the destination regardless of whether we get an email addresss. 2001-09-17 Larry Ewing * 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. * gui/component/select-names/e-select-names-completion.c (match_nickname): don't malloc a match we will never use. * gui/widgets/e-addressbook-model.c (get_view): free the dup'd capabilities. 2001-09-17 Jon Trowbridge * 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) * gui/component/select-names/e-select-names-completion.c (match_name): Fixed a stupid bug was causing completion to fail for contacts who have only one name. (The classic example we all know and love is 'George ') (bug #8353) * 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) * gui/widgets/e-minicard.c (e_minicard_event): Code implicitly assumed that event->button.button is 1, 2, or 3, causing disaster when using a wheel-mouse. Fixed. (bug #9400) 2001-09-16 Chris Toshok * gui/contact-editor/e-contact-editor.c (_phone_arrow_pressed): use enable_widget instead of gtk_widget_set_sensitive. (_email_arrow_pressed): same. (_address_arrow_pressed): same. (disable_widget_foreach): same. (enable_writable_fields): same. (set_editable): same. (enable_widget): new function, using both gtk_widget_set_sensitive and *_set_editable to allow the user to select text in GtkEntry's and GtkText's. * gui/contact-editor/e-contact-editor-fullname.c (e_contact_editor_fullname_set_arg): use set_editable as well as set_sensitive, to allow the user to select text in GtkEntry's. * gui/contact-editor/e-contact-editor-address.c (e_contact_editor_address_set_arg): same. 2001-09-16 Chris Toshok * backend/pas/evolutionperson.schema: fix syntax errors (which are broken, imo...) 2001-09-16 Chris Toshok * gui/component/addressbook-storage.h: reorder the LDAP scopes so that they match the order of the option menus in the glade file. * gui/component/addressbook-config.c (auth_checkbutton_changed): new function, mostly there to house some #ifdef'ed out code. (option_menuitem_activated): new function, to keep track of changes to the ldap scope optionmenu. (addressbook_source_dialog_set_source): set the menu history as well as the dialog's copy of the scope. (addressbook_source_dialog_get_source): fill in the source's scope from the dialog's copy, and add more #if the_ui_gods_smile_on_me code. (add_activate_cb): new function, add an activate callback for the optionmenu's items. (addressbook_source_dialog): more #if the_ui_gods_smile_on_me code, always start the dialog on page 0, and hook up the scope optionmenu's items. 2001-09-15 Jon Trowbridge * backend/ebook/e-card-compare.c (e_card_compare_name): No loose name matches on family names. (#8802) * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_activate_obj): We can't use NULL as the first arg for e_addressbook_show_contact_editor anymore. Damn. (#8535) * 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 * 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. 2001-09-14 Ettore Perazzoli [Automake 1.5 fixes pointed out by Richard Boulton , as per #9258.] * gui/component/select-names/Makefile.am: Set CLEANFILES directly instead of using `+='. * backend/pas/Makefile.am: Rename `LDAP_BACKEND_SOURCES' to `LDAP_BACKEND_FILES'. * backend/ebook/Makefile.am: Set CLEANFILES directly instead of using `+='. 2001-09-13 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): use ldap_init. ldap_open is deprecated in openldap 2.x. 2001-09-12 Iain Holmes * backends/ebook/evolution-vcard-importer.c (check_file_is_vcard): Fix the check. 2001-09-12 Larry Ewing * backend/ebook/e-destination.c: free the values that are being leaked here. 2001-09-12 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (match_email): printf arguments were reversed by mistake. Fixed bug #9693. 2001-09-09 Jon Trowbridge * gui/component/select-names/e-select-names-popup.c (popup_menu_list): Added. Treat right-clicks on a contact list as a special case. (e_select_names_popup): Check if we are dealing with a contact list. * 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 * 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. 2001-09-08 Chris Toshok (make_contact_editor_cb): show the right contact editor (the list editor for list cards). 2001-09-08 Chris Toshok * gui/component/select-names/e-select-names-popup.c (popup_menu_card): do the EDestination xml magic on email addresses we put in the popup. 2001-08-27 Zbigniew Chyla * gui/component/addressbook.c (addressbook_factory_new_control): For every category: - set .translate to FALSE (e_categories_master_list_nth returns translated category name) - convert category name in UTF-8 to locale's encoding 2001-08-23 Zbigniew Chyla * gui/component/select-names/e-select-names-popup.c (popup_menu_card): Fixed two bugs: - missing coversion of contact name to GTK+ locale, - passing dynamically created string (contact name) inside uiinfo struct to gnome-app-helper functions. Remember: these functions may change strings, trying to translate them! (popup_menu_nocard): Ditto 2001-09-07 Christopher James Lahey * gui/component/addressbook-component.c: Removed unused factory variable. 2001-09-06 Chris Toshok * gui/component/addressbook-storage.c (notify_listener): new function, notify the bonobo listener. (remove_ldap_folder): track change to EvolutionStorage signal. (create_ldap_folder): same, and make sure the type is "ldap-contacts". (load_source_data): folders that we create should have "ldap-contacts" as their type. (addressbook_storage_add_source): same. * gui/component/addressbook-component.c: (folder_types): add "ldap-contacts", for display of ldap servers (they get their own icon, and their own name in the Create New Folder dialog. (create_view): use IS_CONTACT_TYPE since we support two folder types now. (create_folder): same. (remove_folder): same. (xfer_folder): same. 2001-09-06 Chris Toshok * gui/contact-editor/e-contact-editor.c: (pixmaps): change /Toolbar/ContactEditorSave to /Toolbar/ContactEditorSaveClose. 2001-09-06 Chris Toshok * 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. 2001-09-05 Ettore Perazzoli [Fix #958, ShellComponents should not be created by factories, for the addressbook.] * gui/component/addressbook-component.c (GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_FACTORY_ID): Removed. (GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_ID): New. (create_component): Renamed from `factory_fn'. Just register the thing on OAF. (addressbook_component_factory_init): Just call it. * gui/component/GNOME_Evolution_Addressbook.oaf.in: Remove the ShellComponentFactory. 2001-09-04 Iain Holmes * backend/ebook/evolution-vcard-importer.c (load_file_fn): Return FALSE if the file isn't a valid VCard file. 2001-08-05 Zbigniew Chyla 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. 2001-09-02 Christopher James Lahey * backend/ebook/e-book.c (e_book_add_card, e_book_commit_card), backend/pas/pas-backend-file.c (do_create), backend/pas/pas-backend-ldap.c (create_card_handler, remove_card_handler, modify_card_handler, pas_backend_ldap_process_get_vcard, poll_ldap): Use e_card_get_vcard_assume_utf8 instead of e_card_get_vcard here since all internal communications and database storage are assumed to be utf8. * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h (e_card_simple_duplicate): Simplified this function considerably. (e_card_simple_get_vcard_assume_utf8): Added this function. * backend/ebook/e-card.c, backend/ebook/e-card.h (e_card_new, e_card_load_cards_from_file, e_card_load_cards_from_string): Made these functions pay attention to charset attributes. (e_card_new_with_default_charset, e_card_load_cards_from_file_with_default_charset, e_card_load_cards_from_string_with_default_charset): New functions that let you change the default charset from UTF-8. (e_card_get_vcard): Made this write out charset attributes when necessary. (e_card_get_vcard_assume_utf8): New function that writes out a card without writing out charset attributes. * backend/ebook/evolution-vcard-importer.c (book_open_cb), backend/ebook/load-gnomecard-addressbook.c (book_open_cb), backend/ebook/test-card.c (main), gui/component/addressbook-component.c (destination_folder_handle_drop), gui/contact-editor/test-editor.c (main), gui/contact-list-editor/e-contact-list-editor.c (table_drag_data_received_cb), gui/widgets/e-addressbook-view.c (selection_received), gui/widgets/e-minicard-control.c (pstream_load): Changed the default charset to be used here to ISO-8859-1. * backend/ebook/load-gnomecard-addressbook.c (add_card_cb), backend/ebook/load-pine-addressbook.c (add_card_cb), backend/ebook/test-client-list.c (get_cursor_cb), backend/ebook/test-client.c (get_cursor_cb, get_card_cb): Use e_card_get_vcard_assume_utf8 to print out testing strings. * gui/component/select-names/e-select-names-model.c, gui/component/select-names/e-select-names-model.h (e_select_names_model_contains): Changed this to be const EDestination *dest to fix a warning. * gui/contact-editor/e-contact-editor.c (e_contact_editor_init): Translate window title here. 2001-08-31 Zbigniew Chyla * gui/component/addressbook-storage.c (addressbook_get_other_contact_storage): s/_/U_/ * gui/widgets/e-addressbook-reflow-adapter.c (addressbook_compare): Use g_utf8_collate. * gui/widgets/e-minicard.c (e_minicard_compare): Ditto. * printing/e-contact-print.c (card_compare): Ditto. 2001-08-29 Jon Trowbridge * 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. * gui/contact-editor/e-contact-quick-add.c (quick_add_set_name): Paranoia. Check that name != qa->name. (quick_add_set_email): Check that email != qa->email. (ce_have_book): Store the QuickAdd data structure in object data, so that we can be extra-careful and avoid having a dangling pointer floating around out somewhere as the closure for a signal. Fixes bug #8155, I think. (card_added_cb): Clear object data to ensure single unref. (editor_closed_cb): Clear object data to ensure single unref. * gui/component/select-names/e-select-names-completion.c (book_query_score): Make sure that comp->priv->query_text isn't NULL. (Fixes bug #8195) * backend/ebook/e-book-listener.c (e_book_listener_check_queue): This function can be re-entrant during the signal emission; Added extra ref/unrefs and checks to avoid problems if this happens. This is similar to my recent changes to e_book_view_listener_check_queue. (Fixes bug #7400) 2001-08-27 Ettore Perazzoli * gui/component/addressbook-component.c: Get rid of a warning by initializing the closing NULL element in folder_types correctly. * gui/component/select-names/e-select-names.c: Updated to match the studlyCapsification of attributes in shell/Evolution*.idl. 2001-08-27 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (sexp_file_as): Added. Generated queries against file_as. (match_file_as): Added. Match results of queries against file_as. (Bug #8152) * backend/ebook/e-book-view-listener.c (e_book_view_listener_check_queue): Added ref/unref pair to make sure that our listener doesn't get finalized during the signal emission and leave us with a dangling pointer. (Bug #7661) * backend/ebook/e-card.c (e_card_list_send): Removed some debugging spew that I left in by mistake. * gui/widgets/e-addressbook-model.c (create_card): Removed debugging spew. * backend/ebook/e-card.c (e_card_list_send): Do the right thing if the card we are trying to send to is a contact list. (Bug #6580) 2001-08-27 Zbigniew Chyla * gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog): Display localized status string (added missing _()). 2001-08-24 Jon Trowbridge * 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. 2001-08-23 Chris Toshok * gui/widgets/e-minicard.c (e_minicard_event): add BUTTON_PRESS_MASK so double clicks still work. 2001-08-23 Chris Toshok * gui/component/addressbook.c (addressbook_query_changed): switch "full_name" to "x-evolution-any-field" in all the queries where we want to match all cards, since the backends universally handle this special case more efficiently. 2001-08-22 Jon Trowbridge * 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 jacob berkman * gui/component/e-address-popup.c (emit_event): emit an event from our event source (contact_editor_cb): emit a destroy event so our control frame can be destroyed. (edit_contact_info_cb): emit a hide event so our control frame can be hidden (e_address_popup_cardify): (add_contacts_cb): emit the destroy event (e_address_popup_factory_new_control): don't unref our object at widget destroy time as that was really really broken (e_address_popup_factory_new_control): create an event source and aggregate ourself with it * gui/contact-editor/e-contact-editor.c (enable_writable_fields): display a nicer warning when we can't find a widget for a given field (e_contact_editor_raise): only raise if there is a window * gui/contact-editor/contact-editor.glade: name some widgets that got unnamed, and set the first entry as defaultable * gui/contact-editor/e-contact-editor.c: envelope printing is disabled in 1.0 2001-08-22 Chris Toshok * backend/ebook/e-destination.c (e_destination_get_email): make sure we don't get into a situation where priv->email == NULL. 2001-08-21 Chris Toshok * gui/widgets/e-minicard.c (e_minicard_event): if we're dragging, drag_button_down won't be true in the BUTTON_RELEASE case, since we set it to false in MOTION_NOTIFY once the threshold is reached. (e_minicard_drag_end): remove this function, since it was needed to work around a bug in gnome-canvas. 2001-08-20 Jon Trowbridge * gui/component/select-names/e-select-names.c (e_addressbook_create_ebook_table): Wrap our addressbook table adapter in an ETableWithout, so that we can make addresses appear and disappear when we remove/add them to the section lists (To/Cc/Bcc) on the right of the dialog. (real_add_address_cb): When we add an address, hide it in the main list. (e_select_names_init): Get pointer to our without table from the table's object data, and store it. (remove_address): When we remove an address, show it in the main list. (card_key): Added. Allocate a unique key from an ECard. (esn_get_key_fn): Added. Callback for ETableWithout. (esn_dup_key_fn): Added. Callback for ETableWithout. (esn_free_gotten_key_fn): Added. Callback for ETableWithout. (esn_free_duped_key_fn): Added. Callback for ETableWithout. * backend/ebook/e-card-simple.c (e_card_simple_get): Changed E_CARD_SIMPLE_FIELD_NAME_OR_ORG to first try the FILE_AS type. This allows the cards in the ESelectName dialog to appear in proper sort order (i.e. as 'Doe, John' rather than 'John Doe'). Fixes ximian #6002. 2001-08-20 Chris Toshok * gui/widgets/e-addressbook-reflow-adapter.c (e_addressbook_reflow_adapter_class_init): fix arg info - we're only passing 1 GTK_TYPE_POINTER arg, not 2. * gui/widgets/e-minicard.c (e_minicard_event): lots of fixes for DnD. For GDK_BUTTON_PRESS, we grab immediately. For GDK_BUTTON_MOTION, we start the drag after a certain threshold, and connect to the "drag_end" signal on our canvas so we'll know when the drag is complete. For GDK_BUTTON_RELEASE, we release the grab if we were dragging and get the event. (e_minicard_drag_end): new function, just remove the pointer/gtk grabs and disconnect. * gui/widgets/e-minicard.h (struct _EMinicard): add "gint drag_button" 2001-08-20 JP Rosevear * backend/pas/pas-backend-file.c (pas_backend_file_changes_foreach_key): use DB_NOTFOUND const 2001-08-20 JP Rosevear * backend/pas/pas-backend-file.c (pas_backend_file_process_get_changes): null out card_sexp so that we don't crash when copying 2001-08-20 JP Rosevear * conduit/address-conduit.c: fix warnings, get compiling again * conduit/address-conduit-config.h: remove c/p typos * conduit/address-conduit.h: ditto * conduit/Makefile.am: link against the static camel 2001-08-20 Damon Chaplin * gui/contact-editor/e-contact-editor.c: use bigger Save icon for toolbar. Used Delete icon in menu. * gui/component/addressbook.c: use 'Save As' icon rather than 'Save' as it seems more appropriate. Also added delete icon for menu. 2001-08-19 Ettore Perazzoli * gui/component/addressbook-component.c: Update the folder list to include a display name and a description. 2001-08-19 Damon Chaplin * gui/component/addressbook.c: use new Cut/Copy/Paste/Save/Search icons. 2001-08-19 Christopher James Lahey * gui/component/addressbook.c (set_folder_bar_label), gui/widgets/e-addressbook-model.c, gui/widgets/e-addressbook-model.h (update_folder_bar_message), gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h (folder_bar_message): Set the folder bar message here. Fixes Ximian bug #4670. * gui/component/select-names/e-select-names-model.c (SEPLEN): Use strlen(SEPARATOR) here so that if the separator changes the length will work properly. 2001-08-19 Christopher James Lahey * gui/contact-editor/fulladdr.glade: Added full country list. Fixes Ximian bug #5123. 2001-08-18 Ettore Perazzoli * gui/component/addressbook.c: Hook up `delete-message.png' as the icon for "ContactDelete". * gui/contact-editor/e-contact-editor.c: Likewise. 2001-08-17 Chris Toshok * gui/component/addressbook-storage.h: add prototype for addressbook_get_other_contact_storage. * gui/component/addressbook-storage.c (addressbook_get_other_contact_storage): rename register_storage to this, and return the EvolutionStorage. (load_source_data): register_storage => addressbook_get_other_contact_storage. (addressbook_storage_add_source): register_storage => addressbook_get_other_contact_storage. 2001-08-17 Chris Toshok * gui/contact-editor/e-contact-editor.c (set_entry_changed_signals): connect to the "changed" signal on "entry-web" to update command state. 2001-08-17 Chris Toshok * gui/contact-list-editor/e-contact-list-editor.c (list_added_cb): call e_card_set_id on the list's card so we can continue to use this dialog. also, call command_state_changed if we aren't closing the dialog so the toolbar is properly sensitized. (list_deleted_cb): always close the dialog after we successfully delete a list. * gui/contact-editor/e-contact-editor.c (card_added_cb): call e_card_set_id on the card so we can continue to use this dialog (to modify or delete the card.) (card_deleted_cb): always close the dialog after we successfully delete a card. 2001-08-17 Chris Toshok * gui/component/addressbook.c (addressbook_query_changed): call e_sexp_encode_string on the search string the user types in so it doesn't break sexp parsing in the wombat. 2001-08-17 Damon Chaplin * gui/component/addressbook.c: changed to new print icon. 2001-08-17 Chris Toshok * gui/component/select-names/e-select-names.c: (struct ESelectNamesFolder): rename physical_uri to uri, since it includes the addressbook.db for file: uris. (e_select_names_folder_free): physical_uri => uri. (e_select_names_option_activated): physical_uri => uri, and we don't need to strdup_printf "addressbook.db" onto the end anymore. (new_folder): if the physical_uri is a file: uri, append /addressbook.db onto it. (hookup_listener): new function, split out lots of code from e_select_names_hookup_shell_listener. (e_select_names_hookup_shell_listeners): rename e_select_names_hookup_shell_listener to this, and hookup both the local and "Other Contacts" listener, using hookup_listener. (e_select_names_destroy): disconnect from the other_contacts_listener and unref it. * gui/component/select-names/e-select-names.h (struct _ESelectNames): add a listener for Other Contacts, and rename "listener" to "local_listener." 2001-08-17 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (e_select_names_completion_seq_complete_cb): If we get the "sequence_complete" signal when we aren't searching, it means the addressbook changed out from under us. Clear the search cache, so that future completion requests won't use the out-of-date cached data. Also, don't unref book_view... we leave the EBookView open so that we can catch these addressbook changes. (e_select_names_completion_do_query): Don't use the book_view being non-NULL as a sign that another query is still running. (e_select_names_completion_got_book_view_cb): Properly unref any previous value in book_view. 2001-08-17 Christopher James Lahey * gui/widgets/e-addressbook-reflow-adapter.c (e_addressbook_reflow_adapter_right_click), gui/widgets/e-addressbook-view.c (table_right_click): Changed the messages here in the right click menus. 2001-08-17 Chris Toshok * backend/pas/pas-backend-ldap.c (view_destroy): unref our card_sexp. (create_card_handler): make sure to set the id of the vcard so it gets properly transmitted back to the BookView, and notify all matching BookViews to add the created card. (remove_card_handler): notify all matching BookViews to remove the card. (modify_card_handler): notify all matching BookViews to modify the card. (pas_backend_ldap_process_get_book_view): init card_sexp based on the view's search. 2001-08-17 Chris Toshok * backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): use card_sexp. (pas_backend_file_book_view_free): same. (vcard_matches_search): use the new pas_backend_card_sexp_match_vcard call. (pas_backend_file_search): use card_sexp. (pas_backend_file_process_get_book_view): same. * backend/pas/Makefile.am (libpas_a_SOURCES): add pas-backend-card-sexp.[ch]. 2001-08-17 Christopher James Lahey * gui/component/addressbook-component.c (factory_fn): Added code so the user can create a new contact or contact list from anywhere in evolution. 2001-08-16 Jeffrey Stedfast * backend/pas/evolutionperson.schema: Added a closing paren. 2001-08-16 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (e_select_names_completion_handle_request): Renamed from _begin to match changes in gal 0.10.99.3. * gui/contact-editor/e-contact-quick-add.c (e_contact_quick_add): Check that name != NULL before we start messing with it. (Fixes bug #7329) 2001-08-16 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (match_nickname): Boost scoring on an exact nickname match. Manually addressify match. (match_name): Manually addressify matches. (book_query_score): Remove automatic addressification. * gui/component/addressbook.c (addressbook_query_changed): Minor tweak to avoid a crash if we have a negative subid with id ESB_CATEGORY. This should never happen. (addressbook_menu_activated): Reset the entry/option when we select "Clear". Some changes to reflect renaming in ESearchBar. * gui/component/select-names/e-select-names-bonobo.c (entry_set_property_fn): Cardify after importing destinations. This might fix a problem that Damon is having. 2001-08-15 Chris Toshok * gui/component/addressbook-config.glade: set title of initial dialog to Addressbook Sources (bug #6704). 2001-08-15 Chris Toshok * gui/component/addressbook-storage.c (create_ldap_folder): don't let people add subdirs in the ldap server storage - everything is toplevel there. 2001-08-14 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_get_vcard): implement using search_for_dn. 2001-08-14 Federico Mena Quintero * gui/component/addressbook.c (addressbook_factory_new_control): Tell the search bar to translate the subitem texts. 2001-08-14 Jon Trowbridge * gui/component/addressbook.c (addressbook_factory_new_control): Add "Any Category" option for category searches. (addressbook_query_changed): Do the right thing on an "Any Category" search. 2001-08-14 Dan Winship * backend/pas/pas-backend-ldap.c: Fix up to match the pas_book_new/get_vcard changes. 2001-08-14 Christopher James Lahey * gui/merging/e-card-merging-book-commit-duplicate-detected.glade: Got rid of an extraneous _ here. * gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog): Changed Canceled to Cancelled here. Fixes Ximian bug #2465. 2001-08-14 Christopher James Lahey * backend/pas/pas-book.c (pas_book_respond_get_vcard): Oops, forgot to write this function. 2001-08-14 Christopher James Lahey * gui/contact-editor/contact-editor.glade: Added focus targets here. Fixes part of Ximian bug #5843. 2001-08-14 Christopher James Lahey * gui/contact-editor/e-contact-editor.c (e_contact_editor_init): Grab focus here. Fixes Ximian bug #2265. 2001-08-14 Christopher James Lahey * gui/component/addressbook.c (addressbook_factory_new_control): (addressbook_query_changed): Fixed two const warnings here. * printing/e-contact-print-envelope.c, printing/e-contact-print-envelope.h: Fixed some missing includes here. 2001-08-14 Christopher James Lahey * 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. Fixes Ximian bug #6490. * backend/ebook/e-destination.c, backend/ebook/e-destination.h: Change this to use ECard's split uids and uris. 2001-08-13 Chris Toshok * backend/pas/pas-backend-ldap.c (add_to_supported_fields): don't g_strdup the stuff we're passing into e_list_append, since it does the copy for us. (check_schema_support): don't initialize supported_fields list here, since there's a gross case where the programmer/user can bring up the contact editor before the connection stuff is finished, and we don't want to crash. (pas_backend_ldap_init): move it here to we can guarantee it's there. (bug #6546). 2001-08-13 Chris Toshok * gui/component/addressbook-config.c (addressbook_source_dialog_set_source): don't access source->auth if source == NULL (bug #7086). 2001-08-13 Christopher James Lahey * backend/ebook/e-book-listener.c, backend/ebook/e-book-listener.h, backend/ebook/e-book.c, backend/ebook/e-book.h, backend/idl/addressbook.idl, backend/pas/pas-backend-file.c, backend/pas/pas-book.c, backend/pas/pas-book.h: Changed get_card to be asyncronous. * backend/ebook/e-card.c, backend/ebook/test-client.c: Changed these to deal with the new get_card functionality. 2001-08-11 Kjartan Maraas * gui/component/select-names/e-select-names.c: Mark a string for translation. * This fixes bug #7052 * printing/e-contact-print.h: Add headers to make it stand on itw own. * printing/e-contact-print.c: Marked some strings for translation. * printing/e-contact-print-envelope.c: Same here. 2001-08-10 Jon Trowbridge * gui/contact-editor/e-contact-quick-add.c (e_contact_quick_add): Remove single- or double-quotes from names before sticking them into the addressbook. (Bug #6499) * gui/component/addressbook.c (addressbook_query_changed): Properly handle "Category is" queries by checking the search bar suboption. (addressbook_factory_new_control): Attach subitems corresponding to all wombat categories to the "Category is" ESearchBarItem. * gui/component/addressbook.c: Set the ESearchBarItem subitems explicitly to NULL. 2001-08-10 Anna Marie Dirks * gui/component/select-names/select-names.glade: did a little packing-magic to get the two tables at bottom of this dialog to seem to line up. *gui/component/select-names/e-select-names.c: changed the title of this dialog to "Select Contacts from Addressbook". 2001-08-09 Anna Marie Dirks * gui/component/select-names/select-names.glade: redesigned this dialog to fix bug #6815. *gui/component/select-names/e-select-names.c: connected the widgets (or one of them anyway. clahey did the rest) for my new and lovely glade file. 2001-08-09 Chris Toshok * gui/component/addressbook.c: remove passwd_cb. 2001-08-09 Jon Trowbridge * gui/component/select-names/e-select-names-text-model.c This change is dedicated to Jacob Berkman. (e_select_names_text_model_insert_length): If the last character we inserted was a "magic comma", remember its position. (e_select_names_text_model_delete): If the last character we inserted was a "magic comma", and if the next thing we do is to hit backspace, delete both the comma and the extra whitespace we added. (e_select_names_text_model_init): Initialize our last magic comma position. 2001-08-09 Jon Trowbridge * 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. 2001-08-09 Chris Toshok [ Fixes ximian bugs #5080, #6021, #6704, #6705 ] * gui/component/addressbook.c (book_open_cb): create our own dialog that prompts for both the email address and the password. the email address is stored in the source and filled in for the user after the first time they enter one and press OK. * gui/component/addressbook-storage.c (create_ldap_folder): has a return value, not a int* parameter. (create_ldap_folder): new function, we can create ldap servers from the File->New->Folder menu item now. (register_storage): hook up the "create_folder" signal. (addressbook_storage_init_source_uri): remove the file case, we only build ldap uris here. (load_source_data): remove the file source stuff, and handle "emailaddr". (save_source_data): call ldap_source_foreach directly. (addressbook_source_free): remove file source stuff. (addressbook_source_copy): same. * gui/component/addressbook-storage.h: get rid of all the file source stuff from AddressbookSource, since this is only being used for ldap servers. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_authenticate_user): look up the ldap entry based on the provided email address and use the resulting DN/passwd to authenticate. * gui/component/addressbook-config.c: pretty much gutted to make it work with the new UI. * gui/component/addressbook-config.glade: new version from anna. 2001-08-09 Christopher James Lahey * gui/widgets/e-addressbook-view.c (SPEC): Upped the minimum width on all addressbook columns to 75. Fixes Ximian bug #2773. 2001-08-08 Chris Toshok * gui/contact-editor/e-contact-quick-add.c (ce_have_book): mark the dialog as changed so the save button is immediately available. * gui/contact-editor/e-contact-editor.c (card_modified_cb): once we save reset the change flag to false if we aren't closing the dialog. (card_added_cb): same. (e_contact_editor_class_init): add a "changed" arg. (e_contact_editor_set_arg): add setter for "changed". (e_contact_editor_get_arg): add getter for "changed". 2001-08-08 Chris Toshok * gui/contact-editor/e-contact-quick-add.c (ce_have_book): better to assume that we can write to the local addressbook than that we can't write to it :) 2001-08-08 Chris Toshok * gui/contact-list-editor/e-contact-list-editor.c (create_ui): call e_pixmap_update so we can use the same save/save-as pixmaps as the contact editor. 2001-08-08 Chris Toshok * gui/widgets/e-addressbook-reflow-adapter.c (open_card): new function, used by the context menu. (e_addressbook_reflow_adapter_right_click): put "Open" at the top of the menu. also, disable "Delete" if the addressbook isn't writable. 2001-08-08 Chris Toshok * backend/pas/pas-backend-ldap.c (rfc2254_escape): escape *, \, (, and ), as per rfc2254. (func_contains): escape the string. (func_is): same. (func_beginswith): same. (func_endswith): same. 2001-08-08 Nat Friedman * gui/widgets/e-addressbook-reflow-adapter.c (print_envelope): If 0'd out since Envelope printing is disabled for 1.0. * gui/widgets/e-addressbook-view.c (print_envelope): Likewise. * gui/contact-editor/e-contact-editor.c (print_envelope_cb): Likewise. * gui/widgets/e-addressbook-reflow-adapter.c (e_addressbook_reflow_adapter_right_click): Removed "Print Envelope" menu item. * gui/widgets/e-addressbook-view.c (table_right_click): Likewise. * gui/contact-editor/e-contact-editor.c (verbs): Likewise. 2001-08-07 Chris Toshok * gui/component/addressbook-storage.c (remove_ldap_folder): ifdef this HAVE_LDAP. 2001-08-07 Chris Toshok * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_init): set the title of the window to "Advanced Search". 2001-08-07 Chris Toshok * gui/component/addressbook.c (search_cb): pass view->view instead of the EBook. (addressbook_search_menu_items): remove E_FILTERBAR_ADVANCED. (addressbook_menu_activated): remove E_FILTERBAR_ADVANCED. (addressbook_search_option_items): add "Advanced..." here. (addressbook_query_changed): add special handling for Advanced... * gui/search/e-addressbook-search-dialog.h (struct _EAddressbookSearchDialog): add EAddressbookView and remove the model/adapter fields. Also fix prototype of e_addressbook_search_dialog_new. * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_class_init): get rid of set_arg/get_arg. (button_press): set the query on the EAddressbookView, and always close the dialog. (e_addressbook_search_dialog_init): get rid of the minicard view, and pack the other widgets accordingly. (e_addressbook_search_dialog_new): pass EAddressbookView instead of EBook. (e_addressbook_search_dialog_destroy): remove model/adapter stuff. 2001-08-07 Chris Toshok [ Fixes bug #5066 ] * gui/component/addressbook-storage.c (remove_ldap_folder): new function, remove the source. (register_storage): connect to the "remove_folder" signal so we know when to remove the folder. 2001-08-07 Chris Toshok * backend/pas/pas-backend-ldap.c (build_card_from_entry): use g_strcasecmp since ldap attribute names are not case sensitive. 2001-08-07 Chris Toshok * gui/contact-list-editor/e-contact-list-editor.c (table_drag_data_received_cb): make sure we update the changed state if a successful drop happens. 2001-08-07 Jason Leach * gui/component/select-names/e-select-names.c (e_select_names_init): Make the OK button the keyboard default instead of Cancel. Bug #4942. 2001-08-06 Radek Doulik * backend/ebook/e-book.c (e_book_op_free): new EBookOp destructor (e_book_unqueue_op): use e_book_op_free (e_book_do_response_create_card): ditto (e_book_do_response_generic): ditto (e_book_do_response_get_cursor): ditto (e_book_do_response_get_view): ditto (e_book_do_response_get_changes): ditto (e_book_do_response_open): ditto (e_book_do_response_get_supported_fields): ditto 2001-08-05 Radek Doulik * backend/ebook/e-book.c (e_book_do_response_get_view): set op->listener to NULL to catch possible use of freed op (e_book_do_response_get_changes): ditto * backend/ebook/e-book-view-listener.c (e_book_view_listener_check_queue): this callback could be (and indeed is) called from signal emited above, signal handler could call e_book_view_listener_stop, so we need to check if idle is still set and if not we don't want to unref again 2001-08-04 Christopher James Lahey * backend/ebook/e-card-compare.c (e_card_compare_name): Made it so that if there's one less match than possible compares are considered more VAGUE. Fixes Ximian bug #3400. 2001-08-03 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_hookup_shell_listener): Check for storage != NULL here. This shouldn't come up unless addressbook has crashed previously within this session of evolution, but this is just a bit of insurance. Fixes Ximian bug #3699. 2001-08-03 Christopher James Lahey * backend/ebook/e-card.c (e_card_name_match_string): Changed the criteria of whether the first part of each iteration matched or the second one did. Before it got it wrong sometimes and caused the pointer to jump off the end of the array. Fixes Ximian bug #4674. 2001-08-03 Jason Leach * gui/component/addressbook-storage.c (load_source_data): Update for EvolutionStorage API changes. (addressbook_storage_add_source): Ditto. 2001-08-03 Christopher James Lahey * gui/widgets/e-addressbook-view.c (jump_to_letter): Made this change the query based on which letter is clicked. Fixes Ximian bug #2202. 2001-08-03 Christopher James Lahey * gui/component/addressbook.c (addressbook_factory_new_control): Fixed warnings here. * gui/component/select-names/e-select-names-completion.c (hash_cleanup_fn): Removed this unused function. 2001-08-03 Christopher James Lahey * backend/ebook/e-card-simple.c (e_card_simple_sync_card, fill_in_info): Made the list of E_CARD_PHONE types in phone_correspondences more complete by adding the new 5 E_CARD_PHONE types. Also, made it a bit less restrictive for some types (E_CARD_PHONE_HOME will actually match E_CARD_SIMPLE_PHONE_ID_HOME now.) Made e_card_simple_sync_card and fill_in_info search for an exact match in the list of phone_correspondences and then look for a partial match. Got rid of not going forward when doing a remove from an EList since EList handles this case automatically. * backend/ebook/e-card-types.h: Added E_CARD_PHONE types for assistant, callback, radio, telex, and ttytdd. * backend/ebook/e-card.c (get_phone_flags, set_phone_flags): Handle the new E_CARD_PHONE types. 2001-08-02 Jon Trowbridge * 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 Jason Leach * gui/component/addressbook.c (addressbook_factory_new_control): Removed some extra padding and pack the addressbook view into a frame with inward shadowing, just because it looks prettier. * gui/contact-editor/e-contact-editor.c: Use the updated Save, Save As, and Print icons for the menus and toolbar. 2001-08-02 Christopher James Lahey * gui/component/addressbook.c: Added ContactsSaveAsVCard, ContactsSendContactToOther, and ContactsSendMessageToContact verbs here. * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h (e_addressbook_view_save_as, e_addressbook_view_send, e_addressbook_view_send_to): New functions to allow outside users to cause the addressbook to save, send, or send a message to its selection. 2001-08-01 Christopher James Lahey * contact-editor/.cvsignore: Removed this file from this unused directory. 2001-08-01 Christopher James Lahey * gui/contact-editor/Makefile.am: Added file-exists.glade. * gui/contact-editor/e-contact-save-as.c (file_exists), gui/contact-editor/file-exists.glade: Added a dialog to ask the user whether to replace an already existing file. Mostly from a patch by Jos Dehaes. Fixes Ximian bug #2231. 2001-08-01 Christopher James Lahey * backend/ebook/e-book-view-listener.c (e_book_view_listener_check_queue): Removed thrash checking code here since thrashing shouldn't happen now that we've cleaned this up some. * backend/ebook/e-book.c (e_book_do_response_get_view): Properly handle cases where construction fails. 2001-07-30 Christopher James Lahey * backend/ebook/evolution-vcard-importer.c: Added #include . 2001-07-23 Zbigniew Chyla * gui/component/addressbook-config.c (addressbook_source_dialog): Convert translated string to UTF8 before calling put_html. 2001-07-30 Jon Trowbridge * 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) 2001-07-30 Jason Leach * gui/component/addressbook-storage.c (load_source_data): Fix a return value bug, to make it so if it fails to load an addressbook-sources.xml file (either a parse error or it doesn't exist for example), it deregisters the storage. (register_storage): Don't make a storage for users who don't have LDAP support built in. Bug #1950. 2001-07-30 Frederic Crozat * addressbook/gui/component/addressbook-factory.c: Fix crashes when gtkhtml is compiled with gconf support 2001-07-27 JP Rosevear * conduit/Makefile.am: Tidy ldadds 2001-07-26 Jon Trowbridge * gui/component/select-names/e-select-names-bonobo.c: Fixing a small, stupid mistake; use e_select_names_model_get_textification for the getter for "text". * backend/ebook/e-card.c: Removed some debugging chatter. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_create_entry): Store the completion handler in the entry's object data. * gui/component/select-names/e-select-names-bonobo.c (entry_get_property_fn): Added support for getting "destinations" and "allow_contact_lists" properties. (entry_set_property_fn): Added support for setting "destinations" and "allow_contact_lists" properties. (impl_SelectNames_get_entry_for_section): Added definitions for "destinations" and "allow_contact_lists" properties. * gui/component/select-names/e-select-names-completion.c (e_select_names_completion_get_match_contact_lists): Added. (e_select_names_completion_set_match_contact_lists): Added. Controls whether contact lists are offered as options during completion. (book_query_process_card_list): Check if match_contact_lists is set before (duh!) matching on a contact list. (e_select_names_completion_init): Set match_contact_lists to TRUE by default. 2001-07-25 Chris Toshok * backend/pas/pas-backend-ldap.c (func_contains): change the way x-evolution-any-field is converted to an ldap query. it used to be we'd nest queries like: (|(|(|(foo=*x*))(bar=*x*))(baz=*x*)). now we build it like: (|(foo=*x*)(bar=*x*)(baz=*x*)). much more efficient (both in the building, and on the server side no doubt). 2001-07-25 Jon Trowbridge * 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. 2001-07-24 Jon Trowbridge * gui/contact-list-editor/e-contact-list-model.c: Added checks for all of the args of the exposed functions, so that we won't crash on bad inputs. (Related to bug #4856.) 2001-07-24 Jason Leach * gui/merging/e-card-duplicate-detected.glade: "_Add Anyway" to "Add Anyway". 2001-07-24 Jon Trowbridge * 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. 2001-07-24 Chris Toshok * gui/widgets/e-minicard.c (remodel): need the EDestination magic here too for when we modify an already shown card. * gui/contact-list-editor/e-contact-list-model.c: make parent_class static, just to be anal. * gui/contact-list-editor/e-contact-list-editor.c (remove_entry_cb): removing entries changes the list, so flag it. (table_drag_data_received_cb): restrict cards we add to lists to be non-list cards. (extract_info): clear out the email list in the card before we repopulate it from the contact list model. (fill_in_info): set the checkbox to active/inactive based on thecard. 2001-07-24 Chris Toshok * gui/contact-editor/e-contact-editor.c (wants_html_changed): call widget_changed. (phone_entry_changed): same. (email_entry_changed): same. (address_text_changed): same. (name_entry_changed): same. (company_entry_changed): same. (widget_changed): new function that we can either call or set as a signal to change the "changed" flag on the dialog. (set_entry_changed_signals): connect lots of "changed" signals on widgets to widget_changed. (add_lists): connect "changed" to widget_changed. 2001-07-24 Jon Trowbridge * gui/component/select-names/e-select-names.c (e_select_names_hookup_shell_listener): Check if evolution_shell_client_get_local_storage returns CORBA_OBJECT_NIL, which it should never do. If it does, print a warning in a dialog and try to recover w/o crashing. (Bug #5193) 2001-07-24 Dan Winship * backend/ebook/e-book-listener.c (e_book_listener_stop): Don't stop the idle_queue and unref from here, since this might be called from inside e_book_listener_check_queue, and we don't want to return to that function with the listener having been destroyed. (e_book_listener_check_queue): Don't exit early if the queue is stopped. Proceed through the check if the queue is NULL (which is must be if the queue is stopped), and then reach the existing code to remove the idle handler. Combined with the above, this fixes ximian #4485 (again). This is not a plot to boost my showstopper-bugfixing count by fixing the same bug over and over again. 2001-07-23 Dan Winship Re-fix for my 07-18 not-quite-fix. * backend/ebook/e-book-listener.c: Add a "stopped" flag like EBookViewListener. (e_book_listener_check_queue): Don't emit signals if the listener is stopped. (e_book_listener_queue_generic_response, etc): Don't queue responses if the listener is stopped. (e_book_listener_stop): Flush the queue and stop queue/emitting further responses. * backend/ebook/e-book.c (e_book_unload_uri): Revert the previous change and call e_book_listener_stop() instead. * backend/ebook/e-book-view-listener.c (e_book_view_listener_stop): When removing an idle handler, unref the listener as well, since e_book_view_listener_queue_response will have ref'ed it. 2001-07-22 Ettore Perazzoli * gui/component/addressbook-component.c (remove_folder): Add a @type arg. If the type is not "contacts", report an `UNSUPPORTED_TYPE' error through the listener. Also, remove `g_print()' debugging messages. (xfer_folder): Likewise. 2001-07-21 Ettore Perazzoli * gui/component/addressbook-component.c: Make the "contacts" folders user-creatable by setting `user_creatable' to %TRUE in the `EvolutionShellComponentFolderType's. 2001-07-18 Chris Toshok [ patch contributed by Jos Dehaes ] * gui/component/addressbook-storage.c (register_storage): new function, register our evolution_storage. (addressbook_storage_setup): remove storage registration from here. (load_source_data): register the storage here before we load addressbook-sources.xml, and deregister it if there are no sources listed. (addressbook_storage_remove_source): unregister the storage if the list of sources hits 0 length. 2001-07-18 Dan Winship * backend/ebook/e-book.c (e_book_unload_uri): Flush the listener's queue before unreffing it to ensure that it doesn't emit any more "responses_queued" signals after the EBook is destroyed. * backend/ebook/e-book-listener.c (e_book_listener_check_queue, e_book_listener_queue_response, e_book_listener_new): Use bonobo_object_ref/unref rather than gtk_object_ref/unref. * backend/ebook/e-book-view-listener.c (e_book_view_listener_queue_response, e_book_view_listener_new): Likewise. 2001-07-18 Chris Toshok * backend/ebook/e-card-compare.c (simple_query_cb): prune the list of cards that match our query using the avoid list here, instead of using the avoid list in the query itself, since ldap can't handle that. (use_common_book_cb): remove the block of code including the avoid list in the query sent to wombat. 2001-07-17 Chris Toshok [ Fixes bugs #4611 - crash searching in the name field at Bigfoot for "\" and #4554 - general ldap search crash ] * backend/pas/pas-backend-ldap.c (func_contains): the length of the big query string needs to take into account the length of the footer as well as the header - fix random memory corruption here. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query): list can be NULL, specifically if there's a parsing error in the sexp, so deal with it. 2001-07-17 Jon Trowbridge * 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. * 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) 2001-07-17 Christopher James Lahey * gui/contact-editor/contact-editor.glade, gui/merging/e-card-duplicate-detected.glade, gui/merging/e-card-merging-book-commit-duplicate-detected.glade, printing/e-contact-print.glade: Patch from Taylor Hayward . Added accelerators to a few dialogs. 2001-07-16 Jon Trowbridge * gui/component/select-names/Evolution-Addressbook-SelectNames.idl: Added addSectionWithLimit to the SelectNames interface. * gui/component/select-names/e-select-names-bonobo.c (impl_SelectNames_add_section_with_limit): Added. Implements addSectionWithLimit. (e_select_names_bonobo_construct): Set up as a BonoboEventSource. (init): Listen for "changed" signals from our manager. (manager_changed_cb): Notify our listeners if we get a changed signal from our manager. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_class_init): Added a "changed" signal". (section_copy): Propogate the signal connection. (section_free): Disconnect the changed handler. (e_select_names_manager_add_section_with_limit): Connect to the new section's model, listening for changes. (e_select_names_manager_activate_dialog): Connect to the "working copy" model, listening for changes. (e_select_names_manager_add_section_with_limit): Added. (e_select_names_manager_add_section): Changed to just be a special case of e_select_names_manager_add_section_with_limit. * gui/component/select-names/e-select-names-model.c (e_select_names_model_set_limit): Added. Allows a max number of names allowed in the model. (e_select_names_model_get_limit): Added. Returns the limit. (e_select_names_model_at_limit): Added. Returns TRUE if the model is "full". (e_select_names_model_insert): Check that we aren't at the limit before inserting. Silently return if we are. (e_select_names_model_append): Check that we aren't at the limit before appending. Silently return if we are. 2001-07-16 Chris Toshok [ Fix bug #4705 - LDAP storage gets saved with corrupted binddn] * gui/component/addressbook-config.c (addressbook_dialog_apply): call addressbook_storage_write_sources here after we're done rebuilding them. * gui/component/addressbook-storage.c (addressbook_storage_clear_sources): don't write the source file here. (addressbook_storage_add_source): same. (addressbook_storage_remove_source): same. (addressbook_storage_write_sources): new function, write the source file out. (addressbook_source_copy): g_strdup the binddn so we don't end up free'ing it multiple times thanks to copies freeing theirs. * gui/component/addressbook-storage.h: add prototype for address_storage_write_sources. 2001-07-16 Iain Holmes * backend/pas/evolution-vcard-importer.c (ebook_create): Don't just use the default directory. Use the directory that is passed into the load file function. 2001-07-15 Christopher James Lahey * 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. 2001-07-15 Christopher James Lahey * gui/widgets/e-addressbook-view.c (table_drag_data_get): Added a call to e_table_view_to_model_row here. (e_addressbook_view_can_print, e_addressbook_view_can_delete, e_addressbook_view_can_copy): If the selection model is NULL here, return NULL (this was done before in a g_return_val_if_fail which is only conditionally included.) 2001-07-13 Christopher James Lahey * gui/contact-editor/contact-editor.glade: Changed Company to Organization here. 2001-07-12 JP Rosevear * backend/pas/Makefile.am: add ldap cflags 2001-07-12 Jeffrey Stedfast * 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! 2001-07-12 Jeffrey Stedfast * 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! 2001-07-12 Iain Holmes * backend/e-book/evolution-vcard-importer.c (support_format_fn): Check for no extension. Actually same as Jason's fix below :) but also check the file contents. 2001-07-12 JP Rosevear * gui/component/addressbook-config.glade: add accelerators, taylor's patch 2001-07-12 Jason Leach * backend/ebook/evolution-vcard-importer.c (support_format_fn): Crash fix because strcmp() hates NULL arguments. Bug #3777. 2001-07-11 Jason Leach * gui/component/select-names/e-select-names.c (remove_cb): Added some comments for clarity and fixed a pretty noticable bug with how right click "Remove" was deleting more than it should with consecutive runs. 2001-07-10 Chris Toshok * backend/pas/evolutionperson.schema: assign OID's to the schema entries, and add schema support for contact lists. 2001-07-10 Christopher James Lahey * backend/pas/pas-backend-file.c (pas_backend_file_load_uri): Set bf->priv->file_db before calling do_create. 2001-07-06 Christopher James Lahey * gui/component/addressbook-component.c (factory_fn): Fixed order of arguments to evolution_shell_component_new. 2001-07-08 Jon Trowbridge * 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. 2001-07-09 Kjartan Maraas * gui/contact-list-editor/e-contact-list-editor.c: Marked a string for translation. Also add the neccesary includes to make _() macros work. 2001-07-07 Jon Trowbridge * 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 "), 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. 2001-07-06 Ettore Perazzoli * gui/component/addressbook-component.c (populate_context_menu): Removed. [It was just bogus testing code for the right-click menu populating interface in the shell]. (factory_fn): Pass NULL as the PopulateContextMenuFn. 2001-07-05 Anna Marie Dirks * gui/contact-list-editor/contact-list-editor.glade: Added some accelerators, padding, and a "memebers" frame; also fixed spacing and growth behaviour of this dialog. 2001-07-05 Christopher James Lahey * backend/pas/pas-backend-file.c (compare_category): Fix a memory leak here. 2001-07-05 Christopher James Lahey * backend/ebook/e-card-compare.c (match_search_info_free): Set info->avoid = NULL. This shouldn't make a difference, but it can't hurt. 2001-07-05 Christopher James Lahey * gui/widgets/e-addressbook-table-adapter.c (addressbook_is_cell_editable): Check if the row is within our table and return from this function as if the card is a standard card, not a list. 2001-07-03 Damon Chaplin * backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): added $(BONOBO_CONF_LIBS) to get it to compile. 2001-07-02 Christopher James Lahey * gui/component/Makefile.am (evolution_addressbook_LDADD): Added $(BONOBO_CONF_LIBS). * gui/component/select-names/e-select-names.c (e_select_names_create_categories), gui/contact-editor/e-contact-editor.c (categories_clicked): Switched to an ECategoriesMasterListWombat instead of an ECategoriesMasterListArray here. 2001-07-02 Peter Williams * gui/contact-editor/Makefile.am (INCLUDES): srcdir != builddir compile fix. * gui/contact-list-editor/Makefile.am (INCLUDES): Same. * gui/widgets/Makefile.am (INCLUDES): Same. * gui/search/Makefile.am (INCLUDES): Same. 2001-07-02 Christopher James Lahey * gui/contact-editor/e-contact-editor.c (categories_clicked): Turned off wombatification of the categories master list here. 2001-07-01 Chris Toshok * 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. 2001-07-02 Christopher James Lahey * backend/ebook/e-card.c, backend/ebook/e-card.h: Added related_contacts field. * gui/component/select-names/e-select-names-model.c, gui/component/select-names/e-select-names-model.h (e_select_names_model_import_destinationv): Added this function. * gui/contact-editor/contact-editor.glade: Replaced the entry here for related contacts with a table which is filled in in the C code. * gui/contact-editor/e-contact-editor.c, gui/contact-editor/e-contact-editor.h (add_lists): Added a select names entry here for the related contacts field. * gui/widgets/Makefile.am: Removed all the test programs here since there are circular dependencies now. 2001-07-01 Jon Trowbridge * 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). * 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. 2001-06-30 Jon Trowbridge * backend/ebook/e-card.c (e_card_evolution_list): Check args. Somewhere in the code (somewhere in the minicard stuff) this can be called with a NULL arg, which was causing crashes. (e_card_evolution_list_show_addresses): Check args. * 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). 2001-06-30 Zbigniew Chyla * gui/component/e-address-popup.c (e_address_popup_construct): Marked strings for translation. 2001-06-30 Jon Trowbridge * 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. 2001-06-29 Christopher James Lahey * gui/component/select-names/e-select-names.c (update_query): Added a search field to the query here. (e_select_names_init): Update the query on a number of signals here. * gui/component/select-names/e-select-names.h: Added search_entry here. * gui/component/select-names/select-names.glade: Added the search entry here. Added some labels. Removed the update button. 2001-06-29 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_option_activated): Change the uri here to have addressbook.db at the end. * gui/component/select-names/select-names.glade: Changed the name of the folder option menu here to match the name used in the code. 2001-06-29 Christopher James Lahey * gui/component/select-names/e-select-names.c (update_query): Change the query when the "Update List" button is pushed. * gui/component/select-names/e-select-names.h: Removed currently_selected field. Added categories_entry field. * gui/component/select-names/select-names.glade: Added "Update List" button. 2001-06-29 Chris Toshok * gui/widgets/Makefile.am (INCLUDES): add EVOLUTION_IMAGESDIR define. * gui/widgets/e-minicard.h (struct _EMinicard): add our pixbuf and pixbuf size. * gui/widgets/e-minicard.c (e_minicard_init): init the icon pixbuf and its size. (e_minicard_destroy): unref the list_icon_pixbuf. (e_minicard_realize): create the list_icon GnomeCanvasPixbuf. (e_minicard_resize_children): clip the header_text by the list_icon, and place the list_icon in the right spot. (remodel): show the list_icon if we're a list, and hide it otherwise. 2001-06-28 Chris Toshok * gui/widgets/e-addressbook-view.c (table_double_click): pop up list editor for lists, contact editor otherwise. * gui/widgets/e-minicard.c (e_minicard_event): same. * gui/widgets/e-minicard.h (struct _EMinicard): change "editor" to GtkOjbect, since it can be either a contact editor or contact list editor. * gui/widgets/e-addressbook-table-adapter.c (addressbook_is_cell_editable): don't allow editting of any fields except the name and file_as for lists. 2001-06-28 Chris Toshok * gui/contact-list-editor/Makefile.am (INCLUDES): remove ancient e-table include, and add include for contact-editor so we can reuse the confirm_delete dialog. * gui/contact-list-editor/e-contact-list-editor.h (struct _EContactListEditor): remove prototype for e_contact_list_editor_close, since the function no longer exists. * gui/contact-list-editor/e-contact-list-editor.c (list_deleted_cb): new function, emit our "list_deleted" signal. (delete_cb): new function, called from the Delete toolbar item. (e_contact_list_editor_raise): flesh out function. (extract_info): "evolution_list" => "list". (fill_in_info): same. 2001-06-28 Chris Toshok * backend/ebook/e-card.c (e_card_get_vobject): add support for X-EVOLUTION-LIST and X-EVOLUTION-LIST-SHOW-ADDRESSES. (parse_list): new function, parse the boolean X-EVOLUTION-LIST. (parse_list_show_addresses): new function, parse the boolean X-EVOLUTION-LIST-SHOW-ADDRESSES. (e_card_class_init): add args for "list" and "list_show_addresses". (e_card_set_arg): add support for list and list_show_addresses. (e_card_get_arg): same. (e_card_init): init list and list_show_addresses. 2001-06-27 Ettore Perazzoli * gui/component/addressbook-component.c (factory_fn): Pass NULL as the @external_uri_schemas argument to `evolution_shell_component_new()'. 2001-06-27 Chris Toshok * gui/contact-list-editor/e-contact-list-model.c (contact_list_row_count): track storage change - we're only using 1 array now. (contact_list_value_at): same. (contact_list_model_destroy): same. (e_contact_list_model_init): same. (e_contact_list_model_add_email): same. (e_contact_list_model_add_card): same. (e_contact_list_model_remove_row): same. (e_contact_list_model_remove_all): new function - just free/unref all existing rows. (e_contact_list_model_get_email): new function, returns the alloc'ed string containing either an email address or an encoded ECardId. * gui/contact-list-editor/e-contact-list-model.h: remove the 2 separate arrays for email and cards, and store them in the same array. * gui/contact-list-editor/e-contact-list-editor.h (struct _EContactListEditor): add the visible_addr_checkbutton widget. * gui/contact-list-editor/e-contact-list-editor.c (visible_addrs_toggled_cb): new function. (e_contact_list_editor_init): connect to "toggled" on visible_addrs_checkbutton. (file_save_cb): new function. (tb_save_and_close_cb): new function. (verbs): add Save and Save & Close. (list_added_cb): new function. (list_modified_cb): new function. (save_card): new function - we do *not* use e_card_merging_* calls here. (e_contact_list_editor_get_arg): un-#if 0 code in the "card" getter. (e_contact_list_editor_set_arg): same for the "card" setter. (extract_info): new function. (fill_in_info): new function. * gui/contact-list-editor/contact-list-editor.glade: add a checkbutton at the bottom to determine whether to visibly include mail addresses in mail sent to this list. 2001-06-26 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_create_categories): Oops. Can't use the wombat version of the master categories list yet. 2001-06-26 Christopher James Lahey * gui/widgets/e-addressbook-table-adapter.c (create_card): memmove counts were off in this function. (remove_card, modify_card): Moved the table notifications around a bit here. 2001-06-26 Christopher James Lahey * gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h, gui/component/select-names/select-names.glade (e_select_names_create_categories): Added a categories combo here. It's not used yet. 2001-06-26 Christopher James Lahey * gui/search/addresstypes.xml: Added category searching to the advanced search dialog here. 2001-06-26 Christopher James Lahey * backend/pas/pas-backend-file.c (compare_category): Added category searching to the file backend. * gui/component/addressbook.c (addressbook_query_changed): Added category searching to the search bar. 2001-06-25 Peter Williams * conduit/Makefile.am (INCLUDES): Fix for srcdir != builddir. 2001-06-25 Chris Toshok * gui/contact-list-editor/contact-list-editor.glade: change layout slightly, the icon no longer pushes everything to the left, and make the buttons on the right smaller and more in line with the other widgets. * gui/contact-list-editor/e-contact-list-model.c (contact_list_value_at): return the SimpleAndString->string instead of querying the ecardsimple. (e_contact_list_model_init): initially allocate 10 of each type (email and simple). (e_contact_list_model_add_email): realloc if need be. (e_contact_list_model_add_card): same, and initialize the string displayed to be "[Name] []". (e_contact_list_model_remove_row): change for SimpleAndString. (contact_list_model_destroy): free our 2 arrays. * gui/contact-list-editor/e-contact-list-model.h: add alloc counts and the SimpleAndString struct. * gui/contact-list-editor/e-contact-list-editor.c: Helix Code => Ximian. (e_contact_list_editor_init): hook up d&d destination signals, and un-#if 0 the delete_event signal. (table_drag_motion_cb): new function. (table_drag_drop_cb): new function. (table_drag_data_received_cb): new function. (file_close_cb): new function. (verbs) uncomment the close verb. (close_dialog): new function. (app_delete_event_cb): new function. * gui/contact-list-editor/e-contact-list-editor.h: Helix Code => Ximian. 2001-06-25 Jon Trowbridge * gui/component/e-address-popup.c: Add a huge steaming pile of code to handle the case of single-address merging. In other words, if you go to "harvest" an address by right-clicking on it in the mail viewer, and you already have a closely-matching contact (w/ a different e-mail address), this gives you the option of editting that contact's e-mail addresses to add the one you just clicked on. * backend/ebook/e-card-compare.c (match_search_info_free): It is amazing how much better things work when you don't try to dereference the pointer you just freed. 2001-06-24 Chris Toshok * gui/widgets/Makefile.am (minicard_test_LDADD): correct path to libecontacteditor.a. (minicard_widget_test_LDADD): same. (INCLUDES): same, for the includes. * gui/widgets/e-minicard.h: correct e-contact-editor.h path. * gui/widgets/e-addressbook-util.h: correct path to e-contact-editor.h, and add e-contact-list-editor.h. Add prototype for e_addressbook_show_contact_list_editor. * gui/widgets/e-addressbook-util.c: remove #include "e-contact-editor.h" (our header includes it.) (added_cb): rename card_added_cb to this, and make it so it can be reused in both the list and card cases. remove the g_print too. (modified_cb): same for modified case. (deleted_cb): same for deleted case. (editor_closed_cb): change first arg to GtkObject* so we can reuse this for both list and card. (e_addressbook_show_contact_editor): use added_cb, modified_cb, deleted_cb, and pass FALSE as user_data. (e_addressbook_show_contact_list_editor): new function, same as above but creating a contact-list-editor, and pass TRUE as user_data. * gui/component/e-address-popup.c: correct path to contact-editor. * gui/component/e-address-widget.c: same. * gui/component/select-names/e-select-names-popup.c: same. * gui/component/select-names/e-select-names-text-model.c: same. * gui/component/addressbook.c (new_contact_list_cb): new function. (update_command_state): update ContactNewList command. (verbs): remove ViewAll from the toolbar from the verb list. Add ContactNewList. (pixmaps): same for pixmaps. * gui/component/Makefile.am (evolution_addressbook_LDADD): new path for contact-editor. (INCLUDES): same. * gui/contact-list-editor/e-contact-list-model.h: * gui/contact-list-editor/e-contact-list-model.c: * gui/contact-list-editor/e-contact-list-editor.h: * gui/contact-list-editor/e-contact-list-editor.c: * gui/contact-list-editor/Makefile.am: Initial contact-list editor commit. * gui/Makefile.am (SUBDIRS): add contact-editor. * Makefile.am: (SUBDIRS): remove contact-editor. 2001-06-21 Jon Trowbridge * gui/component/select-names/e-select-names-popup.c (make_contact_editor_cb): Renamed. (The old name, edit_contact_info_have_book_cb was a hold-over from before, when we weren't using e_book_use_local_address_book.) * gui/component/e-address-popup.c (e_address_popup_schedule_refresh): A Added. We now do the name refreshes in an idle function, rather than in the setters. (e_address_popup_set_free_form): Added. Properly handle inputs of the form "Foo ", extracting the name and e-mail address. (e_address_popup_set_name): Check to make sure that the free-form handler shouldn't be used to handle the input. Schedule a refresh after making any changes. (e_address_popup_set_email): Check to make sure that the free-form handler shouldn't be used to handle the input. Schedule a refresh after making any changes. (e_address_popup_name_only_matches): Temporary place-holder for handling name-only matches. (query_cb): If our initial query fails (and included e-mail information), do a name-only query. This is to handle the case of adding new e-mail addresses to existing contacts. (e_address_popup_query): Eliminated the "common_book" crap; using e_book_use_local_address_book instead. * backend/ebook/e-card-compare.c (match_search_info_free): Make sure that the ->avoid list gets properly freed. 2001-06-20 Chris Toshok * backend/pas/pas-backend-file.c (pas_backend_file_process_get_supported_fields): fix a refcounting memleak. 2001-06-20 Chris Toshok * backend/ebook/e-book-listener.c (e_book_listener_queue_get_supported_fields_response): fix memory leak. 2001-06-20 Chris Toshok * contact-editor/e-contact-editor.c: add prototype for close_dialog to remove warnings. 2001-06-20 Dave Camp * backend/ebook/e-card.c (e_card_list_send): Changed attach_data to be a GNOME_Evolution_Composer_AttachmentData rather than a CORBA_char*. 2001-06-19 Chris Toshok * gui/widgets/e-addressbook-view.c (table_double_click): track change to e_addressbook_show_contact_editor signature. * gui/widgets/e-minicard-view.c (e_minicard_view_event): same. * gui/widgets/e-minicard.c (e_minicard_event): same. * gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog): add an entry for "Card ID already exists". (e_addressbook_show_contact_editor): track the change to signal names and e_contact_editor_new signature here. * gui/widgets/e-addressbook-util.h: change e_addressbook_show_contact_editor's signature to match e_contact_editor_new more closely. * gui/widgets/e-addressbook-table-adapter.c (unlink_model): free up the simple mapping to plug a potentially sizeable memory leak. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_activate_obj): call e_addressbook_show_contact_editor here. * gui/component/select-names/e-select-names-popup.c (edit_contact_info_have_book_cb): remove the get_supported_fields stuff, since the contact editor handles it for us now, and call e_addressbook_show_contact_editor. * gui/component/e-address-popup.c (edit_contact_info_cb): same. * gui/component/addressbook.c (new_contact_cb): track change to e_addressbook_show_contact_editor. 2001-06-19 Chris Toshok * contact-editor/e-contact-quick-add.c (ce_have_book): rename ce_book_found_fields to this, remove the fetching of fields (the contact editor code handles that now.), and change the add_card signal to card_added. (card_added_cb): copied somewhat from merge_cb above. we don't need to do the merge here, just call the callback. * contact-editor/e-contact-editor.c (e_contact_editor_class_init): track signal change. add book arg, and is_read_only -> editable. (wants_html_changed): if the card isn't already changed, flag it as such (and update the commands.) (phone_entry_changed): same. (email_entry_changed): same. (address_text_changed): same. (name_entry_changed): same. (company_entry_changed): same. (full_name_clicked): is_read_only -> editable. (full_addr_clicked): same. (card_added_cb): new function, emit our card_added signal, and close the dialog if we're supposed to. properly deal with error status here. (card_modified_cb): same, modulo card_added -> card_modified. (save_card): actually call e_card_merging_book_{add/commit}_card instead of using a signal. Also, add a gboolean arg to tell whether or not to close the dialog after saving the card. (card_deleted_cb): new function, just emit our "card_deleted" signal. (delete_cb): actually call e_book_remove_card here, instead of using a signal. (tb_save_and_close_cb): call save_card with TRUE for should_close. (e_contact_editor_init): init changed = FALSE; (e_contact_editor_destroy): unref our book if we have one. (e_contact_editor_new): new signature, set the "book" arg, and call e_book_get_supported_fields here. (supported_fields_cb): new function, show the contact editor. (e_contact_editor_set_arg): initialize changed to FALSE when setting the card (but *after*, since the changed callbacks will set it to TRUE.) also, call command_state_changed if editable changes. also handle setting "book". oh, and is_read_only -> editable. (command_state_changed): new function - set the state of the commands we care about. (e_contact_editor_get_arg): add "book" handling, and is_read_only -> editable. (_phone_arrow_pressed): is_read_only -> editable. (_email_arrow_pressed): same. (_address_arrow_pressed): same. (enable_writable_fields): same. (set_editable): rename set_read_only to this, and is_read_only -> editable. * contact-editor/e-contact-editor.h (struct _EContactEditor): is_read_only -> editable, add a "changed" flag so we can sensitize commands correctly, and add an EBook* arg to e_contact_editor_new and to the EContactEditor struct. Also, change all the signals to past tense, and send the EBookStatus in them. * contact-editor/e-contact-editor-address.c (e_contact_editor_address_class_init): is_read_only -> editable. (e_contact_editor_address_set_arg): same. (e_contact_editor_address_get_arg): same. * contact-editor/e-contact-editor-address.h (struct _EContactEditorAddress): same. * contact-editor/e-contact-editor-fullname.c (e_contact_editor_fullname_class_init): same. (e_contact_editor_fullname_set_arg): same. (e_contact_editor_fullname_get_arg): same. * contact-editor/e-contact-editor-fullname.h (struct _EContactEditorFullname): same. * contact-editor/Makefile.am: don't build contact-editor-test now, until contact-editor gets moved to gui/ and we can more easily depend on the e_card_merging_* calls. * backend/pas/pas-backend-ldap.c (ldap_error_to_response): return CardIdAlreadyExists for LDAP_ALREADY_EXISTS. * backend/idl/addressbook.idl: Add CardIdAlreadyExists to the BookListener status enum. * backend/ebook/e-book-types.h: add E_BOOK_STATUS_CARD_ID_ALREADY_EXISTS. * backend/ebook/e-book-listener.c (e_book_listener_convert_status): add support for CardIdAlreadyExists. 2001-06-19 Jon Trowbridge * contact-editor/e-contact-quick-add.c: Serious de-crufting, removal of gtk_object_set_data() hacks, simplified by using some of the newer ebook convenience routines, etc. (ce_book_found_fields): s/e_contact_editor_raise/e_contact_editor_show/, to accomodate the small changes in the contact editor API. 2001-06-18 Eskil Heyn Olsen * conduit/address-conduit.c: (check_for_slow_setting), (conduit_get_gpilot_conduit): Tweaked for some gnome-pilot api changes 2001-06-15 Chris Toshok * backend/pas/pas-backend-ldap.c (search_for_dn): implement this properly, using base and (objectclass=*). 2001-06-14 Chris Toshok * contact-editor/e-contact-editor.c (delete_cb): save ourselves a function call - call close_dialog instead of file_close_cb. 2001-06-14 Jeffrey Stedfast * gui/component/addressbook-component.c: Set the "expoted_dnd_types" to NULL in the folder_types. 2001-06-11 Dan Winship * gui/component/select-names/e-select-names-completion.c (search_override_check): Add a workaround for an EText bug. (e_select_names_completion_begin): Fix up the match scoring in the search_override case so the lines are offered in the correct order. 2001-06-11 Christopher James Lahey * gui/merging/Makefile.am (glade_DATA): Added e-card-merging-book-commit-duplicate-detected.glade here. * gui/merging/e-card-merging-book-commit-duplicate-detected.glade: Added this file. The GUI for asking whether to commit a modified card. * gui/merging/e-card-merging.c, gui/merging/e-card-merging.h (e_card_merging_book_commit_card): Added this function. * gui/widgets/e-addressbook-table-adapter.c (addressbook_set_value_at), gui/widgets/e-addressbook-util.c (commit_card_cb), gui/widgets/e-minicard.c (e_minicard_event): Use e_card_merging_book_commit_card instead of e_book_commit_card here. 2001-06-11 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: Made e_card_simple_get_id return const char *. * backend/ebook/e-card.c, backend/ebook/e-card.h: Made e_card_get_id return const char *. * gui/component/e-cardlist-model.c (e_cardlist_model_add): Made id variable const here. Added a break to make it slightly more efficient. * gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Made e_minicard_get_card_id return const char *. 2001-06-11 Christopher James Lahey * backend/pas/pas-backend-file.c (entry_compare): Made this handle the "id" property in searches. (pas_backend_file_process_modify_card): Made id variable const here. * backend/pas/pas-backend-ldap.c (modify_card_handler): Made id variable const here. 2001-06-11 Christopher James Lahey * backend/ebook/e-book-listener.c, backend/ebook/e-book-listener.h, backend/ebook/e-book.c: Rolled back the change 2 ago, dated 06/11/2001 01:51 in CVS, involving e-book-listener.[ch] and e-book.c. 2001-06-11 Christopher James Lahey * backend/ebook/e-book.c (e_book_load_uri, e_book_get_supported_fields, e_book_authenticate_user, e_book_remove_card_by_id, e_book_add_vcard, e_book_commit_vcard, e_book_get_cursor, e_book_get_book_view, e_book_get_changes): Made it so that all of these functions queue their ops before calling their CORBA functions. This way, if the response is sent back before the CORBA function returns there's no problem. Added e_book_unqueue_op so that the op could be unqueued if the CORBA call fails. 2001-06-11 Christopher James Lahey * backend/ebook/e-book-listener.c, backend/ebook/e-book-listener.h (e_book_listener_unpop_response): Added this function to put a response back into the queue. * backend/ebook/e-book.c (e_book_check_listener_queue, e_book_queue_op): Handle the case where the op hasn't been queued yet when we get the response. In this case we unpop the response. Also, when queueing an op, we check to see if there are any responses waiting. * This change has been reverted. 2001-06-11 Christopher James Lahey * backend/ebook/e-card-compare.c, backend/ebook/e-card-compare.h (e_card_locate_match_full): Added this function to let you do slightly more complicated searches. * gui/merging/e-card-merging.c (e_card_merging_book_add_card): Use e_card_locate_match_full to check if the card exists in the book it's being added to instead of in the default book. 2001-06-09 Christopher James Lahey * gui/component/select-names/e-select-names-completion.c (match_name): Removed unused email variable. 2001-06-09 Christopher James Lahey * backend/ebook/e-card-compare.c (use_common_book_cb): Null terminate the strv here. (e_card_locate_match): ref here instead of unref. * backend/ebook/e-card-simple.c (e_card_simple_get): Handle a NULL card here. * contact-editor/Makefile.am (INCLUDES), gui/widgets/Makefile.am (INCLUDES): Added addressbook/gui/merging here. * contact-editor/e-contact-quick-add.c (book_ready_cb), gui/component/addressbook-component.c (dnd_drop_book_open_cb), gui/widgets/e-addressbook-table-adapter.c (addressbook_append_row), gui/widgets/e-addressbook-util.c (add_card_cb), gui/widgets/e-addressbook-view.c (selection_received), gui/widgets/e-minicard-control.c (book_open_cb): Use e_card_merging_book_add_card instead of e_book_add_card here. * gui/Makefile.am (SUBDIRS): Added merging. * gui/component/Makefile.am (evolution_addressbook_LDADD), gui/widgets/Makefile.am (minicard_test_LDADD, minicard_widget_test_LDADD): Added libecardmerging.a here. * gui/merging/, gui/merging/.cvsignore, gui/merging/Makefile.am: New addressbook library. * gui/merging/e-card-duplicate-detected.glade: Glade file for duplicate detected dialog. * gui/merging/e-card-merging.c, gui/merging/e-card-merging.h: New files for detecting duplicates before adding and putting up a dialog if duplicates are found. * gui/widgets/e-minicard-view.c: Include e-addressbook-util.h here. 2001-06-08 Chris Toshok * contact-editor/e-contact-editor.c (e_contact_editor_new): remove the gtk_widget_show call... (e_contact_editor_show): and put it here. * contact-editor/e-contact-editor.h: add prototype for e_contact_editor_show. * gui/widgets/e-minicard.c (e_minicard_event): call e_addressbook_show_contact_editor. (card_modified_cb): call e_addressbook_error_dialog if status != SUCCESS. * gui/widgets/e-minicard-view.c (e_minicard_view_event): call e_addressbook_show_contact_editor. also, use card_modified_cb as the commit_card callback. * gui/widgets/e-addressbook-view.c (table_double_click): clean this area up alot, call e_addressbook_show_contact_editor. (card_deleted_cb): call e_addressbook_error_dialog. * gui/widgets/e-addressbook-table-adapter.c (card_modified_cb): new function, call e_addressbook_error_dialog if the status != SUCCESS. (addressbook_set_value_at): use card_modified_cb as the callback for e_book_commit_card. * gui/widgets/Makefile.am (libeminicard_a_SOURCES): add e-addressbook-util.[ch]. * gui/component/addressbook.c (new_contact_cb): use e_addressbook_show_contact_editor here. 2001-06-05 Christopher James Lahey * contact-editor/e-contact-editor.c (categories_clicked): Remove references to ECategoryMasterListWombat. 2001-06-05 Jason Leach * gui/component/select-names/e-select-names.c (remove_cb): Make this work when multiple names are selected then right click->Remove. 2001-06-05 Christopher James Lahey * backend/ebook/e-card.c (e_card_set_arg): Copy dates as they come in. * backend/pas/pas-backend-file.c (pas_backend_file_changes_foreach_key, pas_backend_file_changes, pas_backend_file_process_remove_card, pas_backend_file_process_modify_card, pas_backend_file_build_all_cards_list, pas_backend_file_get_vcard, pas_backend_file_maybe_upgrade_db): memset DBTs to 0 before using them. (pas_backend_file_build_all_cards_list): Reindented. * contact-editor/contact-editor.glade: Replaced GnomeDateEdits with a custom widget that creates an EDateEdit. * contact-editor/e-contact-editor.c: Use an EDateEdit here instead of a GnomeDateEdit. 2001-06-05 Jason Leach (Fix bug #655: SelectNames doesn't let you remove addresses after you add them) * gui/component/select-names/e-select-names.c (section_right_click_cb): New function, provides a popup menu with just "Remove" in it. (remove_cb): New callback to do the remove. (e_select_names_add_section): Attach the "right_click" signal to the section_right_click_cb above. 2001-06-05 Jon Trowbridge * gui/component/select-names/e-select-names-manager.c (completion_handler): Change the completion handler to use the ECompletionMatch. * gui/component/select-names/e-select-names-completion.c General changes to convert for ECompletionMatch use. (emailify_match): Use extra sort keys in ECompletionMatch to let us ensure that the primary email address is always the first option, the secondary comes second, etc. There was no nice way to do this previously. (match_name): Removed code that adjusted score based on similarities between the "real name" and the e-mail address. It seemed like a good idea at the time, but produced unexpected and confusing results. 2001-06-04 Jon Trowbridge * backend/ebook/e-card-compare.c: Added. Code for testing if two ECards appear to pertain to the same contact (using loose matching rules, as opposed to requiring exact equality) and to query the addressbook for the "best match" to ECard. 2001-06-03 Chris Toshok * gui/component/addressbook.c (set_status_message): remove spew, and don't call the ShellView CORBA method if the interface doesn't exist (for whatever reason.) * gui/widgets/e-addressbook-view.c (e_addressbook_view_destroy): unref the EAddressbookModel. (create_minicard_view): unref the adapter. (card_added_cb): call e_book_error_dialog if status != SUCCESS. (card_modified_cb): same. (card_removed_cb): new function, and same. (delete_card_cb): pass card_removed_cb as the callback. (emit_status_message): new function, just emit status_message. (status_message): change to call emit_status_message. (card_deleted_cb): emit_status_message ("Done."), and call e_book_error_dialog if status != SUCCESS. (do_remove): pass view in the closure arg. (e_addressbook_view_delete_selection): emit status "Removing cards..." before starting the removal. (e_book_error_dialog): new function - pop up a (possibly) helpful message about why an operation failed. * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_new): ref the EAddressbookReflowAdapter. (e_minicard_view_widget_destroy): unref the adapter. (e_minicard_view_widget_get_selection_model): if there isn't a minicard view return NULL. * gui/widgets/e-addressbook-table-adapter.c (e_addressbook_table_adapter_construct): ref the EAddressbookModel. * gui/widgets/e-addressbook-reflow-adapter.c (addressbook_finalize): rename this from addressbook_destroy, to reflect the method change. (e_addressbook_reflow_adapter_class_init): same. (e_addressbook_reflow_adapter_construct): ref the EAddressbookModel. * gui/widgets/e-addressbook-model.h: add editable_set flag. * gui/widgets/e-addressbook-model.c (writable_status): only record the writable state of the addressbook if the user hasn't set it. (e_addressbook_model_init): init editable_set to FALSE. (e_addressbook_model_set_arg): set editable_set to TRUE. 2001-06-03 Ettore Perazzoli * backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): Move `$(DB3_LDADD)' before libeutil. 2001-06-01 Ettore Perazzoli * backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): Add $(DB3_LDADD)'. 2001-05-31 Christopher James Lahey * backend/pas/Makefile.am (INCLUDES): Added db3 cflags. * backend/pas/pas-backend-file.c: Updated this to use db3. 2001-05-31 Federico Mena Quintero * gui/widgets/e-addressbook-view.h (EAddressbookView): Added fields for the GalViewMenus and GalViewCollection; we need to keep them around while the component is active. * gui/widgets/e-addressbook-view.c (e_addressbook_view_setup_menus): Plug leak; unref the spec. Unref the factories. Do not unref the collection, since we need it for the signal emission (okay, so the views object adds a reference to it, but if we are interested in it we should keep a reference anyways). (e_addressbook_view_setup_menus): Create the collection and views on the EAddressbookView's fields so that we can keep them around. (e_addressbook_view_discard_menus): New function; gets rid of the collection and views objects. * gui/component/addressbook.c (control_activate_cb): Call e_addressbook_view_discard_menus(). 2001-05-31 Chris Toshok * gui/component/select-names/e-select-names.h (struct _ESelectNames): add the EAddressbookModel* and change the ETableModel's name to "adapter". * gui/component/select-names/e-select-names.c (set_book), (addressbook_model_set_uri): these two things take an EAddressbookModel* instead of an ETableModel now. (e_addressbook_create_ebook_table): don't case the EAddressbookModel* to ETableModel*, create an EAddressbookTableAdapter on the EAddressbookModel instead. (e_select_names_init): set e_select_names->adapter. 2001-05-31 Chris Toshok * gui/widgets/e-addressbook-model.c (remove_card): decrement data_count before emitting the card_removed signal, and break after we've removed the matching card. (e_addressbook_model_class_init): change signature of "card_removed" signal to match what we emit (and what is expected.) * gui/widgets/e-addressbook-view.c (e_addressbook_view_init): the signal name is "destroy", not "destroyed". (do_remove): new function, actually remove the card. (e_addressbook_view_delete_selection): get this working for both view types. 2001-05-31 Chris Toshok * gui/component/addressbook.c: Print Preview => ContactsPrintPreview. Changed peter's change so that the node name is more in line with "Print.."'s 2001-05-30 Peter Williams * gui/component/addressbook.c: Use the correct path to the print preview menu item. 2001-05-30 Chris Toshok * gui/component/addressbook.c (cut_contacts_cb): new function, for the Cut verb. (copy_contacts_cb): new function, for the Copy verb. (paste_contacts_cb): new function, for the Paste verb. (select_all_contacts_cb): new function, for the Select All verb. (update_command_state): add handling for sensitivity of Cut/Copy/Paste/Select All. * gui/widgets/e-addressbook-view.c (e_addressbook_view_init): init the invisible and set up selection/destroy signals. (get_selection_model): new function, so we can get the ETableSelectionModel from either view type. makes lots of the other functions easier, since we can get the list of selected cards using the same code regardless of view type. (invisible_destroyed): new function. (selection_get): new function. convert the clipboard list to string. (selection_clear_event): new function - free up the list of ECards. (selection_received): if the selection data is valid and well-formed, add the corresponding cards to the ebook. (add_to_list): new function. (get_selected_cards): new function. (e_addressbook_view_cut): new function, implement in terms of _copy and _delete_selection. (e_addressbook_view_copy): claim ownership of the CLIPBOARD selection after saving the list of selected ECards. (e_addressbook_view_paste): call gtk_selection_convert. (e_addressbook_view_select_all): new function, using e_selection_model_select_all. (e_addressbook_view_can_print): re-implement in terms of get_selection_model. (e_addressbook_view_can_delete): same. (e_addressbook_view_can_cut): new function. (e_addressbook_view_can_copy): new function. (e_addressbook_view_can_paste): new function. hmm, always return TRUE here. (e_addressbook_view_can_select_all): new function. * gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add selection stuff - the list of selected cards, and the GtkInvisible selection owner, and add prototypes for e_addressbook_view_[can]_{cut,copy,paste,select_all}. * gui/widgets/e-minicard-view-widget.h: add a prototype for e_minicard_view_widget_get_selection_model. * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_get_selection_model): new function. 2001-05-27 Dan Winship * gui/component/addressbook.c: #include "evolution-shell-component-utils.h" rather than "e-gui-utils.h" for e_pixmaps_update. 2001-05-25 Peter Williams * gui/component/Makefile.am: Reference libeshell.la instead of libeshell.a. 2001-05-25 Christopher James Lahey * gui/widgets/e-addressbook-reflow-adapter.c (addressbook_height): Correct the height calculation here to not include the E_CARD_SIMPLE_FIELD_FAMILY_NAME since it won't be displayed. * gui/widgets/e-minicard.c (remodel): Changed this to continue to be more consistent and simpler. 2001-05-23 Chris Toshok * backend/pas/pas-backend-ldap.c (view_destroy): fix strings such that ones that happening at the beginning or during an operation are followed by "..." and those that stop the operation are followed by "." (create_card_handler): same. (ldap_op_process_current): same, and also call _notify_complete if we can't connect to ldap server. (poll_ldap): same, and change "Polling for LDAP search result" to "Receiving LDAP search results" * backend/pas/pas-backend-file.c (pas_backend_file_search): call notify_status_message at the beginning of this function, and whenever we call _notify_complete. 2001-05-23 Chris Toshok * gui/widgets/e-addressbook-model.h: add sequence_complete_id to EAddressbookModel and stop_state_changed to EAddressbookModelClass. also, add prototype for e_addressbook_model_can_stop. * gui/widgets/e-addressbook-model.c (remove_book_view): disconnect from "sequence_complete", and set search_in_progress to FALSE. (sequence_complete): set search_in_progress to FALSE and emit "stop_state_changed." (e_addressbook_model_class_init): create the "stop_state_changed" signal. (e_addressbook_model_init): init stuff. (book_view_loaded): connect to "sequence_complete" signal. (book_view_loaded): set search_in_progress to TRUE and emit "stop_state_changed" (e_addressbook_model_stop): set search_in_progress to false, emit "stop_state_changed", and set our status to "Search Interrupted." (e_addressbook_model_can_stop): return search_in_progress. * gui/widgets/e-addressbook-view.c (e_addressbook_view_init): connect to the stop_state_changed signal on EAddressbookModel. (stop_state_changed): new function. (e_addressbook_view_can_stop): call e_addressbook_model_can_stop. * gui/component/addressbook.c (update_command_state): use e_addressbook_view_can_stop to set the sensitivity of the stop button. 2001-05-22 Dan Winship * backend/ebook/e-book-listener.c (e_book_listener_check_queue): ref the listener for the duration of this function, since emitting "responses_queued" may cause it to be unreffed by its EBook in some cases, which could cause the second response_queue check to look at garbage data if it got destroyed. (e_book_listener_destroy): Call g_source_remove if idle_id is set. 2001-05-22 Chris Toshok * gui/component/addressbook.c: track the change in evolution-addressbook.xml's bonobo ui path's. 2001-05-21 Chris Toshok * gui/component/addressbook.c (change_view_type): update_view_type is gone, since the menu item is gone. * gui/widgets/e-addressbook-table-adapter.c (create_card): use e_table_model_rows_inserted here. 2001-05-20 Christopher James Lahey * gui/component/addressbook-config.c (addressbook_source_item_new): Removed an unused variable. * gui/component/select-names/e-select-names-bonobo.c (entry_get_property_fn): Made text here non-const. * gui/component/select-names/e-select-names-popup.c (edit_contact_info_cb): Cast to a gpointer here. * gui/component/select-names/e-select-names.c (e_addressbook_create_ebook_table): Cast to E_TABLE_MODEL here. 2001-05-18 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (match_name): Do a better job constructing match strings, so we never try to use a segment of the name that isn't there (resulting in ugly (null)'s in the string). Boost our score if some part of the name also matches the front part of the e-mail address, so the name match will always trump the e-mail match. * 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-17 Chris Toshok * gui/component/addressbook.c (update_command_state): no more ContactFind command. 2001-05-17 Chris Toshok * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_class_init): add our selection_change signal. (e_minicard_view_widget_realize): connect to the ESelectionModel's selection_changed signal. (e_minicard_view_widget_selected_count): new function. (selection_change): new function - emit our "selection_change" signal. * gui/widgets/e-minicard-view-widget.h (struct _EMinicardViewWidgetClass): add selection_change signal. also, add prototype for e_minicard_view_widget_selected_count. * gui/widgets/e-addressbook-view.c (e_addressbook_view_class_init): add our command_state_change signal. (e_addressbook_view_init): connect to the writable_status signal on the EAddressbookModel. (minicard_selection_change): new function - calls command_state_change. (create_minicard_view): connect to selection_change on the minicard_view so we know when to update command state. (table_selection_change): new function - calls command_state_change. (writable_status): new function - calls command_state_change. (command_state_change): new function - emits our "command_state_change" signal. (create_table_view): connect to the selection_change signal so we know to update the command state. (change_view_type): update the command state every time we change view types. (e_addressbook_view_can_create): new function. (e_addressbook_view_can_print): new function. (e_addressbook_view_can_delete): new function. (e_addressbook_view_can_stop): new function. * gui/widgets/e-addressbook-view.h (struct _EAddressbookViewClass): add command_state_change signal, and prototypes of functions the component can use to test the state of commands. * gui/widgets/e-addressbook-model.c (addressbook_destroy): unlink the writable_status signal on the EBook. (writable_status): new function. (e_addressbook_model_class_init): add our writable_status signal. (e_addressbook_model_init): init writable_status_id. (e_addressbook_model_set_arg): unlink the writable_status signal on the old EBook, and connect it on the new one. * gui/widgets/e-addressbook-model.h: add writable_status signal. * gui/component/addressbook.c (update_command_state): new function, set the sensitivity of the bonobo commands. (control_activate): update our command state immediately upon activating the control. (addressbook_factory_new_control): register command_state_change to update the commands. 2001-05-15 Chris Toshok * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_init): initialize the model and adapter. (button_press): set on the model. (e_addressbook_search_dialog_new): same. (e_addressbook_search_dialog_set_arg): same. (e_addressbook_search_dialog_destroy): unref the model and adapter. * gui/search/e-addressbook-search-dialog.h (struct _EAddressbookSearchDialog): add our model and reflow adapter. 2001-05-16 Christopher James Lahey * gui/widgets/e-minicard-view.c: (e_minicard_view_destroy): Fixed up the lifetime of the drag_data_get signal a bit. 2001-05-15 Chris Toshok * gui/widgets/e-minicard-view.c (add_to_list): MinicardViewModel -> ReflowAdapter name change. (get_card_list): same. (e_minicard_view_drag_begin): same. (supported_fields_cb): model -> adapter. (adapter_changed): hook up signals and set the empty message on our adapter. (e_minicard_view_set_arg): add support for "adapter", and set model -> adapter. (e_minicard_view_get_arg): same. (disconnect_signals): no more status_message. (do_remove): track to use adapter. (e_minicard_view_class_init): add adapter arg, and remove status_message. (e_minicard_view_init): all the code here is in adapter_changed now. * gui/widgets/e-minicard-view.h (struct _EMinicardView): EMinicardViewModel -> EAddressbookReflowAdapter. (struct _EMinicardViewClass): get rid of status_message. * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_class_init): remove the status_message signal. (e_minicard_view_widget_new): take the adapter as our argument, and store it away for when we create the view. (e_minicard_view_widget_realize): when we create the view just set the adapter field on it. also, don't connect to status_message. * gui/widgets/e-minicard-view-widget.h (struct _EMinicardViewWidget): add our adapter here, so we can pass it into the view when we create it. (struct _EMinicardViewWidgetClass): remove status_message. * gui/widgets/e-addressbook-view.c (status_message): new function, no more propagating status messages! (e_addressbook_view_init): create our model and conenct to its status_message signal. (book_writable_cb): set "editable" on the model, not our object. (e_addressbook_view_set_arg): same, but with "book" and "query" as well. (create_minicard_view): create our reflow adapter and pass it to the minicard view widget. also, call e_reflow_model_changed so it'll pick up any already present cards. (table_double_click): ADDRESSBOOK_MODEL -> TABLE_ADAPTER. (get_card_list_1): remove the cast, since we don't need it any longer. (table_right_click): ADDRESSBOOK_MODEL -> TABLE_ADAPTER. (table_drag_data_get): same. (create_table_view): create the table adapter, and use it as our ETableModel. (change_view_type): remove the status_message hook up and setting of query/book/editable. (e_addressbook_view_stop): just call e_addressbook_model_stop here instead of switching on the view type. * gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add our EAddressbookModel. * gui/widgets/Makefile.am (libeminicard_a_SOURCES): add the adapter files, and remove e-minicard-view-model.[ch]. * gui/widgets/e-minicard-view-model.[ch]: removed. * gui/widgets/e-addressbook-table-adapter.c: new file. * gui/widgets/e-addressbook-table-adapter.h: new file. * gui/widgets/e-addressbook-reflow-adapter.c: new file. * gui/widgets/e-addressbook-reflow-adapter.h: new file. * gui/widgets/e-addressbook-model.c: rework this class to now subclass from ETableModel anymore. It not subclasses from GtkObject, and we use table and reflow adapters to get at the data. * gui/widgets/e-addressbook-model.h: same. 2001-05-14 Christopher James Lahey * gui/widgets/e-minicard-view-model.c (remove_card): Fix a small error not decreasing the data_count here. 2001-05-13 Chris Toshok * gui/component/addressbook.h: add prototype for addressbook_expand_uri. * gui/component/addressbook-component.c (destination_folder_handle_drop): create an EBook for @physical_uri. (dnd_drop_book_open_cb): actually add the dropped cards. * gui/component/addressbook.c (addressbook_expand_uri): abstract this code out from the set_prop method so we can use it in the component. (set_prop): call addressbook_expand_uri. * backend/ebook/e-card.c (e_card_load_cards_from_string): new function. * backend/ebook/e-card.h: add prototype for e_card_load_cards_from_string. 2001-05-12 Chris Toshok * gui/component/addressbook-component.c (destination_folder_handle_drop): spew the data passed to us. (destination_folder_handle_motion): the suggested_action is not an ActionSet, but an Action, so don't or together multiple actions. 2001-05-11 Chris Toshok * gui/component/addressbook-config.c (addressbook_source_dialog): correct bug causing the Ok button to never be enabled. 2001-05-11 Chris Toshok * gui/component/addressbook-component.c (populate_context_menu): example. 2001-05-11 Chris Toshok * gui/widgets/e-minicard-view.c (e_minicard_view_drag_data_get): use e_card_list_get_vcard to build up the data to send. (e_minicard_view_init): connect to the model's drag_begin signal. (e_minicard_view_drag_begin): gather the list of cards being dragged and call gtk_drag_begin. (add_to_list): new function. (get_card_list): same. (disconnect_signals): disconnect the drag_data_get signal. (e_minicard_view_init): connect to the drag_begin signal on our model. * gui/widgets/e-minicard-view.h (struct _EMinicardView): change drag_card to drag_list. * gui/widgets/e-minicard-view-model.c (minicard_drag_begin): new function, emit our drag_begin signal. (addressbook_incarnate): connect to the item's drag_begin signal. (e_minicard_view_model_class_init): init our drag_begin signal. * gui/widgets/e-minicard-view-model.h: add drag_begin signal. * gui/component/addressbook-config.c (addressbook_source_dialog): always loop through all source types here, making LDAP first so it's forces as the first notebook item. (addressbook_config_auth_label): remove SASL case. (addressbook_source_edit_changed): same. (addressbook_source_item_new): flag the area of code that needs to go into the advanced dialog (if we add one before someone graciously redesigns the entire addressbook gui :) * gui/component/addressbook-storage.c (ldap_unparse_auth): remove SASL case. (ldap_parse_auth): same. * gui/component/addressbook-storage.h: make LDAP come first in our source type enumeration, and remove the SASL auth type. 2001-05-11 Christopher James Lahey * backend/ebook/e-card.c (e_card_set_arg): If the name is set and the full_name or file_as haven't been yet, set them. 2001-05-11 Christopher James Lahey * backend/pas/pas-backend-file.c: Reordered the includes here. (string_to_dbt): The sleepycat libdb documentation suggests memseting the DBT to 0 so we do that here. * gui/widgets/e-minicard-view-model.c (addressbook_height): Skip the E_CARD_SIMPLE_FIELD_FAMILY_NAME field. * gui/widgets/e-minicard.c (remodel): Skip the E_CARD_SIMPLE_FIELD_FAMILY_NAME field. 2001-05-11 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): only check schema support if we've connected. 2001-05-11 Chris Toshok * contact-editor/e-contact-editor.c (enable_writable_fields): don't leak the ECard or ECardSimple. 2001-05-08 Iain Holmes * backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in: Renamed the GnomeCard_Importer.oaf.in to this, and change the IID. * Makefile.am: Rename all the GnomeCard to VCard. * evolution-vcard-importer.c: Make the GnomeCard a generic vcard importer. 2001-05-08 Christopher James Lahey * backend/ebook/Makefile.am (libebookinclude_HEADERS): Removed e-card-pairs.h since we're not using it. * backend/ebook/e-book-view.c (e_book_view_check_listener_queue): Added break; to default: case here. * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: Added changed variable so as to avoid sync_card when possible. (e_card_simple_destroy): Free all the data here properly. (e_card_simple_get_arg): Slight simplification here. (fill_in_info, e_card_simple_arbitrary_foreach, e_card_simple_get_arbitrary): Call e_card_free_empty_lists here to save a bit of memory. * backend/ebook/e-card.c, backend/ebook/e-card.h: Fixed up includes a bit. (e_card_list_get_vcard, e_card_list_send): Added these functions for acting on a group of cards. (parse_org): Cleaned up this function a bit. (e_card_free_empty_lists): Added this function to delete unnecessary ELists and save a bit of memory. (e_v_object_get_child_value): Made this return NULL if not found instead of g_strdup(""). * contact-editor/e-contact-save-as.c, contact-editor/e-contact-save-as.h (e_contact_list_save_as): Added this function to save multiple contacts. * gui/widgets/Makefile.am: Commented out reflow test. (libeminicard_a_SOURCES): Added e-minicard-view-model.c and e-minicard-view-model.h. * gui/widgets/e-minicard-view-model.c, gui/widgets/e-minicard-view-model.h: Model for use in EMinicardView. * gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h: Reworked this to use the new EReflow stuff. * gui/widgets/e-minicard.c (e_minicard_event): Doesn't handle right click menus now. Emits a signal on the parent canvas item instead. * printing/e-contact-print-envelope.c, printing/e-contact-print-envelope.h (e_contact_print_envelope_list_dialog_new): Added this function to print multiple envelopes (only prints first for now.) * printing/e-contact-print.c, printing/e-contact-print.h (e_contact_print_card_list_dialog_new): Added this function to print multiple cards. Only prints the first for now. 2001-05-07 Chris Toshok * gui/component/addressbook-component.c (remove_folder): flesh out the function more. It should work now, but there's no way to invoke this method from the ui at the moment, heh. 2001-05-07 Chris Toshok * gui/component/addressbook.c (book_open_cb): Use a different error message in the ldap support/no ldap support/file cases. 2001-05-07 Gediminas Paulauskas * gui/component/addressbook.c: use define from widgets/misc/e-filter-bar.h instead of own enumeration and search menu names. * gui/component/Makefile.am, gui/component/select-names/Makefile.am: removed EVOLUTION_VERSION. 2001-05-04 Chris Toshok * gui/component/addressbook-component.c (remove_folder): un-#if 0 this. (xfer_folder): add skeleton code to validate xfer request. always notifies with PERMISSION_DENIED at present. (populate_context_menu): un-#if 0 this. (get_dnd_selection): same. (destination_folder_handle_motion): new function. (destination_folder_handle_drop): new function. (factory_fn): create a EvolutionShellComponentDndDestinationFolder interface, and add it to our shell component. 2001-05-04 JP Rosevear * backend/pas/pas-backend-file.c (pas_backend_file_process_get_book_view): init change_id to NULL 2001-05-02 JP Rosevear * gui/component/addressbook.c (addressbook_view_free): unref the book if the view is being destroyed * backend/pas/pas-backend-file.c (pas_backend_file_process_get_book_view): unref the book_view when we are finished, it is only interesting if someone else has reffed it now (weak reference) (pas_backend_file_add_client): unref the book for the same reason as above * Fixes bug #2255 2001-04-30 JP Rosevear * backend/pas/pas-backend-file.c (vcard_matches_search): if the view does not contain a search context, the result is by default false fixes #2470 2001-04-25 Dan Winship * gui/component/addressbook-factory.c (main): Remove call to unicode_init. 2001-04-23 Jon Trowbridge * gui/component/e-address-popup.c: Lots of code has been simplified here. (e_address_popup_factory_new_control): Rather than directly pop our control up in a window (via the e_address_popup_popup function, which is now gone), just return the widget and let the caller do the popping. This works better, since it means we don't have to work around the vagaries of bonobo focus & event handling. (e_address_popup_set_name): Refresh when both name & email have been set, rather than checking a stupid counter. (e_address_popup_set_email): Ditto. 2001-04-22 Christopher James Lahey * gui/component/addressbook-storage.c (addressbook_storage_clear_sources): Added save_source_data here. 2001-04-21 Jon Trowbridge * contact-editor/e-contact-quick-add.c (clicked_cb): Properly convert to utf8. (Bug #2256) (build_quick_add_dialog): Properly convert from utf8. (Bug #2256) 2001-04-16 Jon Trowbridge * 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. 2001-04-14 Christopher James Lahey * backend/ebook/e-book-view-listener.c, backend/ebook/e-book-view-listener.h: Added the function e_book_view_listener_stop to tell the book view listener to stop sending signals. * backend/ebook/e-book-view.c (e_book_view_destroy): Tell the EBookViewListener to stop when we're destroyed. * backend/pas/pas-backend-file.c (view_destroy, pas_backend_file_process_get_book_view, pas_backend_file_process_get_changes): Cleaned these up a bit using bonobo_object_ref and bonobo_object_unref. (pas_backend_file_process_get_book_view, pas_backend_file_process_get_changes): bonobo_object_release_unref the EBookListener here. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_get_book_view): Cleaned this up a bit using bonobo_object_ref. Make sure to unref the listener when we're done with it. Put the new book_view in the list before telling the book_listener that it's ready. * backend/pas/pas-book-view.c (pas_book_view_construct): Cleaned this up a bit using bonobo_object_dup_ref. (pas_book_view_destroy): Cleaned this up a bit using bonobo_object_release_unref. * backend/pas/pas-book.c (pas_book_queue_get_book_view, pas_book_queue_get_changes): bonobo_object_dup_ref here instead of just duplicating. 2001-04-14 Christopher James Lahey * backend/ebook/e-book-listener.c (impl_BookListener_respond_get_cursor): Ref the cursor here when we receive it. (impl_BookListener_respond_get_view, impl_BookListener_respond_get_changes): Ref the book_view here when we receive it. (impl_BookListener_respond_open_book): Ref the book here when we receive it. (e_book_listener_destroy): Unref the objects in our queue here. * backend/ebook/e-book-view.c (e_book_view_construct): Cleaned this up using bonobo_object_dup_ref. (e_book_view_destroy): Cleaned this up using bonobo_object_release_unref. * backend/ebook/e-book.c (e_book_do_response_get_cursor, e_book_do_response_get_view, e_book_do_response_get_changes, e_book_unload_uri): Cleaned this up using bonobo_object_release_unref. 2001-04-13 Christopher James Lahey * gui/component/select-names/e-select-names-bonobo.c (entry_get_property_fn): Get the ESelectNamesModel from the widget's text model instead of storing it as a gtk_object_set_data since it may change. 2001-04-12 Jason Leach * backend/pas/pas-backend-file.c (INITIAL_VCARD): Update the Voice and Fax phone numbers too, finishing off bug #1667. 2001-04-11 Christopher James Lahey * backend/pas/pas-backend-file.c (INITIAL_VCARD): Update the built in VCard. 2001-04-12 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): put the business address into the pilot record as that is what we put into the desktop record (ecard_from_remote_record): set both the address label and delivery address to avoid bad parser guessing, fixes #2143 * backend/ebook/e-card-types.h: remove deprecated pilot code * backend/ebook/e-card.c: ditto * backend/ebook/e-card.h: ditto 2001-04-11 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): Don't add more than five phone numbers and set the remaining blank entries to some reasonable defaults 2001-04-11 Christopher James Lahey * backend/ebook/e-card-simple.h: Added E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING. * gui/component/addressbook-component.c (accepted_dnd_types): Fixed a warning here. * gui/widgets/e-addressbook-model.c: Modified this to have more columns, but not let them be edited if they're not a simple string. * gui/widgets/e-minicard-view.c (e_minicard_view_init): Fixed a warning and a memory leak here. 2001-04-10 Gediminas Paulauskas * backend/ebook/evolution-gnomecard-importer.c: added missing #include. * contact-editor/e-contact-editor.c (_arrow_pressed): popup menu items were not translated after selecting one of them. * gui/widgets/e-addressbook-view.c: mark popup menu items with N_(). Updated list[] for translators. * gui/widgets/e-minicard.c: same. * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_set_arg): fix warning for "editable" arg. * gui/widgets/e-minicard-view.c: convert "empty_message" to utf8. 2001-04-09 Chris Toshok * gui/component/addressbook-component.c (remove_folder): stubbed, #if 0'ed (xfer_folder): same. (populate_context_menu): same. (get_dnd_selection): same. (factory_fn): add the accepted drag types ("text/x-vard") to folder_types. 2001-04-09 Chris Toshok * gui/widgets/e-minicard.c (e_minicard_event): on BUTTON_PRESS: if it's button 1, store the button x, y, and set drag_button_down to TRUE. on BUTTON_RELEASE: always set drag_button_down to FALSE. for MOTION_NOTIFY: initiate drag if the pointer has moved 3 pixels. * gui/widgets/e-minicard.h (struct _EMinicard): add fields for button x, y, and a bit for if the button has been pressed so we can tell whether a motion should be a drag. (struct _EMinicardClass): add drag_begin signal. * gui/widgets/e-minicard-view.c (e_minicard_view_drag_begin): new function, starts the drag. (book_view_loaded): connect the "drag_data_get" signal. (e_minicard_view_drag_data_get): new function. * gui/widgets/e-minicard-view.h (struct _EMinicardView): add drag_card and id for canvas_drag_data_get_id. * gui/widgets/e-addressbook-view.c (table_drag_data_get): new function. (create_table_view): add d&d stuff. 2001-04-08 Chris Toshok * printing/e-contact-print.c: add #include since gnome-print.h uses time_t without including it. this really should be fixed in gnome-print. 2001-04-08 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client): make sure to notify new clients to the writable status of an already open (and authenticated) book. 2001-04-04 Kjartan Maraas * contact-editor/e-contact-editor.[ch]: Fix headers. * component/addressbook-storage.c: Same here. * gui/search/e-addressbook-search-dialog.c: Same here. * gui/widgets/e-addressbook-view.c: Same here. * gui/widgets/e-minicard-label.c: Same here. * gui/widgets/e-minicard-view-widget.c: Same here. * gui/widgets/e-minicard-view.c: Same here. * gui/widgets/e-minicard-widget-test.c: Same here. * gui/widgets/e-minicard-widget.c: Same here. * gui/widgets/e-minicard.c: Same here. * gui/widgets/test-minicard-label.c: Same here. 2001-04-03 Christopher James Lahey * gui/widgets/e-addressbook-view.c (table_double_click): Fixed a crash here. 2001-04-03 Christopher James Lahey * gui/widgets/e-addressbook-model.c (COLS): Made this table model more consistent in the number of columns it has. (addressbook_append_row): Fixed this function. We removed the col offset. 2001-04-02 Iain Holmes * backend/ebook/evolution-gnomecard-importer.c (importer_init): Shut down and unregister the factory on exit. 2001-04-01 Gediminas Paulauskas * contact-editor/contact-editor.glade: changed icon to evolution-contacts-plain.png. * gui/component/addressbook.c: use new pixmap cache. Added icon for new contact, print, print preview, changed filenames of renamed icons. 2001-03-31 Jon Trowbridge * 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. 2001-03-30 Christopher James Lahey * backend/pas/pas-backend-file.c (pas_backend_file_add_client): Tell new clients that are added whether they're writable. 2001-03-29 Jon Trowbridge * printing/e-contact-print.c: Added #include * printing/e-contact-print-envelope.c: Added #include and #include 2001-04-03 Christopher James Lahey * 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 Kjartan Maraas * *.*: Clean up #includes. Replace , and with more finegrained headers where needed. 2001-03-28 Christopher James Lahey * backend/ebook/e-card.c (e_card_set_arg): Fixed some crashes. 2001-03-28 Christopher James Lahey * gui/component/select-names/e-select-names-table-model.c (fill_in_info): Use E_CARD_SIMPLE_FIELD_NAME_OR_ORG instead of getting the NAME and then the ORG. That way if we expand NAME_OR_ORG, this will use it. * gui/component/select-names/e-select-names.c (e_addressbook_create_ebook_table, SPEC): Use the correct column in the SPEC. 2001-03-25 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c (e_select_names_completion_seq_complete_cb): Rather than starting the pending query by directly calling e_select_names_completion_do_query, call e_completion_begin_search. Circumventing the ECompletion API was causing it to get confused in some cases. 2001-03-23 Jon Trowbridge * gui/widgets/e-minicard-widget.c (e_minicard_widget_set_card): Added. Call me old-fashioned, but I just prefer to have a real API rather than doing everything via gtk_object_get/set-type calls. (e_minicard_widget_set_arg): Changed to call e_minicard_widget_set_card. * backend/ebook/e-book-util.c: Small changes to get rid of compiler warnings. (Casting out const, removed unused variables, etc.) Removed some debugging messages. * gui/component/addressbook-factory.c (main): Added call to e_address_popup_factory_init. * gui/component/e-address-popup.c: Added. A popup gadget that is invoked (as a bonobo control) when an address is left-clicked in the mailer. The addressbook is queries, and the address is either displayed as a minicard (if it already exists) or in a "generic format". A button is provided for editting/adding the contact. Some of the semantics of this widget are a bit... non-standard, because of bonobo issues. I can't really seem to replicate popup-menu behavior because of how bonobo propogates events, etc. so I've tried to produce something that I think is non-annoying. YMMV. 2001-03-22 Iain Holmes * backend/ebook/evolution-gnomecard-importer.c: Update to the new IDL. 2001-03-20 Miguel de Icaza * gui/component/addressbook.c (update_pixmaps): Added artwork from Jakub. 2001-03-19 Christopher James Lahey * Merged branch: 2001-03-14 Christopher James Lahey * gui/widgets/e-minicard-view.c: Call e_selection_model_simple_insert_rows and e_selection_model_simple_delete_rows instead of e_selection_model_simple_insert_row and e_selection_model_simple_delete_row. End of branch 2001-03-17 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c: Brutally refactored to boost performance in large-addressbook situations. These fixes give accepable performance (even with the suboptimal pas-backend-file searching) using tigert's addressbook-of-death. * backend/pas/pas-backend-file.c (pas_backend_file_search): Start feeding query matches back to the caller before the entire search is complete; this gives us some "instant feedback" rather than causing evolution to totally lock up... * backend/ebook/e-book.c (e_book_queue_op): Tag all queued ops. (e_book_cancel_op): Added. Search for a pending op with a given tag, and mark it as inactive. (e_book_do_response_get_cursor): Don't execute callback if this operations has been cancelled. (e_book_do_response_get_view): Ditto. (e_book_do_response_get_changes): Ditto. (e_book_do_response_get_supported_fields): Ditto. (e_book_get_supported_fields): Return an operation tag (that can be used to cancel the operation) rather than just TRUE/FALSE. Zero is always an invalid tag and is returned in the case of an error, so this shouldn't break any code that looked at the return value (unless it did so in a particularly stupid way, of course). (e_book_get_cursor): Ditto. (e_book_get_book_view): Ditto. (e_book_get_changes): Ditto. (e_book_cancel): Added. Cancel a pending operation. (Basically a call to e_book_cancel_op with error checking, etc.) * backend/ebook/e-book-types.h: Added E_BOOK_STATUS_CANCELLED. 2001-03-17 Chris Toshok * backend/ebook/e-book-listener.c (e_book_listener_queue_writable_status): new function. (impl_BookListener_report_writable): new function. (e_book_listener_get_epv): fill in epv->notifyWritable. * backend/ebook/e-book-listener.h: add writable status entries. * backend/ebook/e-book.c (e_book_do_writable_event): new function. (e_book_check_listener_queue): add WritableStatusEvent to the switch. (e_book_class_init): register writable_status signal. * backend/ebook/e-book.h: add writable_status signal. * backend/idl/addressbook.idl: add notifyWritable method to BookListener. * gui/widgets/e-minicard.c (e_minicard_class_init): add "editable" arg. (e_minicard_init): init editable. (e_minicard_set_arg): loop over the minicard fields setting their "editable". (e_minicard_get_arg): add editable. (supported_fields_cb): use editable when creating the contact_editor. (add_field): set "editable" when creatin the e_minicard. * gui/widgets/e-minicard.h (struct _EMinicard): add "editable". * gui/widgets/e-minicard-view.c (e_minicard_view_class_init): add editable arg. (e_minicard_view_init): init editable. (create_card): pass editable to e_minicard canvas item. (e_minicard_view_set_arg): bit of a hack - loop over all the canvas items setting their "editable." (e_minicard_view_get_arg): add editable. (supported_fields_cb): use editable when creating the contact editor. * gui/widgets/e-minicard-view.h (struct _EMinicardView): add "editable." * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_class_init): add "editable" field. (e_minicard_view_widget_init): init editable to FALSE. (e_minicard_view_widget_set_arg): save editable, and pass it along the e-minicard-view. (e_minicard_view_widget_realize): same. (e_minicard_view_widget_get_arg): add editable. * gui/widgets/e-minicard-view-widget.h (struct _EMinicardViewWidget): add "editable" field. * gui/widgets/e-minicard-label.h (struct _EMinicardLabel): add "editable" field. * gui/widgets/e-minicard-label.c (e_minicard_label_class_init): add "editable" arg. (e_minicard_label_set_arg): editable, set it on the e_text too. (e_minicard_label_get_arg): editable. (e_minicard_label_construct): set the "editable" field when we create the e_text cavas item * gui/widgets/e-addressbook-view.c (e_addressbook_view_init): default editable to FALSE. (book_writable_cb): new function, set our editable field and gtk_object_set it on the active view. (e_addressbook_view_set_arg): set the active view's editable when we set the view's book, and connect the "writable_status" signal to book_writable_cb. (change_view_type): same. (supported_fields_cb): use our "editable" when creating the contact editor. * gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add editable field. * gui/widgets/e-addressbook-model.c (e_addressbook_model_init): change the default of editable to FALSE. * backend/pas/pas-book.c (pas_book_report_writable): new function. * backend/pas/pas-book.h: prototype for pas_book_report_writable. * backend/pas/pas-backend-file.c (pas_backend_file_load_uri): if we open the file O_RDWR (or create it) report it as writable. if we can't open it as O_RDWR, try opening it read-only before we attempt to create it. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_authenticate_user): if we authenticate successfully, grant write permissions (this is lacking but there's really nothing we can do to determine the extent of the access afforded a user.) 2001-03-15 Jon Trowbridge * gui/component/e-address-widget.c: Added addressbook querying and "cardification" functions, which are turned off by default for now because of addressbook bugs. Added a popup menu option to turn queries on, so that others can enjoy the thrill of massive flaming death. * gui/component/addressbook-factory.c (main): Made warnings always be fatal. * backend/pas/pas-book-view.c: Added some debugging spew. * backend/pas/pas-backend-file.c (pas_backend_file_search): Added a little experimental code to try to make file searches scale better. #if 0/#endif-ed out for now. * contact-editor/e-contact-quick-add.c: #included e-book-util.h. * backend/ebook/e-card.c (e_card_name_match_string): Added. Looser name-matching function. (e_card_email_match_string): Added. Loose e-mail matching. * backend/ebook/e-book-view-listener.c (e_book_view_listener_check_queue): Added code to cause us to abort rather than get trapped in a 100%-CPU-consuming loop in certain situations. Now we just need to figure out how to avoid these situations altogether. * backend/ebook/e-book-util.c: Added. Now contains the simple query stuff and the open local addressbook functions. * backend/ebook/e-book.c: Moved simple query stuff and open local addressbook functions into e-book-util.c. 2001-03-15 Dan Winship * gui/widgets/e-minicard-label.c (e_minicard_label_set_arg): * gui/widgets/e-minicard.c (e_minicard_set_arg, e_minicard_event): Update arguments to e_canvas_item_grab_focus. 2001-03-13 Christopher James Lahey * gui/component/addressbook.c (update_pixmaps): Fix a warning here. 2001-03-13 Christopher James Lahey * gui/widgets/Makefile.am (minicard_label_test_LDADD): Change to ld order from Greg Williams. 2001-03-13 Christopher James Lahey * backend/pas/pas-backend-file.c (pas_backend_file_process_get_book_view): Moved where we call pas_book_respond_get_book_view. 2001-03-12 Chris Toshok * backend/pas/pas-backend-ldap.c: add E_STRING_PROP for categories. * backend/pas/evolutionperson.schema: add categories attribute. * backend/ebook/e-card-simple.c (field_data): add E_CARD_SIMPLE_FIELD_CATEGORIES. * backend/ebook/e-card-simple.h: add E_CARD_SIMPLE_FIELD_CATEGORIES. 2001-03-12 Chris Toshok * gui/widgets/e-minicard.c (supported_fields_cb): add is_read_only param. * gui/widgets/e-minicard-view.c (supported_fields_cb): add is_read_only param. * gui/widgets/e-addressbook-view.c (supported_fields_cb): add is_read_only param. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_activate_obj): add is_read_only param. also, include a little policy here and make it TRUE, as the user shouldn't be editting in this context anyway (imo). * gui/component/addressbook.c (supported_fields_cb): add is_read_only param. * contact-editor/test-editor.c (main): add is_read_only param. * contact-editor/e-contact-editor.c (set_read_only): new function, that either enables or disables all the text fields, combo boxes, and some buttons, depending on the state of is_read_only. (e_contact_editor_class_init): add read/write arg "is_read_only". (full_name_clicked): set the is_read_only of the fullname dialog to the editor's. (full_addr_clicked): same. (e_contact_editor_new): add is_read_only param, that gets set along with the other params. (e_contact_editor_set_arg): add setter for is_read_only. (e_contact_editor_get_arg): add getter for is_read_only. (_phone_arrow_pressed): change TRUE to !editor->is_read_only for entry. (_email_arrow_pressed): same. (_address_arrow_pressed): same. (enable_writable_fields): same. * contact-editor/e-contact-editor-fullname.c (e_contact_editor_fullname_class_init): add read/write arg "is_read_only". (e_contact_editor_fullname_set_arg): add setter for is_read_only that enables/disables all the entries/combos. (e_contact_editor_fullname_get_arg): add getter for is_read_only. * contact-editor/e-contact-editor-fullname.h (struct _EContactEditorFullname): add is_read_only flag. * contact-editor/e-contact-editor-address.c (e_contact_editor_address_class_init): add read/write arg "is_read_only". (e_contact_editor_address_set_arg): add setter for is_read_only that disables/enables all the entries/combos. (e_contact_editor_address_get_arg): add getter for is_read_only. * contact-editor/e-contact-editor-address.h (struct _EContactEditorAddress): add is_read_only flag. 2001-03-13 Iain Holmes * backend/ebook/Makefile.am: Change the importer includes around a bit. * backend/ebook/evolution-gnomecard-importer.c: Correctly add the includes. 2001-03-09 JP Rosevear * conduit/Makefile.am: PISOCK_INCLUDEDIR has become PISOCK_CFLAGS in gnome-pilot.m4 and remove capplet foo 2001-03-11 Jon Trowbridge * backend/ebook/e-book.c (e_book_simple_query): Added. A simplified, cancellable query mechanism that lets you avoid dealing with EBookView. (e_book_simple_query_cancel): Added. Cancels a running query. * backend/ebook/e-book-types.h: Add enum EBookSimpleQueryStatus. 2001-03-08 Jon Trowbridge * gui/component/select-names/e-select-names-popup.c (quick_add_cb): Switched to use e_contact_quick_add_free_form. Removed debugging code, hopefully without introducing any bugs in the process. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_insert_length): Fix bug with commas inside of name/address combos. As long as the comma is inside of quotes, it will be treated as part of the name rather than as a break between addresses. * gui/component/select-names/e-select-names-completion.c (match_nickname): Use e_card_name_to_string for nickname match strings. (match_email): Use e_card_name_to_string for email match strings. (e_select_names_completion_begin): Strip quotes out of query text, so we don't produce malformed sexps. Added William Blake quote easter egg. * contact-editor/e-contact-quick-add.c: Further attempts to fix... mostly unsuccessful. (e_contact_quick_add_free_form): Added. Takes a single string and tries to parse out (using some simple, loose rules) the name and e-mail -- then calls e_contact_quick_add. An attempt to get the computer to automatically Do The Right Thing. * backend/ebook/e-book.c: Fixed some broken indentation. Yes, I'm anal. * gui/component/GNOME_Evolution_Addressbook.oafinfo: Added oaf_server info for EAddressWidget. * gui/component/GNOME_Evolution_Addressbook.oaf.in: Added oaf_server info for EAddressWidget. * gui/component/addressbook-factory.c (main): Add call to e_address_widget_factory_init. * gui/component/e-address-widget.h: * gui/component/e-address-widget.c: Added. A little widget (and a Bonobo control, BTW) for displaying addresses, with a left-click menu. Used to display addresses in the mail viewer (as embedded GtkHTML objects, replacing the text previously used). Still quite incomplete. 2001-03-08 Ettore Perazzoli * gui/component/addressbook-component.c (factory_fn): Specify a NULL `EvolutionShellComponentGetDndSelectionFn'. 2001-03-06 Jon Trowbridge * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_insert_length): Fix glitch with inserting comma-delimited stuff when length > 1. 2001-03-06 Jon Trowbridge * backend/ebook/e-book.c (e_book_load_local_address_book): Added. Just encapsulates opening file://~username/evolution/local/Contactes/addressbook.db, so that path doesn't need to be hardwired in throughout the code. 2001-03-06 Benjamin Kahn * contact-editor/e-contact-quick-add.c (clicked_cb): Added the third argument to e_contact_editor_new. (Cheated and send NULL for the field argument, which is probably troublesome. It will be fixed soon by either clahey or toshok.) 2001-03-06 Jon Trowbridge * 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. 2001-03-04 Christopher James Lahey * backend/ebook/e-card-simple.c: Cleaned up the formatting in this file a bit. * contact-editor/e-contact-editor.c (e_contact_editor_set_arg): Made it so that passing in NULL to the writable_fields arg sets the set of writable fields to the empty set. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_activate_obj): Pass NULL as the writable_fields argument here. * gui/widgets/e-addressbook-model.c: Don't offset by one here. This way we will get the file_as field as one of our ETableColumns. * gui/widgets/e-addressbook-view.c (SPEC): Updated this for the changes in ECardSimple. * gui/widgets/e-minicard.c (remodel): Don't remodel if the item isn't realized. 2001-03-02 Chris Toshok * backend/pas/pas-backend-ldap.c: doh, track renaming of objectclass from evolvePerson to evolutionPerson. 2001-03-02 Chris Toshok * backend/pas/evolutionperson.schema: rename evolveperson.schema to this, and add remaining attributes. * backend/pas/pas-backend-ldap.c: add remaining fields, and fix up ones that were incorrent (either the ldap_attr or the query prop). 2001-03-02 JP Rosevear * conduit/Makefile.am: update sed script * conduit/e-address.conduit.in: update for new pilot foo 2001-03-02 Chris Toshok * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_activate_obj): track change to e_contact_editor_new. 2001-03-02 Chris Toshok * backend/pas/pas-backend-ldap.c (add_objectclass_mod): add objectclasses for "person", "organizationalPerson", and "top" as well, just to be complete. (check_schema_support): rename check_for_evolve_person to this, to reflect that we're doing more than just checking for that objectClass. (add_oc_attributes_to_supported_fields): new function. (add_to_supported_fields): new function. (pas_backend_ldap_destroy): unref supported_fields. 2001-03-02 Chris Toshok * gui/widgets/e-minicard-view.c (supported_fields_cb): new function. (e_minicard_view_event): split out the creation of the contact editor to the supported_fields callback. * gui/widgets/e-minicard.c (supported_fields_cb): new function. (e_minicard_event): split out the creation of the contact editor to the supported_fields callback. * gui/widgets/e-addressbook-view.c (table_double_click): split function into two functions, since e_book_get_supported_fields requires a callback now. (supported_fields_cb): new function. * gui/component/addressbook.c (new_contact_cb): split this into two functions, since e_book_get_supported_fields requires a callback now. (supported_fields_cb): new function. * contact-editor/test-editor.c (main): track change to e_contact_editor_new (pass NULL for the writable_fields arg.) * contact-editor/contact-editor.glade: fix several labels so they make better sense (since we look them up in e-contact-editor.c.) * contact-editor/e-contact-editor.h (struct _EContactEditor): add writable_fields. also, add it to e_contact_editor_new. * contact-editor/e-contact-editor.c (e_contact_editor_class_init): add writable_fields arg. (e_contact_editor_destroy): unref the writable_fields list. (e_contact_editor_new): pass @fields as the writable_fields arg. (e_contact_editor_set_arg): add writable_fields support. (enable_writable_fields): new (very hairy) function, to disable everything and reenable just the fields listed in the writable_fields list. (_email_arrow_pressed): set label-email1, entry-email1, and checkbutton-htmlmail to be sensitive since the only way to get here is to activate a writable field in the menu. (_address_arrow_pressed): set label-address, button-fulladdr, and text-address to be sensitive for the same reason. (_phone_arrow_pressed): sensitize the label and entry for the same reason. 2001-03-02 Chris Toshok * backend/ebook/e-card-simple.c (field_data): add new entries for phone enums, and fill in the ecard_field with (bogus in all but a few cases) strings. these are the strings sent from wombat to evolution-addressbook for supported_fields. (e_card_simple_get_ecard_field): new function. (e_card_simple_map_phone_to_field): new function. (e_card_simple_map_email_to_field): new function. (e_card_simple_map_address_to_field): new function. * backend/ebook/e-card-simple.h: add a few phone entries to the ECardSimpleField enum, and add prototypes for mapping the list types (phone, email, address) to ECardSimpleField. Also, add prototype for e_card_simple_get_ecard_field. * backend/ebook/e-book.c (e_book_do_response_get_supported_fields): don't build the EList here, it's already built. * backend/ebook/e-book-listener.h: change fields from the CORBA sequence to the EList in our reponse struct. * backend/ebook/e-book-listener.c (e_book_listener_queue_get_supported_fields_response): we make the EList here, since after we return the CORBA list is freed up. 2001-03-02 Chris Toshok * backend/pas/pas-backend-file.c (pas_backend_file_process_get_supported_fields): implement properly, we support everything. 2001-03-01 Jon Trowbridge * gui/component/select-names/e-select-names-bonobo.c (entry_set_property_fn): Oops, we do need to be able to write to "text" after all (for things like Reply-to: to work properly). Fixed. (impl_SelectNames_get_entry_for_section): Made "text" a writeable property again. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_insert_length): Increment pos so that we don't reverse strings when length > 1 (a particularly amusing bug). * gui/component/select-names/e-select-names-completion.c (e_select_names_completion_destroy): Check for NULL before calling gtk_object_unref (GTK_OBJECT (---)), to get rid of annoying error messages. 2001-03-01 Jon Trowbridge * gui/component/select-names/e-select-names-completion.c: I am an idiot. 2001-03-01 Jon Trowbridge * 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 "). (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 "), or an ECard and a specific address within that ECard. 2001-03-01 Christopher James Lahey * gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h, gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Used ESelectionModelSimple and the changes to EReflow and EReflowSorted to get multiple selection in the minicard view. * gui/widgets/test-reflow.c: Changed this to get it to compile with the changes to EReflow. 2001-02-21 Christopher James Lahey * backend/pas/pas-backend-file.c (pas_backend_file_search): Made this pay attention to the return value of e_sexp_parse. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_activate_obj): Fixed a const inconsistency here. 2001-02-21 Chris Toshok * backend/pas/pas-book.c (pas_book_queue_get_supported_fields): new function. (impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): track change to idl. (pas_book_respond_get_supported_fields): new function. * backend/pas/pas-book.h: add GetSupportedFields to the PASOperation enum. Also, add a stringlist field to the PASRequest struct. lastly, add a prototype for pas_book_respond_get_supported_fields. * backend/pas/pas-backend.h: remove prototype for pas_backend_get_supported_fields, and remove it from the vtable. * backend/pas/pas-backend.c (pas_backend_get_supported_fields): remove. (pas_backend_class_init): no vtable entry for get_supported_fields anymore. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_get_supported_fields): new function. (pas_backend_ldap_process_client_requests): add case for GetSupportedFields. (pas_backend_ldap_class_init): get_supported_fields isn't in vtable anymore. * backend/pas/pas-backend-file.c (pas_backend_file_process_get_supported_fields): new function. (pas_backend_file_process_client_requests): add case for GetSupportedFields. (pas_backend_file_class_init): get_supported_fields isn't in vtable anymore. * backend/idl/addressbook.idl: Book::getSupportedFields now returns void and add BookListener::notifySupportedFields. * backend/ebook/test-client.c (get_fields_cb): new function. (auth_user_cb): track change to e_book_get_supported_fields. * backend/ebook/e-book.c (e_book_do_response_get_supported_fields): new function. (e_book_check_listener_queue): add case GetSupportedFieldsResponse. (e_book_get_supported_fields): switch to async model. * backend/ebook/e-book.h: switch e_book_get_supported_fields to an async model. * backend/ebook/e-book-listener.c (e_book_listener_queue_get_supported_fields_response): new function. (impl_BookListener_response_get_supported_fields): new function. (e_book_listener_get_epv): fill in epv's "notifySupportedFields" * backend/ebook/e-book-listener.h: add an async response for GetSupportedFields and add a stringlist member to the EBookListenerResponse struct. 2001-02-20 Federico Mena Quintero * backend/pas/pas-book-factory.c (pas_book_factory_activate): Moved the register_factory() code to here, since it was the only thing being called anyways. (PasBookFactoryPrivate): Added a "registered" flag. (pas_book_factory_activate): Set the registered flag. (pas_book_factory_destroy): Deactivate the factory when we go away. 2001-02-20 Chris Toshok * backend/ebook/e-book.c (e_book_get_supported_fields): new function. * backend/ebook/e-book.h: add e-book interface to getting supported fields. * backend/ebook/test-client.c (auth_user_cb): shoe-horn in some spew about supported fields. 2001-02-19 JP Rosevear * conduit/Makefile.am: Remove PISOCK_LIBDIR 2001-02-19 Jon Trowbridge * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_create_entry): When creating the entry, open up an ebook (corresponding to the local addressbook) and make the entry use an EAddressCompletion. (completion_handler): Added; this is the actual completion handler, which manipulates the entry when the user selects something from the drop-down. * gui/component/select-names/e-select-names-model.c: Various hacks by clahey to unbreak e_select_names_model_add_item, e_select_names_model_replace_item (which I added) and e_select_names_model_remove_item. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_obj_count, e_select_names_text_model_get_nth_obj): Make chunks of text that correspond to ECards in the ESelectNamesModel be embedded objects. (e_select_names_text_model_activate_obj): On activation, pop up a contact editor for the embedded object's card. (e_select_names_text_model_model_changed): Fixed to work with ETextModel API changes. (e_select_names_text_model_set_text): Make const correct. (e_select_names_text_model_insert): Make const correct. (e_select_names_text_model_insert_length): Make const correct. * backend/ebook/e-address-completion.h, backend/ebook/e-address-completion.c: Added. EAddressCompletion is a derived class of ECompletion that does asynchronous address lookups for completions. 2001-02-17 Chris Toshok * backend/idl/addressbook.idl: add sequence typedef, and add getSupportedFields method. * backend/pas/pas-book.c (impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): new function. * backend/pas/pas-backend.c (pas_backend_class_init): init get_supported_fields = NULL. (pas_backend_get_supported_fields): new function. * backend/pas/pas-backend.h: add prototype for pas_backend_get_supported_fields. * backend/pas/pas-backend-file.c (pas_backend_file_get_supported_fields): new function. (pas_backend_file_class_init): fill in get_supported_fields. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_get_supported_fields): new function. (pas_backend_ldap_class_init): fill in get_supported_fields. 2001-02-14 Christopher James Lahey * backend/pas/pas-backend-ldap.c: Undefine E_STRING_PROP and E_LIST_PROP here. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h (e_contact_editor_raise): Added this function. * gui/widgets/e-minicard.c, gui/widgets/e-minicard.h (e_minicard_event): Added an editor field to the EMinicard object. Made it so that if you double click on the same card twice, it doesn't open a new window, but instead raises the old. 2001-02-08 Iain Holmes * gui/component/addressbook-storage.c (addressbook_source_free): Free the ldap.binddn. * gui/widgets/e-addressbook-view.c (e_addressbook_view_setup_menus): Free the dir strings. 2001-02-08 Christopher James Lahey * contact-editor/e-contact-editor.c (categories_clicked): Set the header on the category dialog we pop up. 2001-02-12 Kjartan Maraas * backend/ebook/GNOME_Evolution_Addressbook_GnomeCard_Importer.oaf.in: Translations. * gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in: Marked strings for translation in this newly created file. * gui/component/select-names/Makefile.am: Hook up the .oaf.in files in the xml-i18n-tools framework. * gui/component/Makefile.am: Same as above. * gui/component/GNOME_Evolution_Addressbook.oaf.in: Marked stuff for translation here too. 2001-02-11 Jason Leach * gui/component/addressbook.c: Removed an ancient #include 2001-02-11 Gediminas Paulauskas Really use xml-i18n-tools. * conduit/e-address-conduit-control-applet.desktop: removed. * conduit/e-address-conduit-control-applet.desktop.in: added empty. * conduit/Makefile.am: reflect above changes, merge translations. * contact-editor/e-contact-editor-strings.h, contact-editor/fulladdr.glade.h, contact-editor/fullname-strings.h, contact-editor/e-contact-editor-confirm-delete.glade.h, gui/component/select-names/select-names.glade.h: removed these files, xml-i18n-extract takes care of strings itself. * contact-editor/*.glade, gui/component/select-names/select-names.glade, gui/widgets/alphabet.glade, printing/e-contact-print.glade: changed project options to not output_translatable_strings. * contact-editor/Makefile.am, gui/widgets/Makefile.am, gui/component/select-names/Makefile.am, printing/Makefile.am: do not include removed files in EXTRA_DIST. 2001-02-07 Chris Toshok * backend/pas/pas-backend-ldap.c (check_for_evolve_person): flesh out this check. #ifdef the entire thing OPENLDAP2, as it only works with the new schema stuff in openldap 2.x (both on server and client, so upgrade your server.) 2001-02-07 Christopher James Lahey * gui/widgets/e-addressbook-view.c: Added N_("* Click here to add a contact *"). 2001-02-07 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): only set the DEBUG_LEVEL if we're OPENLDAP2. 2001-02-06 Chris Toshok * backend/pas/pas-backend-ldap.c (email_compare): return TRUE if equal, FALSE otherwise. (business_compare): same. (homephone_compare): same. (email_ber): return NULL if there are no elements in our list. (homephone_ber): same. (business_ber): same. (build_mods_from_ecards): add smarts to handle list elements properly (like email, business_phone, home_phone.) now we'll properly send updates if any element in the list changes. 2001-02-06 Christopher James Lahey * gui/widgets/Makefile.am (INCLUDES): Added -DEVOLUTION_DATADIR=\""$(datadir)"\". * gui/widgets/e-addressbook-view.c (e_addressbook_view_setup_menus): Changed the local and system directories. 2001-02-06 Chris Toshok * backend/pas/pas-backend-ldap.c (create_card_handler): doh, didn't mean to commit this. 2001-02-06 Chris Toshok * backend/pas/evolveperson.schema: new file. this will eventually form the suggested additions to an existing openldap server that, along with support for inetorgperson, will allow people to store all evolution attributes in ldap. 2001-02-06 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_init): don't need the = NULL's since we g_new0. (check_for_evolve_person): new function. (pas_backend_ldap_connect): check to see if the evolvePerson objectclass is there. (build_mods_from_ecards): right now, just silently skip the extra attributes if we don't support evolvePerson. (add_objectclass_mod): new function, add both inetOrgPerson and (if it's available) evolvePerson as objectclasses. (pas_backend_ldap_process_authenticate_user): also check to see if evolvePerson is there, if we couldn't do it (due to auth reasons) in the connect method. (prop_info): change the telephoneNumber LDAP attribute to be used for evolution's business phone numbers. the primary phone number will be a single valued attribute on evolvePerson. (business_populate): new function. (business_ber): new function. (business_compare): new function. 2001-02-05 Chris Toshok * backend/pas/pas-backend-ldap.c (create_card_handler): err, allocate 2 char*s when i assign 2 char*s. 2001-02-05 Chris Toshok * backend/pas/pas-backend-ldap.c (modify_card_handler): switch to ldap_modify_ext_s if OPENLDAP2, as ldap_modify_s is deprecated. (build_mods_from_ecards): don't include the mod if the value is "" - this isn't valid on schema checking ldap servers. (homephone_populate): new function. (homephone_ber): new function. (homephone_compare): new function. (create_card_handler): add spew when adding cards so I can see what's going on. 2001-02-05 Christopher James Lahey * gui/component/addressbook-config.c (table_add_elem): Save the help_text in the closure. 2001-02-05 Christopher James Lahey * gui/widgets/Makefile.am (libeminicard_a_SOURCES): Added gal-view-factory-minicard.c, gal-view-factory-minicard.h, gal-view-minicard.c, and gal-view-minicard.h. * gui/widgets/gal-view-factory-minicard.c, gui/widgets/gal-view-factory-minicard.h, gui/widgets/gal-view-minicard.c, and gui/widgets/gal-view-minicard.h: New classes for minicard view type. * gui/widgets/e-addressbook-view.c: Deploy gal-view stuff properly. 2001-02-05 Christopher James Lahey * backend/ebook/e-card.c (e_card_get_vcard): Make the Note field be quoted printable. 2001-01-27 Christopher James Lahey * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_init): This should be a close button, not a cancel button. 2001-02-04 Christopher James Lahey * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_activate_dialog): Call e_select_names_set_default when appropriate. * gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h: Added support for double clicking sending the selected contacts to the default section. Added a set_default function. Made multiple selection work. 2001-01-29 Chris Toshok * gui/component/addressbook-config.c (addressbook_config_source_label): #ifdef INCLUDE_FILE_SOURCE. (table_add_elem): add help_text parameter and set up focus_in events to display the help in the dialog's html area. (focus_help): new function, calls put_html on the help text. (addressbook_ldap_auth_item_new): add help texts. (addressbook_source_item_new): add help texts. (addressbook_source_dialog): add help texts. 2001-01-27 Ettore Perazzoli * gui/component/select-names/e-select-names.c (e_select_names_add_section): Remove the butt-ugly arrow icon and replace it with a less invasive "->" icon. 2001-01-25 Chris Toshok * backend/pas/pas-backend-ldap.c (build_mods_from_ecards): add comment about the else block here. (prop_info): add home_address, business_address, business_fax, assistant, and isdn. 2001-01-25 Christopher James Lahey * backend/pas/pas-backend-file.c (pas_backend_file_load_uri): Made this only add the initial VCard if it finds a file "create-initial" in the directory it's creating the database in. * gui/component/addressbook-component.c (factory_fn): Added a create_folder function. * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_init): Fixed an unused variable warning. 2001-01-25 Christopher James Lahey * gui/widgets/e-addressbook-view.c (e_addressbook_view_setup_menus): Setup the view collection properly and handle the "display_view" signal. 2001-01-25 Ettore Perazzoli * gui/component/addressbook.c (update_pixmaps): Consider the placeholder in the path for the "Print" item. 2001-01-25 Ettore Perazzoli * gui/component/addressbook.c (update_pixmaps): Set the icon for "/Toolbar/Find" to "24_find_contact.xpm". 2001-01-25 Ettore Perazzoli * gui/component/addressbook.c (set_pixmap): New. (update_pixmaps): New function, setting the pixmaps for the items of type "pixbuf", using `set_pixmap'. (control_activate): Call it. 2001-01-25 Not Zed * backend/pas/pas-backend-ldap.c: esexp api change fixes. * backend/pas/pas-backend-file.c (entry_compare): Fix for e_sexp api changes. (vcard_matches_search): esexp api fixes. (pas_backend_file_search): Ouch, unref the e-sexp properly (not gtk object). 2001-01-24 Chris Toshok * backend/pas/pas-backend-ldap.c (email_ber_func): make sure to add the lengths here (include the \0? anyone?). (build_mods_from_ecards): if we're filling in mod->mod_bvalues, set mod_op |= LDAP_MOD_BVALUES. 2001-01-23 Jason Leach (Fix #1225: advanced search cancel/close) * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_init): Set it up with Search and a Cancel button, Search is still the default. 2001-01-23 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): properly ref the ecard. still need to kill some memory leaks. 2001-01-22 JP Rosevear * conduit/Makefile.am: remove vfs dependency 2001-01-21 JP Rosevear * conduit/address-conduit.c (delete_record): Remove deleted records from the pilot map so we don't have dupes in the future 2001-01-19 Dan Winship * gui/widgets/e-addressbook-view.c (table_right_click): * gui/widgets/e-minicard.c (e_minicard_event): Update for e_popup_menu_run prototype change. 2001-01-19 Jason Leach (Adding a boolean "entry_changed" BonoboPropertyBag arg) * gui/component/select-names/e-select-names-bonobo.c (entry_set_property_fn): Use a gtk_object_set_data to set the property to TRUE here. (entry_changed): New function, calls bonobo_control_set_property if entry_changed hasn't been set to TRUE yet. (impl_SelectNames_get_entry_for_section): Connect "changed" on each entry_widget to the new entry_changed() func. 2001-01-19 JP Rosevear * conduit/address-conduit.c (ecard_from_remote_record): always free the delivery elements and correct embarrassingly stupid memory error that was causing the addressbook conduit problems. * backend/ebook/e-book-view-listener.c (e_book_view_listener_check_queue): ref/unref ourself when processing in case someone we signal unrefs us. * conduit/address-conduit.c (sequence_complete): disconnect signals when complete 2001-01-17 Federico Mena Quintero * backend/pas/pas-book-factory.c (pas_book_factory_activate): Made it return a gboolean; it was completely ignoring the return value from register_factory(). 2001-01-17 Larry Ewing * backend/ebook/.cvsignore: add evolution-gnomecard-importer. * backend/ebook/Makefile.am (oaf_DATA): don't require the pine oainfo file until it is actually added to the repository. We need to keep the build working for nightlies to work. 2001-01-16 Jason Leach * backend/pas/pas-backend-file.c (INITIAL_VCARD): s/Helix Code/Ximian/ for the initial contact card. 2001-01-15 JP Rosevear * conduit/address-conduit.c (print_local): prevent segfaults and buffer overflows (print_remote): ditto 2001-01-14 JP Rosevear * conduit/Makefile.am: pass -module and -avoid-version to conduit linker 2001-01-12 Ettore Perazzoli * gui/component/addressbook-component.c (factory_fn): Pass NULL as the @copy_folder_fn arg to `evolution_shell_component_new'. 2001-01-12 Miguel de Icaza * gui/widgets/e-addressbook-view.c: added i18n for etable. 2001-01-11 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_create_card): get a book view from somewhere so we can give status messages - choose the first one in the list. (pas_backend_ldap_process_modify_card): same. (pas_backend_ldap_process_remove_card): same. (prop_info): add more properties, like home_phone, mobile, pager, uri, org_unit, office, title, and manager. 2001-01-09 Miguel de Icaza * gui/widgets/Makefile.am (minicard_widget_test_LDADD): Put GNOME libraries at the end to make the thing compile. * printing/Makefile.am: Order LDADD flags correctly so it compiles. 2001-01-09 Chris Toshok * gui/component/addressbook.c (addressbook_factory_new_control): connect with the EAddressbookView's status_message signal. (set_status_message): set the status message on the ShellView Interface associated with our control. (retrieve_shell_view_interface_from_control): new function. get the shell view inteface associated with a control. * gui/widgets/e-addressbook-view.c (e_addressbook_view_class_init): register status_message signal. (status_message): new function, emit our status_message signal. (change_view_type): connect with the view->object's "status_message" signal. * gui/widgets/e-addressbook-view.h (struct _EAddressbookViewClass): add status_message signal. 2001-01-09 Chris Toshok * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_class_init): register our status_message signal. (status_message): new function, emit our status_message signal. (e_minicard_view_widget_realize): connect to the EMinicardView's status_message signal. * gui/widgets/e-minicard-view-widget.h: add status_message signal. * gui/widgets/e-minicard-view.c (e_minicard_view_class_init): register our status_message signal. (e_minicard_view_init): init status_message_id. (status_message): new function, emit our status_message signal. (book_view_loaded): connect to the EBookView's status_message signal. (disconnect_signals): disconnect status_message_id. * gui/widgets/e-minicard-view.h: add status_mesage_id, and status_message signal. * gui/widgets/e-addressbook-model.c (status_message): new function, emit our status_message. (e_addressbook_model_class_init): register our "status_message" signal. (book_view_loaded): connect to the EBookView's status_message signal, so we can chain it to our parent. (e_addressbook_model_init): init status_message_id. (remove_book_view): disconnect status_message_id. * gui/widgets/e-addressbook-model.h: add status_message_id, and status_message signal. * backend/pas/pas-backend-ldap.c change the objectclass we create objects with to "inetOrgPerson" as it encompasses the fields we use. (create_dn_from_ecard): remove the mail/org handling from here. we just prepend cn=$cn onto the base dn. (create_card_handler): remove the NULL that build_mods_from_ecards adds at the end, and insert our objectClass. (modify_card_handler): call search_for_dn to get the ECardSimple of the old card, since it might (and does in the current code) doing a brute force search. (search_for_dn): new function, to search for an entry by its dn. right now we brute force (objectclass=*) under the base dn and compare dn's. going to add a first pass that explodes the dn and searches that way, using (objectclass=*) as a last resort. also, here's where we'd put the extensibleMatch code if we want to go that route. * backend/ebook/e-card.c (e_card_set_arg): if we're setting the full name regenerate ecard->name. 2001-01-04 Chris Toshok * backend/ebook/e-book-listener.c (e_book_listener_queue_authentication_response): new function. (impl_BookListener_respond_authentication_result): new function. (e_book_listener_get_epv): fill in epv->notifyAuthenticationResult. * backend/ebook/e-book-listener.h: add AuthenticationResponse to EBookListenerOperation. * backend/ebook/e-book.c (e_book_authenticate_user): new function. * backend/ebook/e-book.h: add prototype for e_book_authenticate_user. * backend/idl/addressbook.idl (GNOME:Evolution:Addressbook:Book): add authenticateUser method. (GNOME:Evolution:Addressbook:BookListener): add AuthenticationFailed and AuthenticationRequired to CallStatus. also add notifyAuthenticationResult method. * backend/pas/pas-backend-file.c (pas_backend_file_process_authenticate_user): dummy authenticate_user function that always succeeds. (pas_backend_file_process_client_requests): respond to the AuthenticateUser request. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query): gtk_object_unref(sexp) => s_exp_unref(sexp). (pas_backend_ldap_process_authenticate_user): fill in to use ldap_simple_bind_s. (pas_backend_ldap_process_client_requests): respond to the AuthenticateUser request. * backend/pas/pas-book.c (pas_book_queue_authenticate_user): new function. (impl_GNOME_Evolution_Addressbook_Book_authenticateUser): new function. (pas_book_respond_authenticate_user): new function. (pas_book_get_epv): fill in epv->authenticateUser. * backend/pas/pas-book.h: add AuthenticateUser operation type, and add user/passwd to the PASRequest struct. * gui/component/addressbook-storage.c (addressbook_storage_get_source_by_uri): new function. should use a hashtable, perhaps, but the lists will generally be small anyway. * gui/component/addressbook-storage.h: add prototype for addressbook_storage_get_source_by_uri. * gui/component/addressbook-config.c (addressbook_source_dialog_set_source): fill in the binddn if the auth page is shown. * gui/component/addressbook.c (book_open_cb): shoe-horn authentication in here. if the source was configured to use authentication, authenticate the user after opening the ebook. also, be paranoid and clear out the password after authenticating. (book_auth_cb): callback for auth. set the "book" arg on the view->view here. (passwd_cb): set the view's passwd that'll be used in book_open_cb. (addressbook_view_free): g_free view->passwd. 2001-01-04 Christopher James Lahey * gui/component/addressbook-component.c, gui/component/addressbook-component.h (addressbook_component_get_shell_client): Added this function. * gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h: Added code for the ability to switch between different folders. This doesn't work yet. * gui/component/select-names/select-names.glade, gui/component/select-names/select-names.glade.h: Added an option menu to this dialog. 2001-01-04 JP Rosevear * conduit/Makefile.am: Fix hard coded library names that were accidentally committed (i'm looking at you miggie) * contact-editor/e-contact-editor.c (categories_clicked): Reflect renaming. * contact-editor/e-contact-editor-categories.[hc]: These are living in gal now 2001-01-04 JP Rosevear * backend/pas/pas-backend-file.c (pas_backend_file_book_view_free): Need to e_sexp_unref the the sexp, not gtk_object_unref it. 2001-01-03 Michael Meeks * gui/widgets/e-addressbook-model.c (get_view): check capabilities is valid before doing a strstr. 2001-01-03 Michael Meeks * backend/pas/pas-backend-file.c (pas_backend_file_search): g_strdup things we g_free. 2001-01-02 Christopher James Lahey * contact-editor/e-contact-editor.c (delete_cb): Make sure this won't crash if the given contact is removed from the database while this function is being called. * gui/widgets/e-minicard.c: Made sure this won't crash if the given contact is removed from the database while the right click menu is being displayed. 2000-12-30 Chris Toshok * gui/component/addressbook-config.c (edit_source_clicked): copy the dialog's source, destroy the dialog after we're done, and make sure to update both columns in the clist. (add_source_clicked): copy the dialog's source, and destroy the dialog when we're done. (addressbook_source_dialog_destroy): free up all the dialog's memory. * gui/component/addressbook.c (set_prop): allow file: uri's that point to files, not just dirs that contain addressbook.db. The rule is the addressbook file has to end in .db. * gui/component/addressbook-storage.c (file_source_foreach): contactserver => contactfile. cut and paste error. (addressbook_storage_init_source_uri): use file://%s to build the uri. * gui/component/e-ldap-server-dialog.[ch]: forgot to remove these in my last commit. 2000-12-29 Chris Toshok * gui/component/addressbook.c (config_cb): new function, calling our new config ui code. (control_activate): no longer load evolution-addressbook-ldap.xml, as it's not there. * gui/component/addressbook-component.c (owner_set_cb): setup_ldap_storage => addressbook_storage_setup. * gui/component/Makefile.am (evolution_addressbook_SOURCES): remove e-ldap-storage.[ch] and add addressbook-storage.[ch]. (glade_DATA): remove ldap-server-dialog.glade and add addressbook-config.glade. (EXTRA_DIST): same. * gui/component/addressbook-config.[ch]: add another dialog to give a list of our sources and offer the Add/Delete/Edit interface. This plugs into the previous dialog work (the source editor.) * gui/component/addressbook-storage.[ch]: new files, containing the remains of e-ldap-storage.[ch] and adding the new AddressbookSource type and it's subordinates. Also, the xml format has changed slightly and the file name is no longer ~/evolution/ldap-servers.xml - it's ~/evolution/addressbook-sources.xml. * gui/component/addressbook-config.glade: new file, new config interface. * gui/component/ldap-server-dialog.glade: removed. * gui/component/e-ldap-storage.[ch]: removed. 2000-12-28 Chris Toshok * gui/component/Makefile.am (evolution_addressbook_SOURCES): add addressbook-config.[ch]. * gui/component/addressbook-config.c, gui/component/addressbook-config.h: new files, containing at the moment a beautiful "new/edit source dialog" inspired by the mail-config-gui code. It'll be ready for prime time after rev'ing the .xml file the addressbook uses to store it's "other sources" to include files, and the addition of the ldap auth stuff. 2000-12-25 Miguel de Icaza * gui/widgets/e-minicard.c (e_minicard_realize): Set draw background to FALSE. * gui/widgets/e-minicard-label.c (e_minicard_label_construct): ditto. (e_minicard_label_construct): ditto 2000-12-23 Christopher James Lahey * contact-editor/fullname-strings.h, contact-editor/fullname.glade: Added Ms. and Miss to the prefix drop down box. Patch submitted by Martin Hicks . 2000-12-21 JP Rosevear * conduit/address-conduit.c (cursor_cb): Ref the cards that get put in the change list (next_changed_item): util function to get the real next changed item (compute_status): really compute the status of the record (local_record_from_uid): Set the id of the temporary card (check_for_slow_setting): Make this check a little saner (card_added): Only record the CardObjectChange if the card is not archived (card_changed): ditto (card_removed): ditto (set_status_cleared): actually clear the status (for_each_modified): Clean out cruft and use next_changed_item (add_record): Set the new id properly in our local card copy (replace_record): handle the case where the record has been deleted and we need to call add. need to update the changed_hash entry (delete_record): Don't panic if the card is not found, its already been deleted. * backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): The change_context no longer has a del_cards member (pas_backend_file_book_view_free): ditto (pas_backend_file_process_get_changes): ditto (pas_backend_file_changes_foreach_key): just record the id (pas_backend_file_changes): notify_remove needs an id not a vcard 2000-12-20 JP Rosevear * conduit/address-conduit.c (match): Use my own wrapper functions instead of trying to *directly* access the the data structures my self (post_sync): Put in hack to prevent syncing the same records twice (local_record_from_uid): set the card id when creating a blank one (add_record): Set the id of the card we have and don't go to the server to get the latest version 2000-12-19 JP Rosevear * conduit/address-conduit.c (ecard_from_remote_record): Convert pilot strings to utf for the e-cards. 2000-12-19 JP Rosevear * conduit/address-conduit.c (local_record_from_ecard): Convert ecard strings to pilot encodings 2000-12-19 Christopher James Lahey * gui/widgets/e-addressbook-view.c (delete): Made it so that if you select multiple contacts, the right click menu to delete deletes them all. 2000-12-18 Chris Toshok * backend/pas/pas-backend-ldap.c (ldap_error_to_response): always use LDAP_NAME_ERROR (in the openldap1 case it's #defined to NAME_ERROR). (build_card_from_entry): ldap_get_values can return NULL. also, openldap2 keeps us from getting at ldap->ld_errno, so we can't tell if there was a decoding error like we used to. the double free problem where ldap would free the ber if there was a decoding problem might be fixed now.. further investigation is needed. for now we leak in openldap2. (ldap_search_handler): the ldap structure is opaque, so use ldap_search_ext to give the extra information (the max responses, timeout, etc.) in the openldap2 case. 2000-12-13 Christopher James Lahey * backend/pas/pas-backend-ldap.c (ldap_error_to_response): Test for the existance of LDAP_NAME_ERROR and if it exists as a macro, use it instead of NAME_ERROR. 2000-12-14 Michael Meeks * gui/component/GNOME_Evolution_Addressbook.oafinfo: update cut and paste description error. 2000-12-13 Dan Winship * gui/widgets/e-minicard-control.c (stream_read): NULL-terminate the returned vcard so we don't sometimes end up with trailing junk that makes libversit unhappy. 2000-12-13 Iain Holmes * gui/component/select-names/e-select-names.c (e_select_names_add_section): Make the -> into a GNOME stock image. 2000-12-09 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_init): Connect to the "cursor_change" signal on the ETable here instead of the ETableScrolled. (remove_address): Added the col and event parameters to this callback to match the added parameters to the double click signal. (e_select_names_add_section): Connect to the "double_click" signal on the ETable here instead of the ETableScrolled. 2000-12-09 Christopher James Lahey * backend/ebook/e-card.c (e_card_set_arg): When setting the "name" argument, copy the incoming name. This fixes a crash. 2000-12-09 Christopher James Lahey * contact-editor/e-contact-editor.c: Made editing the name using the full name button set the file as entry properly. Made it so that the address parse that the user chooses after clicking on the Full Address... button gets saved. 2000-12-08 Christopher James Lahey * contact-editor/e-contact-editor.c (full_name_clicked): Made it so that the editor->name is set after the entry is changed. This means that the reparse that the person chose is saved. 2000-12-07 Ettore Perazzoli * gui/component/e-ldap-storage.c (setup_ldap_storage): Pass NULL as the @toplevel_node_handler_id argument to `evolution_storage_new'. 2000-12-08 Christopher James Lahey * backend/ebook/e-card.c: Fixed some formatting. * contact-editor/e-contact-editor-categories.h: Removed an unneeded #include. * gui/widgets/e-addressbook-view.c: Connect to the signals on the ETable instead of the ETableScrolled. 2000-12-07 JP Rosevear * conduit/address-conduit.c (local_record_from_uid): Pass "" rather than NULL to e_card_new. (local_record_from_ecard): Make sure ecard->name is valid (check_for_slow_setting): Remove hard coded test value (card_added): g_strdup the resul of e_card_get_id (card_changed): ditto 2000-12-07 Christopher James Lahey * gui/widgets/e-addressbook-view.c: Got rid of code referencing the ETableScrolled proxy functions. 2000-12-06 Christopher James Lahey * gui/component/addressbook.c: Moved the gal view menu stuff from here to EAddressbookView. * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h: New function to set up the menus for the EAddressbookView. 2000-12-06 JP Rosevear * conduit/Makefile.am: Another conduit build fix 2000-12-05 JP Rosevear * backend/pas/pas-backend-file.c (pas_backend_file_changes_foreach_key): Create an empty vcard with the appropriate id for deleted cards * conduit/address-conduit.c (ecard_from_remote_record): Ensure the address fields are added sensibly 2000-12-05 Ettore Perazzoli * gui/component/e-ldap-storage.c (setup_ldap_storage): Updated the call to `evolution_storage_new()': pass NULL for @toplevel_node_uri. 2000-11-28 JP Rosevear * conduit/address-conduit.c (local_record_to_pilot_record): Return a struct rather than a pointer to a struct (view_cb): kill warning (compare): local_record_to_pilot_record now returns a struct (prepare): ditto (free_prepare): remove as per gnome-pilot changes (conduit_get_gpilot_conduit): don't listen for free_prepare signal 2000-11-27 JP Rosevear * conduit/address-conduit.h: Remove "complete" field * conduit/address-conduit.c (print_local): Make it print useful debug info (print_remote): ditto (local_record_from_ecard): Make sure phone numbers get out to the pilot (ecard_from_remote_record): Set phone strings to "" if they are null (sequence_complete): unref the book view (view_cb): ref the book view (free_prepare): do nothing * backend/pas/pas-backend-file.c (pas_backend_file_book_view_free): Destroy the card lists with the rest of the view. (pas_backend_file_changes): Don't destroy the card lists here (pas_backend_file_book_view_free): Free the card/id lists in the change context here, the correct place. (pas_backend_file_changes): instead of here... 2000-11-22 Christopher James Lahey * backend/pas/pas-backend-file.c: Set view.change_context to NULL in pas_backend_file_process_get_book_view. Changed pas_backend_file_book_view_copy a bit. * backend/pas/pas-backend-ldap.c: Got rid of a warning. 2000-11-18 Matt Bissiri * gui/component/Makefile.am: Add widgets/menus/libmenus.la to evolution_addressbook_LDADD so that it will link properly now that gal-view-menus.[ch] was moved from gal into evolution. 2000-11-15 JP Rosevear * backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): Initialize destination struct with '0's. 2000-11-12 Christopher James Lahey * backend/ebook/e-card.c: Changed the mime type from "text/vcard" to "text/x-vcard". 2000-11-11 Matt Bissiri * backend/ebook/.cvsignore: Add idl-generated files. * backend/ebook/e-book.c: (e_book_do_response_get_changes): * backend/ebook/e-card.c: (e_card_send): s/Evolution_/GNOME_Evolution_/g; 2000-11-11 Christopher James Lahey * backend/ebook/Makefile.am: Link in composer bonobo code. * backend/ebook/e-card.c, backend/ebook/e-card.h: Added code to send mail to an ECard or send an ECard as a VCard attachment. * contact-editor/e-contact-editor.c: Add verbs to send the contact as a VCard or send mail to the contact. * gui/search/e-addressbook-search-dialog.c: Removed some unused variables. * gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c: Added menu items to send the contact as a VCard or send mail to the contact. 2000-11-11 Matt Bissiri * gui/component/addressbook.oafinfo: * gui/component/select-names/evolution-addressbook-select-names.oafinfo: Update the remaining "IDL:Evolution*" to "IDL:GNOME/Evolution*" to sync up with yesterday's IDL re-scoping. 2000-11-09 Christopher James Lahey * backend/pas/pas-backend-ldap.c: Fixed a warning. * gui/component/addressbook.c: Put in gal view menus for testing purposes. * printing/e-contact-print-envelope.c: Fixed up envelope printing a bit. Added code for printing return addresses. 2000-11-09 JP Rosevear * conduit/address-conduit.h: Add changed_hash, change list and complete bool * conduit/address-conduit.c (local_record_from_ecard): Add empty field checks (card_added): callback for book view (card_changed): ditto (card_removed): ditto (sequence_complete): ditto (view_cb): callback for the get changes call (pre_sync): force synchronous loading of book view (for_each): we already have the card so create the local record directly (for_each_modified): Uncomment and fix (delete_record): ditto * conduit/Makefile.am: link against gal for ebook - needs fixing * backend/ebook/e-book.c (e_book_do_response_get_changes): Properly respond to a get_changes call (e_book_check_listener_queue): define the get changes response operation * backend/ebook/e-book-listener.c (e_book_listener_queue_get_changes_response): Queue up a get changes response (impl_BookListener_respond_get_changes): Implement the get_changes method (e_book_listener_get_epv): add get_changes implementation to epv * backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): Only copy the search_context and change_context elements if they actually exist (pas_backend_file_changes): Hard code a path for now, only notify if there is something to notify about 2000-11-07 JP Rosevear * backend/pas/pas-book.h: Update PASRequest structure * backend/pas/pas-book.c (impl_Evolution_Book_get_changes): update param name (pas_book_queue_get_changes): Use PASRequest change_id slot * backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): Properly copy change_id and change_context (pas_backend_file_book_view_free): Free change_id/change_context (pas_backend_file_changes_foreach_key): Callback to figure out the deleted cards (pas_backend_file_changes): Use new e-dbhash stuff to implement. Write out updated hash * backend/idl/addressbook.idl: Rename get_changes param 2000-11-06 Christopher James Lahey * gui/component/addressbook.c: Switched from EAddressbookSearch to ESearchBar. * gui/widgets/Makefile.am, gui/widgets/e-addressbook-search.c, gui/widgets/e-addressbook-search.h: Removed EAddressbookSearch. This has been moved to filter/ and renamed ESearchBar. * printing/e-contact-print-envelope.c: Forgot to set the font. This works for me now. 2000-11-06 Ettore Perazzoli * gui/component/select-names/e-select-names-bonobo.c (impl_SelectNames_get_entry_for_section): Duplicate the object reference before returning. 2000-11-05 Christopher James Lahey * contact-editor/e-contact-editor.c, gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c: Add menus items to the envelope printing stuff. * gui/component/addressbook.c: Hook up the search menu. * gui/widgets/e-addressbook-search.c, gui/widgets/e-addressbook-search.h: Add the search menu. * printing/Makefile.am: Add e-contact-print-envelope.c and e-contact-print-envelope.h. * printing/e-contact-print-envelope.c, printing/e-contact-print-envelope.h: Added envelope printing. 2000-11-03 Federico Mena Quintero * gui/component/select-names/Makefile.am: Clean the idl-generated files properly. 2000-11-02 Christopher James Lahey * ename/.cvsignore, gui/minicard/.cvsignore: Removed these unnecessary .cvsignores. * gui/component/addressbook.c: Switch to using EAddressbookSearch instead of custom quick search widget. * gui/component/select-names/e-select-names.c: Made this do a slightly better job of rendering names. * gui/widgets/Makefile.am: Added e-addressbook-search.c and e-addressbook-search.h. * gui/widgets/e-addressbook-search.c, gui/widgets/e-addressbook-search.h: New class that puts up an entry and a combo box. 2000-11-01 Dan Winship * gui/component/e-ldap-storage.c (load_ldap_data): (e_ldap_storage_add_server): Add "highlighted" flag to evolution_storage_new_folder 2000-10-31 JP Rosevear * conduit/address-conduit.c (cursor_cb): Let the warning make sense (compute_pid): remove (local_record_from_ecard): Create local record from ecard - not finished (local_record_from_uid): Obtain local_record from uid with the proper e-book way (set_status_cleared): Add empty callback (add_archive_record): kill (delete_archive_record): kill (archive_record): Add empty callback (conduit_get_gpilot_conduit): Update signal connects * backend/pas/pas-backend-file.c (vcard_change_type): Function to determine the type of change - not finished (pas_backend_file_search_changes): Create a view and callback based on how the cards have changed (pas_backend_file_process_get_changes): Implement the get changes operation for files (pas_backend_file_process_client_requests): Add GetChanges method for processing * backend/pas/pas-book.c (pas_book_queue_get_changes): Add changes to the list (impl_Evolution_Book_get_changes): implement object method (pas_book_get_epv): Add get changes to epv (pas_book_respond_get_changes): Respond to the get changes operation * backend/pas/pas-book.h: Add GetChanges PASOperation * backend/idl/addressbook.idl: add get_changes and respond_get_changes methods * backend/ebook/e-book.c (e_book_get_changes): Client function to a view of the changed objects * backend/ebook/e-book.h: New prototype 2000-10-30 Kjartan Maraas * backend/e-book/e-card.c: Fixed marking of strings for translation. Use "_(" instead of "_ (". * gui/component/addressbook-factory.c: Add missing calls to bindtextdomain() and textdomain noticed by Dan Winship. * gui/component/addressbook.c: Marked string for translation. 2000-10-27 Christopher James Lahey * backend/pas/Makefile.am, gui/search/Makefile.am, printing/Makefile.am: Fixed these to include EXTRA_GNOME_CFLAGS. * gui/component/select-names/e-select-names-manager.c: Turned off newlines in header fields. 2000-10-26 Michael Meeks * printing/e-contact-print.c (e_contact_print_letter_tab), (complete_sequence, e_contact_do_print_phone_list, lowify): unsigned charness. 2000-10-25 Chris Toshok * backend/pas/pas-backend-ldap.c (ldap_op_process_current): only call the handler if the if we're connected, and if we fail to connect finish the op and post a message. (pas_backend_ldap_connect): add debug spew if DEBUG is defined. (modify_card_handler): LDAP_RES_SEARCH_ENTRY => LDAP_SUCCESS. (modify_card_handler): only perform the ldap_modify_s if we have a list of modifications. (get_cursor_handler): use ldap_error_to_response here. (pas_backend_ldap_load_uri): use LDAP_PORT instead of the constant 389. 2000-10-23 Dan Winship * gui/component/select-names/Makefile.am (INCLUDES): * gui/component/Makefile.am (INCLUDES): Update EVOLUTION_LOCALEDIR * backend/pas/Makefile.am (INCLUDES): * backend/ebook/Makefile.am (INCLUDES): Update GNOMELOCALEDIR. 2000-10-23 JP Rosevear * conduit/address-conduit.h: Use new libeconduit calls and abstraction * conduit/address-conduit.c: ditto 2000-10-23 JP Rosevear * conduit/address-conduit.c (pre_sync): Use e_pilot_map_read (post_sync): Use e_pilot_map_write * conduit/Makefile.am: Link libeconduit and not libical 2000-10-20 Michael Meeks * contact-editor/e-contact-editor.c (tb_save_and_close_cb): * gui/component/addressbook.c (toggle_view_as_cb): 2000-10-20 JP Rosevear * conduit/address-conduit.h: New structure of file - similar to calendar/todo conduits * conduit/address-conduit.c: ditto * conduit/address-conduit-config.h: Config stuff for conduit * conduit/.cvsignore: Update * conduit/Makefile.am: Build fixes * conduit/address-conduit-control-applet.desktop: Renamed to e-address-conduit-control-applet.desktop * conduit/address.conduit.in: Renamed to e-address.conduit.in 2000-10-19 Christopher James Lahey * gui/widgets/e-addressbook-view.c (SPEC): Remove Family name column since it's a bit weird. This also fixes the initial state since all of the column choices were off by one. 2000-10-19 Ettore Perazzoli * printing/Makefile.am (glade_DATA): Remove `e-contact-print.glade.h'. (EXTRA_DIST): Move here. * gui/component/Makefile.am (glade_DATA): Remove `ldap-server-dialog.glade.h'. (EXTRA_DIST): Move here. 2000-10-19 Christopher James Lahey * backend/ebook/e-card.c: Change how the extension field acts when converting delivery addresses to labels. 2000-10-18 Christopher James Lahey * backend/ebook/e-card.c, backend/ebook/e-card.h: Added the function e_card_delivery_address_to_label. * contact-editor/e-contact-editor-address.c: Fixed a potential crash. * contact-editor/e-contact-editor.c: Made this save the changed data to the string version of the address. 2000-10-19 Michael Meeks * gui/component/addressbook.c (change_view_type): update to new UI handler. (update_view_type): split from (change_view_type). (control_activate): add an update_view_type. 2000-10-18 Christopher James Lahey * backend/ebook/e-card-simple.c: Change NAME_OR_ORG to return the email address if both name and organization are taken. * gui/component/select-names/e-select-names.c: Fixed up the spec strings in this class. Removed the "cursor_mode" argument to ETable since it's part of the spec now. 2000-10-17 Iain Holmes * contact-editor/contact-editor.glade: Change the initial dialog visibility to FALSE so the contact editor doesn't flash when it appears. 2000-10-16 Iain Holmes * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_activate_dialog): Only allow one dialog per manager. 2000-10-16 Christopher James Lahey * contact-editor/fulladdr.glade: Fixed a typo. Made this look a bit better. 2000-10-15 Dan Winship * gui/component/select-names/Makefile.am: * gui/component/Makefile.am: Remove CPPFLAGS since they just duplicate flags that were already in INCLUDES. * printing/Makefile.am (ecpsdir): * gui/widgets/Makefile.am: * contact-editor/Makefile.am: Move -D flags from CPPFLAGS to INCLUDES so they don't override any CPPFLAGS set at configure time. 2000-10-14 Michael Meeks * gui/component/addressbook.c (control_activate): if we are in LDAP mode then merge in the extra few items, otherwise just merge the standard thing; saves duplication. 2000-10-14 Ettore Perazzoli * gui/component/addressbook.oafinfo: Added "evolution:shell-component-icon" property. 2000-10-14 Iain Holmes * gui/component/select-names/e-select-names.c (e_select_names_manager_activate_dialog): Only allow one dialog per id. (e_select_names_manager_destroy): Destroy the hashtable. (e_select_names_manager_init): Init the hashtable. 2000-10-13 Christopher James Lahey * contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h: Rearranged these fields a bit more. 2000-10-13 Christopher James Lahey * contact-editor/e-contact-editor-categories.c, gui/component/select-names/e-select-names.c, gui/widgets/e-addressbook-view.c: Changed these for boolean ascending attribute instead of int ascending attribute. Fixed e-select-names to not use a column past the end of its array. * contact-editor/e-contact-editor-address.c, contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h: Rearranged the address editor dialog. 2000-10-11 Christopher James Lahey * contact-editor/e-contact-editor-categories.c: Fixed the column elements, the no-headers attribute and added a cursor-mode=line attribute. * gui/component/select-names/e-select-names.c, gui/widgets/e-addressbook-view.c: Fixed the column elements here. 2000-10-11 Christopher James Lahey * contact-editor/e-contact-editor-categories.c, gui/component/select-names/e-select-names.c, gui/widgets/e-addressbook-view.c: Updated these to the new style ETables. 2000-10-06 Not Zed * gui/search/e-addressbook-search-dialog.c (get_widget): Removed ondemand callback nonsense from rule_context_load(). 2000-10-05 Michael Meeks * contact-editor/e-contact-editor.c (create_ui): upd. (e_contact_editor_init): upd. * gui/component/addressbook.c (control_activate_cb): upd. (control_deactivate): kill. (control_activate): upd. 2000-09-22 Michael Meeks * gui/component/addressbook.c (control_activate): update. * contact-editor/e-contact-editor.c (create_ui): upd. Fri Sep 29 07:33:54 2000 Christopher James Lahey * gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Made it so that minicard doesn't write out changes to the backend unless something's actually changed. Tue Sep 26 16:28:47 2000 Christopher James Lahey * backend/ebook/e-card.c: Make sure that card->name and card->full_name are always valid. * contact-editor/e-contact-editor.c: Removed some unused variables. 2000-09-22 Matt Bissiri * contact-editor/e-contact-editor-fullname.c (extract_info): If (editor->name == NULL), store ptr to newly allocated ECardName in editor->name, not just in a stack variable. This fixes a crash which happened when you click "New", then click "Full Name...", then enter name, then click "OK". * backend/ebook/e-card.c (e_card_name_to_string): Add g_return_val_if_fail. 2000-09-25 Jeffrey Stedfast * gui/widgets/Makefile.am: * gui/component/Makefile.am: * contact-editor/Makefile.am: * printing/Makefile.am: Look for ename in /e-util/ename instead of /addressbook/ename * backend/ebook/e-card.c: Updated to include e-util/ename/*.h * ename: Moved to /e-util so it could be shared * Makefile.am (SUBDIRS): took out ename 2000-09-25 Nat Friedman * ename/e-name-western-tables.h: Added a ton of new prefixes and suffixes. 2000-09-22 Michael Meeks * gui/component/addressbook.c (control_activate): update. * contact-editor/e-contact-editor.c (create_ui): upd. 2000-09-22 Chris Toshok * backend/pas/pas-backend-ldap.c: lots of changes. flesh out the remove/modify/create functions. add another flag for the property table, PROP_DN, which makes it easy for us to determine when we need to create a new DN for a record when we're modifying. also add a ber_func to the table for PROP_TYPE_LIST fields, which fills in the list of bvalues that we send to the ldap server. The add/modify/delete stuff hasn't been tested yet, and it hopelessly complex (yay ldap). (ldap_search_handler): act synchronous when ldap_search responds with -1. (view_destroy): use pas_book_view_notify_status_message. (ldap_op_process_current): same (ldap_op_process): same (poll_ldap): same (ldap_search_handler): same 2000-09-22 Chris Toshok * backend/ebook/e-card-simple.h: add E_CARD_SIMPLE_FIELD_FAMILY_NAME to the enum. * backend/ebook/e-card-simple.c (field_data): add E_CARD_SIMPLE_FIELD_FAMILY_NAME. (e_card_simple_get): add getter for FAMILY_NAME. 2000-09-22 Christopher James Lahey * backend/ebook/e-card.c: Made addresses be quoted printable again so that they will encode properly if they have carriage returns in them. This is possible now because of a fix in libversit. 2000-09-22 Christopher James Lahey * backend/ebook/e-book-view-listener.c, backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c, backend/ebook/e-book-view.h, backend/idl/addressbook.idl, backend/pas/pas-book-view.c, backend/pas/pas-book-view.h: Added a function to set the status message associated with a given view. This is not yet implemented in the gui. 2000-09-22 Christopher James Lahey * backend/ebook/e-book.c, backend/ebook/e-book.h, backend/idl/addressbook.idl, backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c, backend/pas-backend.c, backend/pas/pas-backend.h, backend/pas/pas-book.c, backend/pas/pas-book.h: Added a function to query static capabilities (capabilities that can be reported immediately) and implemented them in the 2 servers. * gui/component/addressbook.c: Added a View All button and a Stop button. Sorted out the new directory server stuff a bit. * gui/widgets/e-addressbook-model.c, gui/widgets/e-addressbook-model.h: Cleaned up a bit. Added a stop function. Check for capabilities before deciding whether to load all cards when initially viewed. * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h: Added stop and view all functions. * gui/widgets/e-minicard-view-widget.c, gui/widgets/e-minicard-view-widget.h, gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h: Added a stop function. Check for capabilities before deciding whether to load all cards when initially viewed. 2000-09-21 Michael Meeks * gui/component/addressbook.c (control_activate): remove _UIHandler 2000-09-21 Christopher James Lahey * backend/ebook/load-pine-addressbook.c: Added a missing include of ctype.h. * backend/pas/pas-backend-file.c: Fixed a problem where using a GList was causing us to not be reentrant. We now use an EList here and so now this is reentrant. This should fix the "wombat crashes every time you run evolution" bug. * contact-editor/e-contact-editor.c: Fixed a type mismatch. 2000-09-21 Christopher James Lahey * backend/ebook/load-pine-addressbook.c: Make this work when a field is spread across multiple lines. 2000-09-20 Christopher James Lahey * backend/ebook/e-card.c, backend/ebook/e-card.h: Added a wants_html field to cards. Uses "x-mozilla-html". * contact-editor/Makefile.am: Added definition of EVOLUTION_DATADIR. * contact-editor/contact-editor.glade: Make Wants HTML check button visible. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Make Wants HTML check button active. Fix UI stuff to use XML. Set parent window of confirm_delete dialog. * gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c: Set the parent window of the confirm_delete dialog. 2000-09-20 Christopher James Lahey * gui/widgets/e-addressbook-view.c: Fixed display of the minicards when the addressbook was first loading. (It was overwriting a string with NULL during init.) 2000-09-19 Dan Winship * gui/search/Makefile.am (ruledir): Use $(datadir), not $(prefix)/share 2000-09-18 Christopher James Lahey * backend/ebook/Makefile.am, contact-editor/Makefile.am, ename/Makefile.am, gui/component/Makefile.am, gui/widgets/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and $(EXTRA_GNOME_LIBS). Removed unneeded libraries. * backend/ebook/e-card.c, backend/pas/pas-backend-file.c, contact-editor/e-contact-editor-address.c, contact-editor/e-contact-editor-categories.c, contact-editor/e-contact-editor-categories.h, contact-editor/e-contact-editor-fullname.c, contact-editor/e-contact-editor.c, contact-editor/e-contact-save-as.c, ename/e-address-western.c, ename/test-ename-western-gtk.c, gui/component/addressbook-factory.c, gui/component/addressbook.c, gui/component/e-cardlist-model.h, gui/component/e-ldap-storage.c, gui/component/select-names/e-select-names-bonobo.c, gui/component/select-names/e-select-names-manager.c, gui/component/select-names/e-select-names-model.c, gui/component/select-names/e-select-names-table-model.c, gui/component/select-names/e-select-names-table-model.h, gui/component/select-names/e-select-names-text-model.h, gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h, gui/search/e-addressbook-search-dialog.c, gui/widgets/e-addressbook-model.h, gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-label.c, gui/widgets/e-minicard-view-widget.c, gui/widgets/e-minicard-view-widget.h, gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h, gui/widgets/e-minicard-widget.h, gui/widgets/e-minicard.c, gui/widgets/test-minicard-label.c, gui/widgets/test-reflow.c, printing/e-contact-print.c: Fixed the #include lines to deal properly with gal. 2000-09-15 Christopher James Lahey * contact-editor/e-contact-editor.h, contact-editor/e-contact-save-as.h, gui/widgets/e-addressbook-model.h, gui/widgets/e-minicard-view-widget.h, gui/widgets/e-minicard-view.h, gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Fixed the paths of some .h #includes. * gui/component/addressbook.c: Removed all of the code to actually create and display the correct view of the addressbook and moved it to the new class gui/widgets/e-addressbook-view.c. * gui/widgets/Makefile.am: Added everything necessary for e-addressbook-view.c and e-addressbook-view.h. * gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h: New class to deal with actual display of addresses and switching between card view and table view. * gui/widgets/e-minicard-view-widget.c: Made this deal more gracefully with having the book set to NULL. 2000-09-16 Michael Meeks * gui/component/select-names/e-select-names.c: fix broken include. * gui/component/Makefile.am (INCLUDES): define datadir. (evolution_addressbook_SOURCES): remove e-addressbook-model.[ch] * gui/component/addressbook.c (control_activate): use datadir. 2000-09-16 Ettore Perazzoli * gui/widgets/Makefile.am (gladedir): Define. (glade_DATA): Install `alphabet.glade'. (EXTRA_DIST): Define. * gui/component/Makefile.am (glade_DATA): Remove `alphabet.glade'. (EXTRA_DIST): Remove `alphabet.glade.h'. * gui/widgets/Makefile.am (libeminicard_a_SOURCES): Add `e-addressbook-model.c' and `e-addressbook-model.h'. I hope this is what Chris meant to do. * gui/component/Makefile.am (INCLUDES): Add `-I$(top_srcdir)/addressbook/gui/widgets'. (evolution_addressbook_SOURCES): Remove `e-addressbook-model.c' and `e-addressbook-model.h'. * gui/component/select-names/e-select-names.c: #include "e-addressbook-model.h" from "addressbook/gui/widgets" instead of "addressbook/gui/component", as it has been moved there. 2000-09-15 Chris Toshok * backend/pas/pas-backend-ldap.c: split all the ldap operations into 2 halves, a handler, and destructor, and create a structure containing two function pointers and any data they need. this allows us queue up pending operations (since the LDAP*'s are no longer view specific. there's one per backend.) also, add support for restarting async operations if the SERVER DOWN error isn't communicated until sometime after the handler is called (as is the case with the async search stuff.) 2000-09-14 Dan Winship * gui/component/addressbook-factory.c (main): Call unicode_init for e-font stuff. 2000-09-14 Christopher James Lahey * contact-editor/Makefile.am, gui/widgets/Makefile.am: Added $(GNOME_PRINT_LIBS) to all of the test files in these directories. 2000-09-14 Michael Meeks * gui/component/Makefile.am (evolution_addressbook_LDADD): fix path. * gui/component/addressbook.c: update include. * gui/component/addressbook-factory.c: update include. * gui/widgets/e-minicard-view.h: update include. * gui/search/e-addressbook-search-dialog.c: update include path. 2000-09-13 Michael Meeks * contact-editor/e-contact-editor.c (e_contact_editor_init): hack. (create_toolbar): ditto. 2000-09-07 Michael Meeks * gui/component/addressbook.c: Radicaly update UI handler code. 2000-09-13 Christopher James Lahey * gui/widgets/*, gui/minicard/*: Moved gui/minicard to gui/widgets, except for e-reflow.c, e-reflow.h, e-reflow-sorted.c, and e-reflow-sorted.h. * gui/widgets/Makefile.am: Added e-reflow to the INCLUDES list and libereflow.a to a bunch of LDADD lines. * gui/component/Makefile.am (evolution_addressbook_LDADD): Added libereflow.a here. * gui/Makefile.am (SUBDIRS): Replaced minicard with widgets. 2000-09-12 Ettore Perazzoli * gui/component/select-names/Makefile.am: Add space after `-I' when invoking `orbit-idl'. 2000-09-12 Ettore Perazzoli * gui/component/Makefile.am (EXTRA_DIST): Remove `ui.xml'. 2000-09-11 Christopher James Lahey * contact-editor/e-contact-editor.c: Fixed a crash error. 2000-09-11 Christopher James Lahey * ename/e-address-western.c: Fixed some warnings. 2000-09-11 Jesse Pavel * ename/e-address-western.c: fixed certain address parsing problems. 2000-09-11 Christopher James Lahey * contact-editor/fulladdr.glade: Made this a bit better balanced. * gui/component/addressbook.c: Make the toolbar button for find do the same thing that the menu item for search does. * gui/search/e-addressbook-search-dialog.c: Made the top half of this not expand. 2000-09-11 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: Removed a bunch of redundant code. Made it so that when you set an address label, it sets the delivery address as well. Added functions to set and get the delivery address. * backend/ebook/e-card.c, backend/ebook/e-card.h: Added code to convert and address label to a delivery address. * contact-editor/Makefile.am: Added e-contact-editor-address.[ch], fulladdr.glade, fulladdr.glade.h. * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Switched from a label to a button to show the parsed address. * contact-editor/e-contact-editor-address.c, contact-editor/e-contact-editor-address.h: New class to implement the parsed address dialog. * contact-editor/e-contact-editor-fullname.c, contact-editor/e-contact-editor-fullname.h: Added const to the _new function. * contact-editor/e-contact-editor.c: Implemented clicking on the address button. * contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h: New glade files for the parsed address dialog. * contact-editor/fullname-strings.h, fullname.glade: Changed these accellabels to labels. * ename/Makefile.am: Added e-address-western.c. * ename/e-address-western.c: Fixed some warnings. 2000-09-10 Christopher James Lahey * ename/e-address-western.c: Added by Jesse. 2000-09-08 Lauris Kaplinski * gui/minicard/e-minicard-label.c (e_minicard_label_construct): Use canvas default font * gui/minicard/e-minicard.c (e_minicard_realize): Ditto (get_left_width): Ditto 2000-09-08 Christopher James Lahey * contact-editor/e-contact-editor-categories.c: Fixed a few warnings. 2000-09-02 Lauris kaplinski * contact-editor/e-contact-editor-categories.c: e_utf8 wrappers * contact-editor/e-contact-editor.c: e_utf8 wrappers 2000-09-01 Ettore Perazzoli * gui/component/e-ldap-storage.c (load_ldap_data): Updated for the extra arg now needed by `evolution_storage_new_folder()'. (e_ldap_storage_add_server): Likewise. 2000-08-31 Ettore Perazzoli * conduit/Makefile.am (INCLUDES): Add `BONOBO_GNOME_CFLAGS' and `-I$(top_srcdir)'. 2000-08-31 Christopher James Lahey * backend/ebook/Makefile.am: Install load-gnomecard-addressbook and load-pine-addressbook. 2000-08-30 Lauris Kaplinski * printing/e-contact-print.c: Countless small changes for gnome-print 0.21+ 2000-08-30 Dan Winship * gui/component/addressbook.oafinfo: Add a name to the minicard viewer. 2000-08-29 Dan Winship * backend/ebook/e-book.c: * backend/ebook/test-client.c: * backend/ebook/test-client-list.c: * backend/ebook/load-gnomecard-addressbook.c: * backend/ebook/load-pine-addressbook.c: * backend/pas/pas-book-factory.c: * conduit/address-conduit.h: Remove USING_OAF checks 2000-08-28 Christopher James Lahey * gui/component/addressbook.c: Use the right argument name to turn on grid lines. 2000-08-26 JP Rosevear * gui/minicard/Makefile.am: Comment out minicard-view-test since its gnorba dependent 2000-08-26 JP Rosevear * gui/component/addressbook-component.c: Remove gnorba stuff * gui/minicard/e-minicard-control.c (e_minicard_control_factory_init): ditto * gui/component/addressbook.c: ditto * gui/component/addressbook-factory.c: ditto 2000-08-25 Christopher James Lahey * demo/* Removed the demo directory since it's no longer used. 2000-08-26 JP Rosevear * gui/minicard/Makefile.am: Remove gnorba stuff * gui/minicard/e-minicard-control.gnorba: Kill 2000-08-26 JP Rosevear * gui/component/addressbook.gnorba: Kill * gui/component/Makefile.am: Remove gnorba stuff 2000-08-25 Dan Winship * gui/component/Makefile.am (evolution_addressbook_LDFLAGS): Add -export-dynamic so libglade will be able to resolve custom widget callbacks. 2000-08-23 Lauris Kaplinski * backend/pas/pas-backend-file.c (func_contains): Use e_utf8_strstrcase * contact-editor/e-contact-editor-fullname.c (fill_in_field): Use e_utf8 wrapper (extract_field): Same * contact-editor/e-contact-editor.c (full_name_clicked): Don't crash * ename/Makefile.am: Link demo with libeutil.la * ename/test-ename-western-gtk.c (full_changed_cb): Use e_utf8 wrapper * gui/component/addressbook.c (find_contact_cb): Use e_utf8 wrapper (search_entry_activated): Same 2000-08-22 Christopher James Lahey * gui/search/e-addressbook-search-dialog.c: Fix an error in the arguments to rule_context_load. * backend/ebook/e-card.c: Fix this to not mess up if the person passes a VCard with a carriage return in the mailing address. 2000-08-14 Not Zed * gui/search/addresstypes.xml: Fixed fullname->full_name for search field. * gui/search/e-addressbook-search-dialog.c (get_widget): Check we actually got any parts to build the dialogue with. 2000-08-13 Not Zed * gui/component/addressbook-component.c (owner_set_cb): Set the global_shell_client nastyhack when we know it. This is only required to link with the filter code ... * gui/component/Makefile.am (evolution_addressbook_LDADD): Added libfilter.a to the link line. * gui/search/Makefile.am (noinst_LIBRARIES): Change library name from libaddressbooksearchdialog to libaddressbooksearch, as used elsewhere. * gui/search/e-addressbook-search-dialog.c (get_widget): Implement. (get_query): Likewise. (e_addressbook_search_dialog_destroy): Unref filter stuff when done. * gui/component/addressbook.c (control_deactivate): Added chris's patch to put the meny in 2000-08-22 Lauris Kaplinski * contact-editor/e-contact-editor.c: Use e_utf8 wrappers everywhere 2000-08-22 Christopher James Lahey * backend/e-card.h: Started adding a time zone field to ECard. * gui/component/e-addressbook-model.c: Added e_table_model_pre_change where appropriate. * gui/minicard/e-minicard-control.c: Added a ref and unref pair. 2000-08-22 Christopher James Lahey * gui/component/addressbook.c: Linked in the search dialog again. It looks like some changes in the shell made this not work. 2000-08-19 Christopher James Lahey * conduit/address-conduit.c, conduit/address-conduit.h: Changed this to use ECardSimple. * contact-editor/e-contact-editor.c: Fixed a memory leak. * gui/component/addressbook.c: Added stuff to the right click menu. Activated the new search dialog that doesn't quite work yet. * gui/minicard/e-minicard-view.c: Fixed some run time warnings. 2000-08-15 Larry Ewing * gui/minicard/e-minicard.c (e_minicard_event): use style colors for the selected state. This doesn't properly redraw the minicard when there is a style_change event, that is next. (e_minicard_realize): use style colors. 2000-08-14 Peter Williams * backend/pas/pas-backend-file.c: Include the proper db1/db.h as in RedHat 7.0 -- patch from Kenny Graunke 2000-08-13 Chris Toshok * conduit/Makefile.am (libaddress_conduit_la_SOURCES): add address-conduit.h * Makefile.am (CONDUIT_SUBDIR): only set subdir if ENABLE_PILOT_CONDUITS is set. 2000-08-13 Chris Toshok * Makefile.am (SUBDIRS): add conduit subdir. 2000-08-13 Chris Toshok * conduit/address-conduit.c (conduit_get_gpilot_conduit): add special oaf initialization hack so conduit can find wombat, and accept all cookies so that we can actually talk to oaf. 2000-08-13 Christopher James Lahey * backend/pas/pas-backend-file.c: Fixed a typo that cause the wrong field to be searched. * gui/component/select-names/e-select-names.c: Made the select names dialog only display entries with email addresses. 2000-08-12 Christopher James Lahey * contact-editor/contact-editor.glade: Fixed a typo in the name of the first phone entry. 2000-08-12 Christopher James Lahey * gui/search/Makefile.am, gui/search/e-addressbook-search-dialog.c, gui/search/e-addressbook-search-dialog.h: A few small interface fixes. * gui/component/Makefile.am: Link in the addressbook search dialog. 2000-08-12 Christopher James Lahey * gui/Makefile.am: Added the search directory. * backend/ebook/e-book.c: Fixed a potential crash. * gui/minicard/e-reflow-sorted.h: Fixed an include line. * gui/search/.cvsignore, gui/search/Makefile.am: New files. * gui/search/e-addressbook-search-dialog.c: Fixed compilation. 2000-08-12 Christopher James Lahey * printing/Makefile.am: Ettore fixed compilation. 2000-08-12 Christopher James Lahey * backend/ebook/.cvsignore: Added load-gnomecard-addressbook. 2000-08-12 Christopher James Lahey * gui/search/e-addressbook-search-dialog.c, gui/search/e-addressbook-search-dialog.h: Made this into a Gtk object. 2000-08-12 Christopher James Lahey * backend/pas/pas-book-view.c: Ref our book view listener. * gui/component/addressbook.c: Updated to use new minicard view widget. * gui/minicard/Makefile.am: Added e-minicard-view-widget.c and e-minicard-view-widget.h. * gui/minicard/e-minicard-view-widget.c, gui/minicard/e-minicard-view-widget.h: New class that's just a minicard view in an ECanvas. * gui/search/e-addressbook-search-dialog.c: New file for implementing a search dialog. 2000-08-11 Chris Toshok * conduit/address-conduit.c (transmit): implement code to encode the first email address and send to the pilot. (get_phone_label_by_flag): rename find_phone_label_for_flags to this, and implement by calling get_phone_label_by_name. 2000-08-11 Chris Toshok * conduit/address-conduit.c (ecard_from_remote_record): add code for handling email addresses from pilot (which stores it as a phone number entry. go figure.) (check_for_slow_setting): #if 0 out, since we don't use it (yet). (update_record): un #if 0 the code to handle the case where the pilot info has changed for a local record. (merge_ecard_with_remote_record): implement function, but for now just return the existing (desktop) record - we still don't allow merge from the pilot. 2000-08-10 Christopher James Lahey * gui/search/addresstypes.xml: Changed a couple of input field names. 2000-08-10 Ettore Perazzoli * gui/component/addressbook-component.c: Remove prototype for `setup_ldap_storage()', which shouldn't be here anyway. 2000-08-10 Christopher James Lahey * gui/search/, gui/search/addresstypes.xml: New search dialog for addressbook. 2000-08-10 Dan Winship * gui/component/addressbook-component.c (owner_set_cb): Update for changed prototype, pass evolution_homedir arg to setup_ldap_storage. * gui/component/e-ldap-storage.c (setup_ldap_storage): Now takes an evolution_homedir arg, uses that to generate the path to the ldapservers.xml file, and stores the result in a static variable. (e_ldap_storage_add_server, e_ldap_storage_remove_server): Use that static variable rather than hardcoding the path to the file. 2000-08-10 Christopher James Lahey * backend/pas/pas-backend-file.c: Fixed any search to not crash on missing phone numbers or email addresses. 2000-08-09 Christopher James Lahey * gui/minicard/e-minicard-control.c: Added a button to save to your addressbook. 2000-08-09 Cody Russell * gui/component/addressbook.c: Make the toolbar honor the user's gnomecc settings for detachable toolbars. 2000-08-09 Nat Friedman * ename/e-name-western-tables.h: Added some military prefixes. 2000-08-09 Christopher James Lahey * gui/component/addressbook.c: Fixed a warning. 2000-08-09 Ettore Perazzoli * gui/component/addressbook.c (control_activate): Add the stock print icon to the print item. 2000-08-09 Ettore Perazzoli * gui/component/addressbook.c (control_activate): Put the print item in the right placeholder so that it gets the right position in the "File" menu. (control_deactivate): Updated accordingly. 2000-08-09 Christopher James Lahey * gui/component/addressbook.c, gui/minicard/e-minicard.c: Changed e_popup_menu_run call to match the new arguments. * gui/component/addressbook.oafinfo: Fixed this file to work properly. * gui/minicard/e-minicard-control.c: Use the correct oafinfo ID here. Also cleaned up the code a bit with the help of Michael Meeks. 2000-08-08 Chris Toshok * gui/component/e-addressbook-model.c (e_addressbook_model_init): use x-evolution-any-field. * gui/component/addressbook.c (search_entry_activated): use x-evolution-any-field. (change_view_type): same. * gui/minicard/e-minicard-view.c (e_minicard_view_init): set query to x-evolution-any-field. * backend/pas/pas-backend-ldap.c (func_contains): support x-evolution-any-field for matching any evolution supported field. * backend/pas/pas-backend-file.c (compare_email): switch to using ECardSimple calls. (compare_phone): same. (compare_address): same. (entry_compare): switch to using ECardSimple calls, and support a 'x-evolution-any-field' wildcard field. (vcard_matches_search): use an ECardSimple. 2000-08-07 Christopher James Lahey * contact-editor/e-contact-editor.c: Removed the next and prev toolbar buttons since they don't do anything. 2000-08-07 Christopher James Lahey * contact-editor/contact-editor.glade, contact-editor/e-contact-editor.c: Fixed the tab order to not repeat the web page address field. 2000-08-07 Christopher James Lahey * contact-editor/e-contact-editor.c: Fixed the tab order for this dialog. 2000-08-05 Christopher James Lahey * backend/ebook/e-card-simple.c: Fixed a warning. * backend/ebook/e-card.c: Cast to (char *) in e_card_load_cards_from_file since libversit isn't const correct. * backend/pas/pas-backend-file.c: Fixed a warning. 2000-08-04 Michael Meeks * gui/component/addressbook.c (control_activate): unref. * demo/addressbook.c (control_activate): unref. 2000-08-02 Christopher James Lahey * contact-editor/e-contact-editor-categories.c, gui/component/e-addressbook-model.c: Emit "model_pre_change" signal as appropriate. 2000-08-02 Christopher James Lahey * gui/component/e-addressbook-model.c: Adapted this to supply the new append_row API of ETableModel. 2000-07-31 Christopher James Lahey * gui/component/addressbook.c: Changed the default set of columns. 2000-07-29 Christopher James Lahey * backend/ebook/Makefile.am: Added load-gnomecard-addressbook compilation. * backend/ebook/e-card.c, backend/ebook/e-card.h: Added e_card_load_cards_from_file helper function to load multiple cards from a single file. * backend/ebook/load-gnomecard-addressbook.c: New file to load vcard files. I think this is the format that gnomecard uses so if you copy your gnomecard file to gnomecard.vcf and then run this program in the same directory, it'll copy all your gnome contacts into evolution. It needs to be changed to take a filename as a parameter. Some fields (phone and address information, for example) aren't displayed properly, but are saved. This is new code, so some other than phone and address may be lost. 2000-07-28 Ettore Perazzoli * backend/pas/Makefile.am: Add `pas-backend-ldap.c' and `pas-backend-ldap.h' to `EXTRA_DIST' so they get distributed even if the OpenLDAP support is not enabled. 2000-07-27 Christopher James Lahey * backend/ebook/load-pine-addressbook.c: Changed the URI to load to. 2000-07-26 Christopher James Lahey * gui/minicard/e-minicard-widget-test.c: Fixed a warning. 2000-07-26 Chris Toshok * backend/pas/pas-backend-ldap.c (view_destroy): wait to free the view until we've taken care of freeing its internals. also, close the ldap connection here. (pas_backend_ldap_connect): rename p_b_l_ensure_connected to this, since it's always called when we create a view. (pas_backend_ldap_build_all_cards_list): open an ldap connection in this function and close it at the end. (poll_ldap): make sure to call ldap_unbind to close the view's connection here. (pas_backend_ldap_search): call pas_backend_ldap_connect here - ldap_unbind will either be called from poll_ldap or from view_destroy. (pas_backend_ldap_get_vcard): the PASBackendLDAP no longer has an LDAP*. 2000-07-26 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_all_cards_list): add support for user settable scope. (pas_backend_ldap_search): same. (pas_backend_ldap_load_uri): same. 2000-07-26 Dan Winship * gui/component/addressbook.oafinfo: lowercasify the supported_mime_types 2000-07-25 Chris Toshok * backend/ebook/e-card-types.h: add enum for e-card pilot status. * conduit/address-conduit.c: #ifdef out all the archiving code with SUPPORT_ARCHIVING. (purge): implement correctly - deleting ecards whose pilot status is DELETED. (set_status): implement. (set_pilot_id): add gtk_main call here to change commit_card into a synchronous (delete_all): implement correctly - don't delete the records, just set their status to DELETED. (local_record_from_ecard): get the current status from the ecard. * backend/ebook/e-card.c (e_card_get_vcard): add vcard support for pilot status. (parse_pilot_status): new function. (e_card_class_init): add pilot status object arg. (e_card_set_arg): add pilot status support. (e_card_get_arg): same. (e_card_init): initialize pilot_status to 0. 2000-07-25 Chris Toshok * conduit/address-conduit.c: add comment headers to signals that didn't have any. 2000-07-25 Chris Toshok * conduit/address-conduit.c (start_address_server): use the user's Contact db. not toshok's. 2000-07-25 Michael Meeks * backend/ebook/load-pine-addressbook.c (book_open_cb): check we opened ok. 2000-07-25 Seth Alves * ename/Makefile.am (libename_static_la_LDFLAGS): build static version of the library for address conduit to use * backend/ebook/Makefile.am: build a static version of the library to link into the conduit 2000-07-25 Christopher James Lahey * backend/ebook/e-card.c: Added a #define for "X-EVOLUTION-PILOTID". Added a parse_pilot_id to read pilot id's in properly from VCards. Rearranged some field orders. Added a get_arg case for ARG_PILOTID. Initialize pilot_id field to 0. 2000-07-24 Chris Toshok * backend/ebook/e-card.h: add pilot_id. * backend/ebook/e-card.c (e_card_get_vcard): add support for X-EVOLUTION-PILOTD vcard field. (e_card_class_init): add pilot_id arg. (e_card_set_arg): handle pilot_id arg. 2000-07-23 Christopher James Lahey * backend/ebook/e-book-view-listener.c: Remove the idle handler when we're destroyed. * printing/e-contact-print.c: Fixed the spacing on the card header. 2000-07-20 Christopher James Lahey * gui/component/addressbook.oafinfo: Fixed the oaf info. * gui/minicard/.cvsignore, gui/minicard/Makefile.am, gui/minicard/e-minicard-widget-test.c: Added a test for the minicard widget. * gui/minicard/e-minicard-control.c: Fixed the mime type. * gui/minicard/e-minicard.c: Fixed some crashes if your parent isn't a minicard view. * gui/minicard/e-minicard-control.oafinfo: Removed. 2000-07-20 Ettore Perazzoli * gui/component/addressbook-component.c (factory_fn): Update for the new `evolution_shell_component_new()'. 2000-07-19 Fatih Demir * conduit/address-conduit-control-applet.desktop: Added the Turkish desktop entry. 2000-07-18 Christopher James Lahey * gui/minicard/e-minicard-control.c: Added "text/vCard" to the list of mime types we support. 2000-07-18 Christopher James Lahey * gui/minicard/Makefile.am: Added gui/minicard/e-minicard-control.c, gui/minicard/e-minicard-control.h, gui/minicard/e-minicard-widget.c, and gui/minicard/e-minicard-widget.h. * gui/minicard/e-minicard-control.c, gui/minicard/e-minicard-control.h, gui/minicard/e-minicard-widget.c, gui/minicard/e-minicard-widget.h: Got these to compile. * gui/minicard/e-minicard-control.gnorba, gui/minicard/e-minicard-control.oafinfo: Copied directly from bonobo-clock-control. These aren't done yet. 2000-07-18 Christopher James Lahey * gui/minicard/e-minicard-control.c, gui/minicard/e-minicard-control.h, gui/minicard/e-minicard-widget.c, gui/minicard/e-minicard-widget.h: New files for using a minicard as a widget or a bonobo control. 2000-07-14 Chris Toshok * gui/component/e-ldap-storage.c (ldap_server_foreach): duh. don't save the port in the host slot either. 2000-07-13 Christopher James Lahey * contact-editor/e-contact-editor-confirm-delete.glade, contact-editor/e-contact-editor-confirm-delete.glade.h: Added these. 2000-07-13 Christopher James Lahey * Makefile.am: Switched the order of compilation of printing and contact-editor. * contact-editor/Makefile.am: Added printing libraries and a confirm delete dialog glade file. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Enabled the delete and print functions as well as providing a confirm delete dialog to the outside world. * gui/component/addressbook.c: Made the delete button on new cards active. * gui/minicard/Makefile.am: Added printing libraries to a number of test programs. * gui/minicard/e-minicard.c: Added print and delete to the right click menu. Made the delete button on the card editor active. * printing/e-contact-print.c, printing/e-contact-print.h: Added a function to print a single card. 2000-07-12 Chris Toshok * gui/component/e-ldap-storage.c (ldap_server_foreach): oops. fix typo that was saving the port in the rootdn spot. (save_ldap_data): make this a bit safer - writing to a new file and renaming it. (load_ldap_data): make this a bit smarter - if parsing the ldapservers.xml file fails and there's a .new file there, rename it. 2000-07-12 Christopher James Lahey * backend/pas/pas-backend-file.c: Do case insensitive compares. * addressbook/gui/component/addressbook.c: Make quick search search both name and company name. 2000-07-12 Christopher James Lahey * contact-editor/e-contact-editor.c: Add icons to the toolbars. 2000-07-12 Christopher James Lahey * contact-editor/Makefile.am: Added installation of arrow.png. * contact-editor/e-contact-editor.c: Use EVOLUTIONDIR #define. 2000-07-11 Christopher James Lahey * gui/component/addressbook.c: Removed an unused function 2000-07-10 Dan Winship * gui/component/select-names/Makefile.am (EXTRA_DIST): add idl file to EXTRA_DIST 2000-07-10 Ettore Perazzoli * gui/component/addressbook.c (control_activate): Remove the SelectNames test. 2000-07-10 Peter Williams * gui/component/select-names/e-select-names-model.c: (Clahey's fix) Make multiple addresses be concatenated correctly. 2000-07-09 Christopher James Lahey * gui/component/addressbook.c, gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h: Switched from ETable to ETableScrolled. * addressbook/gui/minicard/e-minicard.c: Don't display mailer or "name or org" fields. 2000-07-09 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: Added a field that gives the name if it exists and the company name otherwise. * gui/component/e-addressbook-model.c: Formatting changes. * gui/component/select-names/e-select-names-table-model.c: Added stripping of names and display of company name if name doesn't exist. * gui/component/select-names/e-select-names.c: Fixed up the display so that we display both name and email address. 2000-07-09 Christopher James Lahey * gui/component/select-names/e-select-names-model.c: Fixed a small off by one error that was causing an extra character to get deleted sometimes. 2000-07-09 Anders Carlsson * gui/minicard/test-reflow.c (allocate_callback): Fix off by one bug with scroll region setting. (resize): Likewise. (main): Put the contacts list in an EScrolledFrame instead of using a separate GtkScrollbar. * gui/minicard/e-reflow.c (e_reflow_event): Don't change mouse cursor and don't allow drags on dividers that aren't visible. * gui/component/addressbook.c (allocate_callback): Fix off by one bug with scroll region setting. (resize): Likewise. (create_minicard_view): Put the contacts list in an EScrolledFrame instead of using a separate GtkScrollbar. 2000-07-09 Christopher James Lahey * gui/component/addressbook.c: Removed unused do_nothing_cb function. * gui/component/select-names/e-select-names-manager.c, gui/component/select-names/e-select-names-manager.h: Made the OK and Cancel buttons in the ESelectNames dialog we create work properly. * gui/component/select-names/e-select-names-model.c, gui/component/select-names/e-select-names-model.h: Added e_select_names_model_duplicate. * gui/component/select-names/e-select-names-text-model.c: Made the text be set correctly if there's already data in the source when the text model is created. * gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h: Removed handling of the buttons (the user of this dialog will have to handle them.) Added e_select_names_get_source. Fixed some typos. 2000-07-09 Not Zed * gui/component/addressbook.c: Link the toolbar print button to the print callback. 2000-07-08 Christopher James Lahey * gui/component/select-names/e-select-names.c (e_select_names_clicked): Hitting OK or Cancel at least closes the dialog now. 2000-07-08 Christopher James Lahey * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_create_entry): Set the returned entry to use the ellipsis. 2000-07-08 Christopher James Lahey * gui/component/addressbook-factory.c: Include e-select-names-factory.h. * gui/component/select-names/e-select-names-model.c: Handle a NULL iterator properly in the replace function. * gui/component/select-names/e-select-names-table-model.c: Fill in info properly in the value_at function. * gui/component/select-names/e-select-names-text-model.c: Don't strlen a NULL text object. * gui/component/select-names/e-select-names.c: Close if the person hits ok or cancel (doesn't yet actually undo changes if Cancel is hit.) Handle removing addresses when they're double clicked on. * gui/component/select-names/select-names.glade, gui/component/select-names/select-names.glade.h: Hid some unused fields and changed the text at the top of the dialog. 2000-07-08 Jeffrey Stedfast * gui/component/select-names/.cvsignore: Ignore dynamically created source files 2000-07-08 Ettore Perazzoli * gui/component/select-names/e-select-names-bonobo.c (entry_get_property_fn): New function to set the properties. 2000-07-08 Ettore Perazzoli * gui/component/addressbook-factory.c (main): Start up the factory for `Evolution::Addressbook::SelectNames'. * gui/component/select-names/evolution-addressbook-select-names.oafinfo: New. * gui/component/select-names/e-select-names-factory.c: New. * gui/component/select-names/e-select-names-factory.h: New. * gui/component/select-names/e-select-names-bonobo.c: New. * gui/component/select-names/e-select-names-bonobo.h: New. * gui/component/addressbook-factory.c (main): Call `e_select_names_factory_init()'. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_add_section): Made const-aware. (e_select_names_manager_create_entry): Made const-aware. (e_select_names_manager_activate_dialog): Made const-aware. * gui/component/select-names/Evolution-Addressbook-SelectNames.idl: New. 2000-07-08 Christopher James Lahey * gui/component/e-addressbook-model.c, gui/component/e-addressbook-model.h: Added an "editable" argument. * gui/component/select-names/e-select-names.c: Set our EAddressModel to not be editable. 2000-07-07 Christopher James Lahey * gui/component/select-names/e-select-names.c: Changed to line mode. 2000-07-07 Christopher James Lahey * gui/component/select-names/e-select-names-manager.c, gui/component/select-names/e-select-names-model.c: Implemented the get_cards function. * gui/component/select-names/e-select-names.c: Implemented adding cards through the interface. 2000-07-07 Christopher James Lahey * gui/component/select-names/e-select-names-manager.c: Make the entry widgets we create editable. * gui/component/select-names/e-select-names-model.c: Use e_strsplit instead of g_strsplit. Fixed an off by 1 error. * gui/component/select-names/e-select-names-table-model.c: When the model changes, send a model changed signal. * gui/component/select-names/e-select-names-text-model.c: Made changing this work correctly if it's empty. Made change signals propagate properly. Is a bit better about freeing iterators when done. * gui/component/select-names/e-select-names.c: Made the finished lists be in order instead of being sorted. 2000-07-07 Christopher James Lahey * gui/component/addressbook.c (new_server_cb): Since ELDAPServer->port is a char *, allocate a string with the number 389 contained. * gui/component/addressbook.c: Make the select names test test the new code instead of the old way of getting to an ESelectNames dialog. * gui/component/select-names/e-select-names-manager.c: Coded storing the model for each section, creating an entry and returning it, and for activating the dialog. Wrote a bit of the get_cards code, but not all of it. * gui/component/select-names/e-select-names-model.c, gui/component/select-names/e-select-names-model.h: Coded all of the code needed to make ESelectNamesTextModel work (it doesn't yet, but all the code should be there.) Removed E_SELECT_NAMES_MODEL_DATA_TYPE_SEPARATION_MATERIAL. * gui/component/select-names/e-select-names-table-model.c, gui/component/select-names/e-select-names-text-model.c: Changed these to compensate for removal of E_SELECT_NAMES_MODEL_DATA_TYPE_SEPARATION_MATERIAL. * gui/component/select-names/e-select-names-table-model.h, gui/component/select-names/e-select-names-text-model.h: Fixed some silly typos. * gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h: Added a parameter to add_section that lets you specify the source ESelectNamesModel. 2000-07-06 Chris Toshok * gui/component/e-ldap-storage.h: add scope to ELDAPServer, and make port a string. * gui/component/e-ldap-storage.c (load_ldap_data): don't load a uri, load all the bits and pieces and build up the uri when creating the folder, according to the openldap url format. (ldap_server_foreach): store out each of the individual uri pieces. (e_ldap_storage_remove_server): free the new fields. (get_string_value): if the text is empty, return the empty string instead of NULL. * gui/component/e-ldap-server-dialog.c (extract_server_info): port is a string now. (fill_in_server_info): port is a string now. 2000-07-06 Christopher James Lahey * contact-editor/e-contact-editor.c: Changed "FIXME: Save and Close" to "Save and Close". Removed some toolbar items that will never be used. * gui/component/select-names/e-select-names-model.c, gui/component/select-names/e-select-names-model.h: Added functions to allow you to modify the model (not implemented yet.) * gui/component/select-names/e-select-names-table-model.c, gui/component/select-names/e-select-names-table-model.h: Finished this. Doesn't support changing the model at all. * gui/component/select-names/e-select-names-text-model.c: Finished this. Changing the model by typing is done, but doesn't work since none of the functions in the base model are implemented. 2000-07-05 Chris Toshok * gui/component/addressbook.c (new_server_cb): call e_ldap_storage_add_server call. * gui/component/ldap-server-dialog.glade: add name row. * gui/component/e-ldap-server-dialog.h: remove the ELDAPServer type. * gui/component/e-ldap-server-dialog.c (extract_server_info): add support for the name-entry. * gui/component/e-ldap-server-dialog.c (fill_in_server_info): same. * gui/component/e-ldap-storage.h: add ELDAPServer type, and add prototypes for e_ldap_storage_add_server and e_ldap_storage_remove_server. * gui/component/e-ldap-storage.c (e_ldap_storage_add_server): new function, add it to our hash table, add a shell folder, and save out the metadata. (ldap_server_foreach): add the ldap server info under a "contactserver" node. (setup_ldap_storage): create our hashtable. 2000-07-05 Chris Toshok * gui/component/addressbook.c (set_prop): remove hack to read "uri" file from local directory. * gui/component/Makefile.am (evolution_addressbook_SOURCES): add e-ldap-storage.{c,h} * gui/component/addressbook-component.c (owner_set_cb): call setup_ldap_storage. * gui/component/e-ldap-storage.c (setup_ldap_storage): Register the LDAP storage and load the .xml file. (load_ldap_data): function to load our xml file. (save_ldap_data): function to save our xml file. * gui/component/e-ldap-storage.h: new file. 2000-07-03 Christopher James Lahey * gui/component/select-names/e-select-names-manager.c, gui/component/select-names/e-select-names-text-model.c, gui/component/select-names/e-select-names.c: Fixed more compile errors. 2000-07-03 Christopher James Lahey * gui/component/select-names/Makefile.am: Fixed compile error. 2000-07-03 Christopher James Lahey * backend/ebook/Makefile.am: Removed e-card-iterator.c, e-card-iterator.h, e-card-list-iterator.c, e-card-list-iterator.h, e-card-list.c, e-card-list.h. * backend/ebook/e-card-iterator.c, backend/ebook/e-card-iterator.h, backend/ebook/e-card-list-iterator.c, backend/ebook/e-card-list-iterator.h, backend/ebook/e-card-list.c, backend/ebook/e-card-list.h: Removed in favor or versions without the -card in the e-util directory since these classes are not specific to cards at all. * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h, backend/ebook/e-card.c, backend/ebook/e-card.h, backend/ebook/load-pine-addressbook.c, backend/ebook/test-card.c, backend/pas/pas-backend-file.c: Changed the references to e-card-list.c and friends to e-list.c and friends. * contact-editor/e-contact-editor.c: Added #include to fix a warning. * gui/component/Makefile.am: Moved a number of classes associated with the select-names object to the new select-names directory. * gui/component/addressbook.c: Changed the reference to e-select-names.h. * gui/component/e-select-names.c, gui/component/e-select-names.h, gui/component/select-names.glade, gui/component/select-names.glade.h: Moved these files into select-names/. * gui/component/select-names/.cvsignore, gui/component/select-names/Makefile.am, gui/component/select-names/e-select-names-manager.c, gui/component/select-names/e-select-names-manager.h, gui/component/select-names/e-select-names-model.c, gui/component/select-names/e-select-names-model.h, gui/component/select-names/e-select-names-table-model.c, gui/component/select-names/e-select-names-table-model.h, gui/component/select-names/e-select-names-text-model.c, gui/component/select-names/e-select-names-text-model.h, gui/component/select-names/e-select-names.c, gui/component/select-names/e-select-names.h, gui/component/select-names/recipient.glade, gui/component/select-names/select-names.glade, gui/component/select-names/select-names.glade.h: New files for select names dialog (e-select-names.c, e-select-names.h, select-names.glade, select-names.glade.h and recipient.glade moved from gui/component/.) 2000-06-29 Ettore Perazzoli * gui/component/addressbook-component.c (owner_set_cb): Get an EvolutionShellClient instead of an Evolution_Shell to match the changes in libeshell. 2000-06-28 Christopher James Lahey * gui/component/select-names/, gui/component/select-names/e-select-names-manager.c, gui/component/select-names/e-select-names-manager.h: New select names manager interface (Not complete.) 2000-06-26 Christopher James Lahey * contact-editor/e-contact-editor-categories.c, addressbook/gui/component/e-cardlist-model.c: Added value_to_string handlers. * demo/addressbook-widget.c, demo/demo.c: Removed usage of "x" and "y" arguments. * addressbook/gui/component/addressbook.c: Activated Click To Add and set the click to add message. * addressbook/gui/component/e-addressbook-model.c: Added value_to_string and append_row handlers. * addressbook/gui/component/e-select-names.c: Added a column. 2000-06-26 Chris Toshok * backend/pas/pas-backend-ldap.c (poll_ldap): remove spew. (pas_backend_ldap_ensure_connected): duh, don't access a pointer we know to be NULL. (query_prop_to_ldap): rename map_e_card_prop_to_ldap to this. easier to type. 2000-06-21 Christopher James Lahey * gui/minicard/test-minicard-label.c, gui/minicard/test-minicard.c, gui/minicard/test-reflow.c: Remove usage of "x" and "y" arguments. 2000-06-18 * contact-editor/Makefile.am (INCLUDES): Use `$(BONOBO_GNOME_CFLAGS)' so that we compile when Bonobo is not in the default GNOME prefix. 2000-06-17 Christopher James Lahey * gui/minicard/e-minicard-label.c, gui/minicard/e-minicard-label.h, gui/minicard/e-minicard.c: Made the left column of minicards not get any wider than the widest possible name. 2000-06-13 Ettore Perazzoli * gui/component/Makefile.am (SHELL_OBJS): Removed. (evolution_addressbook_LDADD): Link with `$(top_builddir)/shell/libeshell.a'. 2000-06-12 Federico Mena Quintero * contact-editor/e-contact-editor-categories.c: Removed the ETableModel thaw handler. * gui/component/e-cardlist-model.c: Likewise. 2000-06-11 Christopher James Lahey * gui/component/e-select-names.c: Fixed the widget reparenting. 2000-06-11 Christopher James Lahey * gui/component/Makefile.am: Added glade files. * gui/component/addressbook.c: Added a test of the Select Names functionality. * gui/component/e-addressbook-model.c: Made this class_init function a bit cleaner. * gui/component/e-select-names.c: Tested this and fixed some obvious errors. * gui/component/select-names.glade: The main window shouldn't be visible by default. 2000-06-11 Ettore Perazzoli * contact-editor/Makefile.am (contact_editor_test_LDADD): Link with libemiscwidgets.a. * gui/component/Makefile.am (evolution_addressbook_LDADD): Likewise. * gui/minicard/Makefile.am (minicard_test_LDADD): Likewise. (reflow_test_LDADD): Likewise. (minicard_view_test_LDADD): Likewise. 2000-06-10 Christopher James Lahey * gui/component/e-cardlist-model.c: Renamed a bunch of functions for better readability. * gui/component/e-select-names.c, gui/component/e-select-names.h: This should be a working dialog now. * gui/component/select-names.glade: Changed the name & creation function of the ETable here. 2000-06-10 Christopher James Lahey * gui/component/select-names.glade, gui/component/select-names.glade.h: Glade files for Select Names dialog. 2000-06-10 Christopher James Lahey * contact-editor/e-contact-editor.c: Do e_card_simple_sync and extract_info more often. * gui/component/addressbook.c: Added table printing code. 2000-06-09 Ettore Perazzoli * gui/component/addressbook-component.c (factory_fn): Pass NULL for the new args @create_folder_fn and @remove_folder_fn. 2000-06-08 Ettore Perazzoli * gui/component/addressbook-component.c (create_view): Updated for the new `EvolutionShellComponentCreateViewFn'. Return `EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDTYPE' if @type is not "contacts". 2000-06-08 Christopher James Lahey * contact-editor/e-contact-editor.c: Bind Save As to save the current view of the contact as a vcard. 2000-06-08 Federico Mena Quintero * contact-editor/e-contact-editor.c (save_card): Doh, sync the card simple and extract the card info. 2000-06-08 Federico Mena Quintero * contact-editor/e-contact-editor.h (EContactEditor): Now this derives from GtkObject. It follows the same strategy as the EventEditor in the calendar. (EContactEditor): Added an is_new_card field so that we can know whether to add() or commit() the card. * contact-editor/e-contact-editor.c (e_contact_editor_get_type): Derive from GtkObject. (e_contact_editor_class_init): Likewise. (e_contact_editor_class_init): Added an "is_new_card" argument. (e_contact_editor_set_arg): Handle ARG_IS_NEW_CARD. (e_contact_editor_get_arg): Likewise. (e_contact_editor_new): Take in an is_new_arg argument and set it on the object. (e_contact_editor_init): Load the app widget into the app field of the EContactEditor structure. Create its UIHandler as well. (e_contact_editor_class_init): New "add_card", "commit_card", and "editor_closed" signals. * contact-editor/test-editor.c (main): Modified for the new API. (editor_closed_cb): Tweaked for the new API. Since this test program does not use Bonobo, it doesn't work, though. * gui/component/addressbook.c (new_contact_cb): Use the new contact editor API. (table_double_click): Ditto. * gui/minicard/e-minicard-view.c (e_minicard_view_event): Use the new contact editor API. * gui/minicard/e-minicard.c (e_minicard_event): Use the new contact editor API. 2000-06-08 Ettore Perazzoli * contact-editor/Makefile.am (contact_editor_test_LDADD): Remove the `$(srcdir)/' prefix from `libecontacteditor.a' because [of course] the library is built in the build directory, not in the source directory. * gui/minicard/Makefile.am (minicard_test_LDADD): Likewise with `libeminicard.a'. (minicard_label_test_LDADD): Likewise. (reflow_test_LDADD): Likewise. (minicard_view_test_LDADD): Likewise. 2000-06-06 Christopher James Lahey * gui/component/addressbook.c: Bind right click on the ETable to "Save to VCard." 2000-06-02 Christopher James Lahey * contact-editor/e-contact-editor.c: Made phone/email/address labels change correctly again. 2000-06-02 Christopher James Lahey * gui/component/addressbook-component.c: Made evolution-addressbook shut down when the shell is done with it. 2000-06-02 Christopher James Lahey * gui/minicard/e-minicard-view.c, gui/minicard/e-minicard.c: Made double click only work on the first button. 2000-06-01 Christopher James Lahey * gui/minicard/e-minicard.c: return TRUE if opening a contact editor so that we don't get a "new dialog" contact editor. 2000-06-01 Ettore Perazzoli * gui/component/addressbook.c (new_contact_cb): Use the stock cancel button for the dialog. (table_double_click): Likewise. (find_contact_cb): Likewise. 2000-05-31 Miguel de Icaza * contact-editor/contact-editor.glade: Added accelerators for the remaining items. Add spacing, beautify the dialogs. 2000-06-01 Ettore Perazzoli * gui/component/addressbook.c (control_activate): Put the toolbar into a frame to make it look like standard GNOME toolbars. Also, set `GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL' so that it does not do evil things when its moved to the left or the right of the window. 2000-05-30 Christopher James Lahey * gui/component/e-cardlist-model.c, gui/component/e-cardlist-model.h: New files for card list. 2000-05-30 Christopher James Lahey * gui/component/addressbook.c: Fixed a memory leak. 2000-05-30 Christopher James Lahey * gui/component/alphabet.glade: Made the alphabet buttons not focusable. * gui/minicard/e-minicard-view.c: Made the "123" button work. * gui/minicard/e-reflow-sorted.c: Made all buttons past the last letter available work. 2000-05-30 Christopher James Lahey * gui/component/alphabet.glade: Added a bit of space around the alphabet bar. 2000-05-30 Christopher James Lahey * gui/component/Makefile.am: Added alphabet.glade and alphabet.glade.h. * gui/component/addressbook.c, gui/component/alphabet.glade, gui/component/alphabet.glade.h: Added an alphabet bar. * gui/minicard/e-minicard-view.c, gui/minicard/e-minicard-view.h, gui/minicard/e-reflow-sorted.c, gui/minicard/e-reflow-sorted.h: Added the ability to just to a particular spot in the reflow. 2000-05-30 Christopher James Lahey * printing/Makefile.am: Added BONOBO_GNOME_CFLAGS to CPPFLAGS. 2000-05-30 Christopher James Lahey * gui/minicard/e-minicard-view.c: Made double clicking create a new card. Set the empty message. * gui/minicard/e-minicard.c: Made sorting be case insensitive. * gui/minicard/e-reflow-sorted.c, e-reflow.c, e-reflow.h: Added a message for when the reflow is empty. * printing/e-contact-print.c, printing/medbook.ecps: Made the default printout be full page. Made sorting case insensitive. 2000-05-30 Christopher James Lahey * backend/ebook/e-book-view-listener.c, backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c, backend/ebook/e-book-view.h, backend/idl/addressbook.idl, backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c, backend/pas/pas-book-factory.c, backend/pas/pas-book-view.c, backend/pas/pas-book-view.h: Added "sequence_complete" signal. * printing/e-contact-print.c: Made printing wait for "sequence_complete" signal and made it sort. 2000-05-25 Christopher James Lahey * gui/component/addressbook.c, gui/component/e-addressbook-model.c, gui/component/e-addressbook-model.h: Added double click to open contact editor. 2000-05-25 Christopher James Lahey * gui/component/addressbook.c: Removed some columns. 2000-05-25 Ettore Perazzoli * gui/component/addressbook.c (addressbook_factory_new_control): New function. (addressbook_factory): Use it. * Makefile.am (evolution_addressbook_LDADD): Link with `evolution-shell-component.o' from the shell directory. * gui/component/addressbook-component.c: New. * gui/component/addressbook-component.h: New. 2000-05-23 Christopher James Lahey * Makefile.am: Switched printing and gui. * backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.h, backend/ebook/e-book.h, backend/ebook/e-card-cursor.h, backend/ebook/e-card-list.h, backend/ebook/e-card-simple.h, backend/ebook/e-card.h: Fixed the #defines to work elsewhere in evolution. * gui/component/Makefile.am: Added linking to libecontactprint. * gui/component/addressbook.c: Added a menu item to print the current query. * printing/Makefile.am: Add linking to libebook and requirements. Add installation of ecps files. * printing/e-contact-print.c, printing/e-contact-print.h: Changed this to use real data from an EBook. * printing/test-print.c: Made this pass NULL, NULL to e_contact_print_dialog_new so that it will compile. 2000-05-23 Christopher James Lahey * contact-editor/e-contact-save-as.c: Fixed some memory leaks. 2000-05-23 Christopher James Lahey * contact-editor/Makefile.am: Added e-contact-editor-save-as.c and e-contact-editor-save-as.h. * contact-editor/e-contact-save-as.c, contact-editor/e-contact-save-as.h: New files that display a save as dialog and then save the given card to that file. * gui/minicard/e-minicard.c: Call e_contact_save_as in a right click menu. 2000-05-19 Christopher James Lahey * contact-editor/e-contact-editor-categories.c, gui/component/e-addressbook-model.c: Added initialize_value and value_is_empty callbacks. 2000-05-19 Christopher James Lahey * contact-editor/e-contact-editor.c: Fixed a bug that broke address field support. 2000-05-19 Christopher James Lahey * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Added support for arbitrary fields in the contact editor. 2000-05-18 Christopher James Lahey * backend/ebook/e-card.c: Fixed e_card_name_copy and e_card_arbitrary_copy to deal correctly with a passed NULL. * contact-editor/Makefile.am: Removed imagesdir stuff. * contact-editor/arrow.png: Made this transparent. * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Renamed some widgets and added custom widgets for all of the images. * contact-editor/e-contact-editor.c: Worked on making this work decently well with messed up glade files. Cleaned up a lot of code. 2000-05-18 Christopher James Lahey * backend/ebook/e-card.c: Fixed the code to write out and read in arbitrary fields. 2000-05-18 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h, backend/ebook/e-card-types.h, backend/ebook/e-card.c, backend/ebook/e-card.h: Implemented "MAILER" field. Added arbitrary field support. * contact-editor/e-contact-editor-categories.c: Fixed a warning. 2000-05-16 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: Added E_CARD_SIMPLE_FIELD_MAILER. Not implemented yet. 2000-05-16 Chris Toshok * backend/pas/pas-backend-ldap.c (construct_email_list): convert to use ECardSimple. (poll_ldap): same. 2000-05-16 Chris Toshok * backend/pas/pas-book.h: add typedefs for the can_write functions, and add parameters to pas_book_new. * backend/pas/pas-book.c (pas_book_construct): add can_write/can_write_card params. (pas_book_new): same. (impl_Evolution_Book_can_write): new function. (impl_Evolution_Book_can_write_card): same. (pas_book_get_epv): assign the can_write/can_write_card slots in the epv. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_can_write): new function. (pas_backend_ldap_can_write_card): same. (pas_backend_ldap_add_client): add can_write/can_write_card to pas_book_new call. * backend/pas/pas-backend-file.c (pas_backend_file_can_write_card): new function, calls can_write. (pas_backend_file_can_write): same. (can_write): return TRUE if we can write to the addressbook file. (pas_backend_file_add_client): add can_write/can_write_card to pas_book_new call. * backend/idl/addressbook.idl (Evolution): add can_write and can_write_card permission requests. 2000-05-16 Christopher James Lahey * backend/ebook/e-card.c (e_card_get_vcard): Fixed a large memory leak. 2000-05-16 Christopher James Lahey * backend/ebook/e-card.c (add_list_unique): Fixed another memory leak. 2000-05-16 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/pas/pas-backend-file.c, contact-editor/e-contact-editor.c, ename/e-name-western.c, gui/component/addressbook.c, gui/minicard/e-minicard-view.c: Fixed some memory leaks. * backend/ebook/e-card.c: Rearranged some code. 2000-05-16 Christopher James Lahey * contact-editor/e-contact-editor-categories.c: Fixed a reference leak. 2000-05-16 Christopher James Lahey * contact-editor/e-contact-editor-categories.c: Fixed a compile error. 2000-05-16 Christopher James Lahey * contact-editor/e-contact-editor-categories.c: Got rid of a memory leak. Rearranged a couple functions. * gui/minicard/e-minicard-view.c, gui/minicard/e-minicard-view.h: Added some code to stop watching the EBook when the canvas is destroyed (apparently the canvas is destroyed before our widget is destroyed.) 2000-05-14 Christopher James Lahey * contact-editor/e-contact-editor-categories.c: Use the correct policy for resize. 2000-05-14 Christopher James Lahey * backend/ebook/Makefile.am: Added libeutil for e-card's support for categories. * backend/ebook/e-card-list.c, backend/ebook/e-card-list.h: Added a function to get the length. * backend/ebook/e-card.c, backend/ebook/e-card.h: Added categories support (accessible either as "categories" or "category_list".) * contact-editor/Makefile.am: Added e-table and all of the categories files. * contact-editor/categories.glade, contact-editor/categories-strings.h, contact-editor/e-contact-editor-categories.c, contact-editor/e-contact-editor-categories.h: * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Rearranged this dialog. * contact-editor/e-contact-editor.c: Rearranged dialog a bit. Added opening of categories dialog. * gui/component/Makefile.am: Rearranged libraries so that libetable would be available for the contact editor categories dialog. * gui/component/addressbook.c: Fix for new ETable resizing. Make contact editor dialog resizable. * gui/minicard/Makefile.am: Added libetable contact editor categories dialog. * gui/minicard/e-minicard.c: Make contact editor dialog resizable. 2000-05-12 Miguel de Icaza * contact-editor/fulname.glade: Use accelerators here. 2000-05-13 Valek Filippov * gui/component/ldap-server-dialog.glade: save translatable strings * gui/component/ldap-server-dialog.glade.h: file with strings * printing/e-contact-print.glade: save translatable strings * printing/e-contact-print.glade.h: file with strings 2000-05-11 Dan Winship * gui/component/addressbook.c (control_activate): Now that we depend on recent gnome-libs we can make the toolbar detachable again. 2000-05-10 Christopher James Lahey * gui/component/addressbook.c: Make the table view be sorted by name initially. 2000-05-10 Christopher James Lahey * backend/pas/pas-book-factory.c: Send a proper response when you can't find the ldap URI. * gui/component/addressbook.c: Cleaned up the open error dialog a bit. 2000-05-10 Christopher James Lahey * gui/component/addressbook.c: Added a dialog for when you can't open an addressbook. 2000-05-10 Christopher James Lahey * backend/ebook/Makefile.am: Added e-book-types.h, e-card-pairs.h, e-card-types.h. * backend/pas/Makefile.am: Added pas-backend-ldap.h. * contact-editor/Makefile.am: Added a proper EXTRA_DIST section. Removed some old defines. * ename/Makefile.am: Added e-name-western-tables.h. * gui/component/Makefile.am: Added e-ldap-server-dialog.h. Added a proper EXTRA_DIST section. * gui/minicard/e-reflow.c: Added a missed cast. * printing/Makefile.am: Added a proper EXTRA_DIST section. 2000-05-09 Christopher James Lahey * contact-editor/e-contact-editor.c: Make sure that the canvas doesn't intercept keyboard focus. 2000-05-09 Christopher James Lahey * contact-editor/e-contact-editor.c: Use new art. 2000-05-09 Christopher James Lahey * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Replaced the Address button with a label and rearranged the address area a bit. 2000-05-09 Christopher James Lahey * gui/minicard/e-minicard.c: Reenable editting. * gui/minicard/e-reflow-sorted.c: Make reflow flow on deletion. 2000-05-09 Christopher James Lahey * gui/component/addressbook.c: Destroy the view object when leaving the minicard view. 2000-05-09 Christopher James Lahey * gui/minicard/e-reflow-sorted.c: Fixed reflow sorting to call reflow_request when sorting on an item changes. 2000-05-09 Christopher James Lahey * backend/ebook/e-card-simple.c: Make File As change if name or company are changed pretty much anywhere. * gui/minicard/e-minicard.c: Turned off having minicard editing effect anything since it's so crashy. 2000-05-09 Christopher James Lahey * backend/pas/pas-backend-ldap.c: Enabled a couple more fields 2000-05-09 Christopher James Lahey * backend/pas/pas-backend-file.c: Added a default card to all new file backends. 2000-05-09 Christopher James Lahey * gui/component/e-addressbook-model.c: Rearranged order of things getting destroyed. * gui/minicard/e-minicard-view.c: Rearranged order of things getting destroyed. Don't set attributes of non-null or destroyed items. Destroy parent object when destroyed. Maintain ref_count of items in list. * gui/minicard/e-minicard.c: Don't set attributes of non-null items. * gui/minicard/e-reflow-sorted.c: Maintain ref_count of items in list. * gui/minicard/e-reflow.c: Maintain ref_count of items in list. Destroy parent object when destroyed. 2000-05-09 Christopher James Lahey * backend/ebook/e-card-simple.c: Fixed some indentation. * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Changed Email to Primary Email. * contact-editor/e-contact-editor.c: Added checkmarks to indicate if data exists in the pull down menus for the phone, address, and email fields. 2000-05-09 Christopher James Lahey * backend/ebook/e-card-simple.c: Fixed the string duplication problem. Fixed the business/home address string mix up. * gui/component/addressbook.c: Made the minicard view the default view. 2000-05-08 Christopher James Lahey * backend/ebook/e-card-simple.c: Fixed this up a bit. Syncing should work better now. 2000-05-08 Christopher James Lahey * gui/minicard/e-minicard-view.c, gui/minicard/e-minicard.c, gui/minicard/e-minicard.h, gui/minicard/e-reflow-sorted.c, gui/minicard/e-reflow-sorted.h: Made a minimal number of things be destroyed and recreated when updating a field. 2000-05-07 * gui/minicard/e-minicard.c (remodel): make sure to free the return value of e_card_simple_get. * gui/component/addressbook.c (teardown_table_view): destroy the ECardSimple here, plug memory leak. (create_table_view): use view->simple so we can destroy the ECardSimple later on. 2000-05-07 Chris Toshok * ename/e-name-western.c (e_name_western_extract_middle): comment function, and fix an ABR. 2000-05-07 Chris Toshok * ename/e-name-western.c (e_name_western_cleanup_string): comment function, and fix an ABR. 2000-05-08 Christopher James Lahey * gui/minicard/e-minicard.c: Added saving in minicard view. 2000-05-07 Christopher James Lahey * backend/pas/pas-backend-file.c: Fixed an off by 2 error. 2000-05-07 Chris Toshok * gui/component/addressbook.c (set_prop): don't create a new ebook. instead, unload the current uri (if there is one) and load the new one. (addressbook_factory): create the ebook once. 2000-05-07 Christopher James Lahey * gui/component/e-addressbook-model.c: Replaced some model_changed calls with row_inserted calls. 2000-05-07 Christopher James Lahey * backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c: Removed some code that was notifying too many clients at the wrong times. * gui/component/addressbook.c: Set view->book. Unreffed view->book. Unreffed the model instead of destroying it. Removed the /tmp/test.db stuff. 2000-05-07 Christopher James Lahey * gui/component/addressbook.c: Make the addressbook create the correct file uri. Added a default query. Initialize view->model and view->view to NULL. * gui/component/e-addressbook-model.c, gui/minicard/e-minicard-view.c: Only call get_book_view if both book and query and non-null. 2000-05-06 Chris Toshok * gui/component/addressbook.c (control_deactivate): remove the separator and toggle view items as well. (toggle_view_as_cb): callback for the "/View/Toggle View" menu item. (get_query): getter for the query string that takes into account the two view types. (set_query): setter for the query string that takes into account the two view types. (set_book): setter for the EBook type - not really a setter, since the book is kept in the AddressbookView, but this method actually sets the "book" property on the current view. (find_contact_cb): make use of get/set_query (search_entry_activated): make use of set_query. (control_activate): add a menu separator and an item to toggle between view types. (book_open_cb): make use of set_book. (ebook_create): no longer needs to return the EBook, since we set the book field in our view. (teardown_minicard_view): destructor function for the minicard specific ui. (create_minicard_view): constructor function for the minicard specific ui. (teardown_table_view): destructor function for the e-table specific ui. (create_table_view): constructor function for the e-table specific ui. (change_view_type): destroy the old and create the new view ui, change the label of the Toggle View menu item, and reset the book and query on the new view type. (addressbook_factory): create an all-encompassing vbox that the view uses to create the bonobo control, which contains 1 widget per ui specific view (the e-table in the table case, and another vbox in the minicard case.) use change_view_type to create the initial view. 2000-05-07 Christopher James Lahey * backend/ebook/e-book.c: Made a NULL callback just mean to not call back. * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: Reordered fields. Added a get_const function to get a constant string that persists until the simple is destroyed. * gui/component/Makefile.am: Added e-addressbook-model.c and e-addressbook-model.h and all of the libraries and includes that they are dependent on. * gui/component/addressbook-factory.c: Initialize e cursors. * gui/component/addressbook.c: Added inactive code to display an ETable view of the addressbook. * gui/component/e-addressbook-model.c, gui/component/e-addressbook-model.h: New files to implement an ETable model with a EBook back end. 2000-05-06 Christopher James Lahey * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: Mostly finished ECardSimple. * contact-editor/e-contact-editor.c: Changed this to match with some of the changes to ECardSimple. * gui/component/addressbook.c: Changed this to look for "addressbook.db" in the given directory if it doesn't find the file "uri". * gui/minicard/e-minicard.c, gui/minicard/e-minicard.h: Changed this to use ECardSimple. 2000-05-06 Chris Toshok * gui/component/.cvsignore: ignore evolution-addressbook.pure * gui/component/Makefile.am: add support for generating evolution-addressbook.pure. 2000-05-06 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_load_uri): if a port isn't specified in the uri default to 389. 2000-05-06 Christopher James Lahey * gui/component/addressbook.c: Made this take a uri through its property bag. 2000-05-05 Christopher James Lahey * backend/ebook/Makefile.am: Added e-card-simple.c and e-card-simple.h. * backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h: New card wrapper class to simplify things. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Changed e-contact-editor to use ECardSimple a bit. 2000-05-03 Chris Toshok * gui/component/addressbook.c (control_deactivate): #ifdef HAVE_LDAP the ldap specific stuff. (null_cb): same. (control_activate): same. 2000-05-02 Ettore Perazzoli * backend/ebook/Makefile.am (INCLUDES): Add `-I$(top_srcdir)/addressbook/ename'. 2000-05-02 Matt Loper * demo/Makefile.am: set G_LOG_DOMAIN. * printing/Makefile.am: same. 2000-05-01 Christopher James Lahey * backend/pas/pas-book-factory.c: Add back in the CORBA_Object_release. * backend/pas/pas-book.c: Properly duplicate and release the listener passed to us. 2000-05-01 Christopher James Lahey * backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c: Made uri slightly better managed. * backend/pas/pas-book-factory.c (pas_book_factory_process_request): Remove this CORBA_Object_release that causes things not to work. This is just a temporary fix until we figure out what's actually wrong. * backend/pas/pas-book.c: Fixed a copy and paste error in a warning. 2000-05-01 Christopher James Lahey * Makefile.am: Switched the subdirs order since backend depends on ename. 2000-05-01 Larry Ewing * backend/pas/pas-backend-ldap.c (pas_backend_ldap_remove_client): fix a typo in the for loop. 2000-05-01 Michael Meeks * backend/pas/pas-book-factory.c: include gtk. 2000-04-30 Federico Mena Quintero * backend/ebook/e-book-types.h (EBookStatus): Added new status values for the IDL stuff. * backend/pas/pas-book-factory.h (PASBookFactoryClass): New "last_book_gone" signal. * backend/pas/pas-book-factory.c (pas_book_factory_launch_backend): Better error handling. (pas_book_factory_process_queue): Let pas_book_factory_process_request() free the request. (pas_book_factory_process_request): Free the request here. Perform better error handling. (free_active_server_map_entry): Free an active server map entry; free the URI key and unref the backend value. This function was renamed; the old one was trying to CORBA_Object_unref() a GTK+ object! (remove_backends_entry): Free a backend table entry; free the URI key. (backend_last_client_gone_cb): Remove the backend from the active server map and emit the "last_book_gone" signal if appropriate. (pas_book_factory_get_n_backends): New function to query the number of running backends in an addressbook factory. * backend/idl/addressbook.idl (BookListener::CallStatus): Added a ProtocolNotSupported code. This is for when the addressbook factory cannot find a provider for the requested URI. * backend/pas/pas-backend.h (PASBackendClass): New "last_client_gone" signal. (PASBackendClass): New get_uri virtual method. * backend/pas/pas-backend.c (pas_backend_load_uri): Return a gboolean success code. (pas_backend_add_client): Return a gboolean success code. (pas_backend_last_client_gone): New function used by backend implementations to notify upwards when the backend's last client is destroyed. (pas_backend_get_uri): New function to get the URI of a backend. * backend/pas/pas-backend-file.c (pas_backend_file_add_client): Pass the backend as the closure data to the "destroy" handler of the book. We cannot call pas_book_get_backend() in the callback since the book's private data has already been destroyed when the callback is invoked. Alternatively, we could move the private data destruction step to the book's ::finalize() method. (pas_backend_file_book_destroy_cb): Get the backend from the callback's data, not from the book. (pas_backend_file_remove_client): Remove the book from the list of clients. When all clients go away, call pas_backend_last_client_gone(). (PASBackendFilePrivate): Added an uri field. (pas_backend_file_get_uri): Implement the get_uri method. (pas_backend_file_load_uri): Return a gboolean success code. Also, store the URI in the private structure. (pas_backend_file_add_client): Return a gboolean success code. Also, call pas_backend_last_client_gone() if appropriate. (pas_backend_file_destroy): Free the bf->priv->uri. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client): Pass the backend as the closure data to the "destroy" handler of the book. See above for rationale. (pas_backend_ldap_book_destroy_cb): Get the backend from the callback's data. (pas_backend_ldap_remove_client): Remove the book from the list of clients. When all clients go away, call pas_backend_last_client_gone(). (pas_backend_ldap_load_uri): Return a gboolean success code. (pas_backend_ldap_add_client): Return a gboolean success code. Also, call pas_backend_last_client_gone() if appropriate. (PASBackendLDAPPrivate): New uri field. (pas_backend_ldap_get_uri): Implement the get_uri method. (pas_backend_ldap_load_uri): Store the uri in the private structure. (pas_backend_ldap_destroy): Free the bl->priv->uri. 2000-04-30 Chris Toshok * gui/component/Makefile.am (evolution_addressbook_SOURCES): added e-ldap-server-dialog.c (glade_DATA): added ldap-server-dialog.glade * gui/component/ldap-server-dialog.glade: new file. * gui/component/e-ldap-server-dialog.h: new file. * gui/component/e-ldap-server-dialog.c: new file, contains logic associated with ldap server dialog. * gui/component/addressbook.c (control_deactivate): remove the directory server menu item. (null_cb): do nothing callback for e_book_load_uri call. should change to (at the very least) pop up a dialog if there was an error. (new_server_cb): new function - really just switches to a particular ldap server, since the information isn't saved anywhere. (control_activate): add directory server menu item. 2000-04-30 Chris Toshok * backend/ebook/e-book.c (e_book_load_uri): create the book listener here, since it's destroyed in unload_uri. (e_book_construct): remove the book listener construction here. 2000-04-30 Christopher James Lahey * backend/ebook/.cvsignore: Added load-pine-addressbook. 2000-04-30 Christopher James Lahey * contact-editor/contact-editor.glade, contact-editor/e-contact-editor.c, gui/minicard/e-minicard.c: Made some fields invisible that were visible before. 2000-04-30 Christopher James Lahey * backend/ebook/e-card.c: Make file as not have the : after it if it's empty. If there's no name, or file_as, fill in these fields with defaults based on full_name or name respectively. * backend/ebook/load-pine-addressbook.c: New file to do import of pine .addressbook files. * backend/pas/pas-backend-file.c: Made empty fields act as the empty string for searches. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Made the File As field update properly as you edit the name and company fields. Added the pull down list of File As choices. Made sure that all fields will be set to NULL if they are deleted to the empty string. * gui/minicard/e-minicard.c: Use the File As field instead of the Full Name field for the header. Make identical compares on the File As field do a compare on the uid. 2000-04-30 Christopher James Lahey * contact-editor/e-contact-editor-fullname.c, contact-editor/fullname.glade: Fixed a string mismatch. 2000-04-30 Christopher James Lahey * backend/ebook/Makefile.am: Added ename includes and libs. * backend/ebook/e-card.c, backend/ebook/e-card.h: Added e_card_name_from_string. Added header for e_card_delivery_address_from_string, even though it's not implemented yet. * contact-editor/Makefile.am: Removed the ename includes since we no longer use ename directly here. * contact-editor/e-contact-editor.c: Fixed this to properly save the address labels displayed. Updated this to use the function e_card_name_from_string instead of doing it by hand. * contact-editor/fullname-strings.h, contact-editor/fullname.glade: Deleted an unused field. Changed the set of prefixes and suffixes. 2000-04-30 Chris Toshok * backend/pas/pas-backend-ldap.c (pas_backend_ldap_ensure_connected): add support for a rootdn in the uri. (pas_backend_ldap_build_all_cards_list): make use of the rootdn in the call to ldap_search_s. (pas_backend_ldap_search): same. (pas_backend_ldap_load_uri): get the rootdn out of the passed in uri. 2000-04-29 Christopher James Lahey * backend/ebook/e-card.c, backend/ebook/e-card.h: Added e_card_phone_new e_card_delivery_address_new, e_card_delivery_address_to_string, e_card_name_copy, e_card_name_new, e_card_name_to_string, and made e_card_name_free public. Removed some unused code. * backend/pas/pas-backend-file.c: Fixed a warning. * contact-editor/Makefile.am: Added e-contact-editor-fullname.[ch] and fullname.glade. Added e-name libs and includes. * contact-editor/e-contact-editor-fullname.c, contact-editor/e-contact-editor-fullname.h, contact-editor/fullname-strings.h, contact-editor/fullname.glade: New dialog for editing the fields of a name separately. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Create an EContactEditorFullname when you click on the Full Name button. Maintain a parsed name at all times. * gui/component/Makefile.am, gui/minicard/Makefile.am: Added e-name libs. 2000-04-28 Larry Ewing * backend/pas/pas-book-factory.c (register_factory): fix the `USING_OAF' changes so that they work for when we are not using oaf. 2000-04-27 Ettore Perazzoli * ename/Makefile.am (gnome_libs): Use `BONOBO_GNOME_LIBS'. (INCLUDES): Add `-I$(srcdir)/..'. * backend/pas/pas-book-factory.c (register_factory): New function to register the factory. Implementation different according to `USING_OAF'. (pas_book_factory_activate): Use `register_factory()'. * gui/component/addressbook.c: New #define `CONTROL_FACTORY_ID', varying depending on whether we are `USING_OAF'. (addressbook_factory_init): Use `CONTROL_FACTORY_ID'. * backend/ebook/test-client.c (init_corba): New function, implemented differently according to the `USING_OAF' #define. * backend/ebook/e-book.c: New #define `CARDSERVER_OAF_ID'. (e_book_construct): Work with OAF #if `USING_OAF'. * backend/ebook/Makefile.am (gnome_libs): Removed. (corbadir): Removed. (ebook_libs): Removed. (test_client_LDADD): Just add `libebook.la'. (test_card_LDADD): Likewise. (test_client_list_LDADD): Likewise. * gui/component/addressbook-factory.c (init_corba): New helper function, implemented differently according to `USING_OAF'. (main): Call `init_corba()'. 2000-04-27 Christopher James Lahey * backend/ebook/e-card.c, backend/ebook/e-card.h: Added file as, office, manager, assistant, spouse, and anniversary fields. These all use "X-EVOLUTION-" fields in the VCards. * backend/pas/pas-backend-file.c: Added all the new fields (except anniversary) to the list of fields. * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Fixed some misnamed fields and fixed the placement of the comments field. * contact-editor/e-contact-editor.c: Made the newly added fields display properly. * Makefile.am: Added ename. * ename/e-name-western.h, ename/test-ename-western-gtk.c, ename/test-ename-western.c: Fixed up some #includes. * ename/.cvsignore: Added .cvsignore. 2000-04-26 Christopher James Lahey * backend/ebook/e-card-types.h, backend/ebook/e-card.c, backend/ebook/e-card.h: Added an address label field. * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Got rid of some unused fields. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Added the address label field. Load only. Editing these fields seems to mess things up. 2000-04-26 Christopher James Lahey * contact-editor/e-contact-editor.c: Added proper handling of the email field. 2000-04-26 Christopher James Lahey * backend/ebook/e-card-types.h, backend/ebook/e-card.c, gui/minicard/e-minicard.c: Prefixed the ADDR_ flags. * contact-editor/contact-editor.glade, contact-editor/e-contact-editor-strings.h: Edited the glade file. Removed all the fields that we don't use. * contact-editor/e-contact-editor.c, contact-editor/e-contact-editor.h: Made the phone fields work properly. The address and email fields are temporarily turned off until they can be made to work as the phone fields do. 2000-04-25 Ettore Perazzoli * gui/minicard/Makefile.am (INCLUDES): Use `$(BONOBO_GNOME_CFLAGS)'. * backend/pas/Makefile.am (idl_flags): Add `-I $(datadir)/idl' to pick up IDL files in the installation prefix as well. (INCLUDES): Use `$(BONOBO_GNOME_CFLAGS)'. * backend/ebook/Makefile.am (ORBIT_IDL): Use `-I $(datadir)/idl' to get the IDLs from the installation prefix as well. (INCLUDES): Add `$(BONOBO_GNOME_CFLAGS)'. (test_client_LDADD): Use `$(BONOBO_GNOME_LIBS)' instead of hardcoding `-lbonobo'! Also get rid of some other useless flags, as `$(BONOBO_GNOME_LIBS)' really has all what we need. (test_client_list_LDADD): Likewise. (test_card_LDADD): Likewise. 2000-04-18 Federico Mena Quintero * gui/minicard/Makefile.am (INCLUDES): Use "e-minicard" as the log domain. * gui/component/Makefile.am (INCLUDES): Use "evolution-addressbook" as the log domain. * backend/pas/Makefile.am: Build libpas.a, not a shared library. Do not install any header files. (INCLUDES): Remove spurious include paths. * backend/pas/*.[ch]: Fix includes. * backend/ebook/Makefile.am: Do not install the test programs. Fixed some include weirdness. * backend/ebook/*.[ch]: Fix includes. * contact-editor/Makefile.am (INCLUDES): Set the log domain to "contact-editor". (INCLUDES): Fix. * contact-editor/*.[ch]: Fix includes. * gui/minicard/*.[ch]: Fix includes. * ChangeLog: Started a ChangeLog here.