2001-09-17 Jon Trowbridge * 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.