aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui/component/select-names/e-select-names-manager.h
Commit message (Collapse)AuthorAgeFilesLines
* Extensively refactored -- this code had gotten _really_ ugly. UntangleJon Trowbridge2001-12-081-4/+4
| | | | | | | | | | | | | | | 2001-12-07 Jon Trowbridge <trow@ximian.com> * gui/component/select-names/e-select-names-manager.c: Extensively refactored -- this code had gotten _really_ ugly. Untangle things to the point where our reference counting problems are fixable. * gui/component/select-names/e-select-names-bonobo.c (impl_destroy): Remove all of the ugly hacks to work around our memory management problems, and just unref the manager. (Fixes #14412) svn path=/trunk/; revision=14934
* Connect to manager's "ok" signal. (manager_ok_cb): Emit "ok"Jon Trowbridge2001-10-301-0/+1
| | | | | | | | | | | | | | 2001-10-29 Jon Trowbridge <trow@ximian.com> * gui/component/select-names/e-select-names-bonobo.c (init): Connect to manager's "ok" signal. (manager_ok_cb): Emit "ok" bonobo-signal. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_class_init): Added "ok" signal. (e_select_names_clicked): Emit 'ok' signal. svn path=/trunk/; revision=14415
* add completion_book.Chris Toshok2001-09-271-0/+2
| | | | | | | | | | | | | | | | | | 2001-09-26 Chris Toshok <toshok@ximian.com> * gui/component/select-names/e-select-names-manager.h: add completion_book. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_new): get /Addressbook/Completion/uri, and if it's present, use the corresponding EBook for completing addresses. (focus_out_cb): use manager->completion_book here instead of NULL, which corresponds to the local addressbook. (completion_popup_cb): same. (e_select_names_manager_create_entry): same. svn path=/trunk/; revision=13161
* (Apologies if you are seeing this multiple times. CVS is being annoying.)Jon Trowbridge2001-09-091-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-08 Jon Trowbridge <trow@ximian.com> * backend/ebook/e-book-view-listener.c (e_book_view_listener_check_queue): See e_book_listener_check_queue below. (e_book_view_listener_queue_response): See e_book_listener_queue_response below. * backend/ebook/e-book-listener.c (e_book_listener_check_queue): Explicitly prohibit reentrancy. Use gtk-unref rather than bobobo-unref. (e_book_listener_queue_response): Hold a gtk-ref to the listener while the idle function runs, not a bonobo-ref. As far as I can tell, it is impossible to avoid a race condition here when we have to worry about bonobo reentrancy. * gui/component/select-names/e-select-names-text-model.c (e_select_names_text_model_insert_length): Alter a copy of the original EDestination, rather than just using a new one. We need to do this to preserve prior-card information for possible reversion later. (e_select_names_text_model_delete): Ditto. * backend/ebook/e-destination.c (e_destination_clear_card): When clearing a destination where ->card != NULL, store it for possible reversion later. (e_destination_revert): If we have an old card stored, go back to using it for the destination. (e_destination_is_valid): Tries to detect obviously broken addresses. (e_destination_cardify): If our destination is invalid, first try to cardify simply by reverting to an older card. (e_destination_destroy): Unref any cached old card. (e_destination_copy): Copy the old card information. 2001-09-07 Jon Trowbridge <trow@ximian.com> * gui/component/select-names/e-select-names.c (sync_table_and_models): Show all rows in the table, and then remove the rows that correspond to entries in the ESelectNamesModels in the children. (real_add_address): Freeze/thaw our ESelectNamesModel, so that we don't change our table while we are in the middle of iterating over the selection. (remove_address): Just delete the address from the ESelectNamesModel, the signal handler will do the rest. (selected_rows_foreach_cb): Call remove_address to do our dirty work. (e_select_names_add_section): Connect to the 'changed' signal from the ESelectNamesModel, and call sync_table_and_models explicitly to get our initial state correct. * gui/component/select-names/e-select-names-table-model.c (fill_in_info): Deal with EDestinations in our table that don't come from cards. * gui/component/select-names/e-select-names-manager.c: Added another ESelectNamesModel* to the ESelectNamesManagerSection struct. Called 'original_model', this contains a copy of the model as it is when we begin using the SelectNames dialog. (section_copy): Copy the original model. (section_free): Free the original model. (e_select_names_manager_add_section_with_limit): Initialize the original model. (e_select_names_clicked): I've changed the semantics of this dialog quite a bit... no UI freeze can stop me! If OK is clicked, we do nothing. If Cancel is clicked, we revert to the 'original_model' copy of our address entry state before we started editting. Finally, we close the dialog before any of thing. Doing it last caused problems, because signals were being triggered which had dangling pointers as their closures. (e_select_names_manager_activate_dialog): Copy our current state to the original model, and share the same ESelectNamesModel between the dialog and the address entry in the composer.. (e_select_names_manager_get_cards): Removed. It had been #if 0/#endif-ed out for a while. * gui/component/select-names/e-select-names-model.c (e_select_names_model_freeze): Added. (e_select_names_model_thaw): Added. (e_select_names_model_uncardify): Added. If possible, "uncardifies" a specific model entry. (e_select_names_model_changed): Changed to pay attention to the freeze count. * gui/component/select-names/e-select-names-completion.c (clean_query_text): Strip leading/trailing whitespace from queries. * backend/ebook/e-destination.c (e_destination_uncardify): Added. Converts a card-associated destination into a text-associated destination w/ the e-mail address. (e_destination_list_to_vector): Added. A convenience routine. (e_destination_freev): Added. A convenience routine. (e_destination_touchv): Added. I'm lazy. svn path=/trunk/; revision=12710
* Added addSectionWithLimit to the SelectNames interface.Jon Trowbridge2001-07-171-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-16 Jon Trowbridge <trow@ximian.com> * 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. svn path=/trunk/; revision=11150
* Update the copyrights, replacing Helix Code with Ximian andEttore Perazzoli2001-06-231-2/+2
| | | | | | helixcode.com with ximian.com all over the place. svn path=/trunk/; revision=10440
* Clean up #includes. Replace <gnome.h>, <bonobo.h> and <gtk/gtk.h> withKjartan Maraas2001-03-301-2/+2
| | | | | | | | | 2001-03-29 Kjartan Maraas <kmaraas@gnome.org> * *.*: Clean up #includes. Replace <gnome.h>, <bonobo.h> and <gtk/gtk.h> with more finegrained headers where needed. svn path=/trunk/; revision=9026
* Change for new EDestination/ESelectNamesModel API.Jon Trowbridge2001-03-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-03-01 Jon Trowbridge <trow@ximian.com> * gui/component/select-names/e-select-names-table-model.c (fill_in_info): Change for new EDestination/ESelectNamesModel API. * gui/component/select-names/e-select-names-manager.c (e_select_names_manager_get_source): Added. A function for looking up the ESelectNamesModel by id. (I didn't end up using this function, but it might come in handy later.) (e_select_names_manager_get_cards): #if 0/#endif out this function. (e_select_names_manager_create_entry): Modified to attach an ESelectNamesCompletion to the entry we create. (completion_handler): A post-completion handler for our EEntry, to take the completion's extra data (an EDestination) and properly stick it into our ESelectNamesModel. * gui/component/select-names/e-select-names.c (real_add_address_cb): Changed to operate on EDestinations rather than ECards and to use the new ESelectNamesModel API. This leads to a rather nice code simplication. (remove_address): Changed for new ESelectNamesModel API. * gui/component/select-names/e-select-names-bonobo.c (entry_get_property_fn): Rather than just passing the entry's text through the property bag, get the "address text" from the model. This returns a nice, verbose string of addresses with names expanded when the address is tied to an ECard (i.e. "Jon Trowbridge <trow@ximian.com>"). (impl_SelectNames_get_entry_for_section): Make the text property read-only. (entry_set_property_fn): ...and since it is read-only now, chop out the setter code. * gui/component/select-names/e-select-names-text-model.h: * gui/component/select-names/e-select-names-text-model.c: Again, this code has been (pretty much) totally rewritten to convert all text operations into changes on the ESelectNamesModel. This lets us give the associated EEntry some (IMHO) nice semantics regarding whitespace, etc. Includes object activation, so destinations tied to ECards are underlined and can be double-clicked to bring up a contact editor. * gui/component/select-names/e-select-names-model.h: * gui/component/select-names/e-select-names-model.c: I've heavily modified this object to both hide all implementation details (which the old version exposed a bit too much for my peculiar tastes) and to act as an EDestination container. The old code put the text model operations here. I've moved them all to ESelectNamesTextModel --- so the text model actions (insert, delete, etc.) are all done through the API rather than operating on ESelectNamesModel internals. * gui/component/select-names/e-select-names-completion.c: Added. A fairly complicated object derived from ECompletion that searches our local addressbook in various and sundry ways. * gui/component/select-names/e-select-names-completion.h: * backend/ebook/e-destination.h: * backend/ebook/e-destination.c: Added. This object encapsulates a place to sent an email to, which can either be just a address as a string ("trow@ximian.com"), a fancier string ("Jon Trowbridge <trow@ximian.com>"), or an ECard and a specific address within that ECard. svn path=/trunk/; revision=8459
* Add this file I forgot earlierIain Holmes2000-10-181-1/+2
| | | | svn path=/trunk/; revision=5991
* Only allow one select-names dialog for each id.Iain Holmes2000-10-141-0/+2
| | | | svn path=/trunk/; revision=5910
* Removed unused do_nothing_cb function.Christopher James Lahey2000-07-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-07-09 Christopher James Lahey <clahey@helixcode.com> * 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. svn path=/trunk/; revision=4007
* Wrap the ESelectNames stuff into a Bonobo interface, so that we canEttore Perazzoli2000-07-081-5/+5
| | | | | | | call it from the message composer in evolution-mail. The Bonobo interface is physically implemented in evolution-addressbook. svn path=/trunk/; revision=3972
* Removed e-card-iterator.c, e-card-iterator.h, e-card-list-iterator.c,Christopher James Lahey2000-07-041-11/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-07-03 Christopher James Lahey <clahey@helixcode.com> * 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 <e-contact-save-as.h> 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/.) svn path=/trunk/; revision=3876
* New select names manager interface (Not complete.)Christopher James Lahey2000-06-291-0/+49
2000-06-28 Christopher James Lahey <clahey@helixcode.com> * 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.) svn path=/trunk/; revision=3785