Committed Johnny's patch for bug #242966
[platform/upstream/evolution-data-server.git] / libedataserverui / ChangeLog
1 2005-12-16  Johnny Jacob  <johnnyjacob@gmail.com>
2
3         ** Fix for bug #242966
4         
5         * e-name-selector-dialog c (e_name_selector_dialog_init):
6         Search entry has the default focus.
7         
8 2006-01-05  Kjartan Maraas  <kmaraas@gnome.org>
9
10         * e-name-selector.c: Remove unused static function free_section().
11
12 2006-01-02  Srinivasa Ragavan  <sragavan@novell.com>
13
14         * e-name-selector-entry.c (popup_activate_list),
15         (destination_set_list), (destination_set_email), (populate_popup):
16         Added code to show contact/list email addresses in radio/check button
17         respectively for selecting/deselecting preferred email addresses.
18
19 2005-12-20  Srinivasa Ragavan  <sragavan@novell.com>
20
21         ** Fixes bug #238979
22
23         * e-name-selector-entry.c: (prepare_popup_destination),
24         (popup_activate_inline_expand), (populate_popup): Added code to 
25         expand for Contact Lists inline for composer.
26
27 2005-12-15  Chenthill Palanisamy  <pchenthill@novell.com>
28
29         * e-destination-store.c: (find_destination_by_email),
30         (e_destination_store_append_destination): Check if the 
31         destination is already added by comparing the email id.
32
33 2005-12-09  Tor Lillqvist  <tml@novell.com>
34
35         * e-passwords.c (ep_msg_new): Use pthread_equal() to compare
36         pthread_t values.
37
38         * e-source-option-menu.c: Use guint instead of uint.
39
40         * e-categories-dialog.c (load_properties_dialog,
41         e_categories_dialog_init)
42         * e-name-selector-dialog.c (e_name_selector_dialog_init):
43         Construct glade file names at run-time.
44
45 2005-11-09  Sushma Rai  <rsushma@novell.com>
46
47         * e-name-selector-dialog.c (e_name_selector_dialog_init)(add_section): 
48         Setting the multiple selection mode.
49         (selection_changed)(contact_selection_changed): Using 
50         gtk_tree_selection_count_selected_rows() to find if contacts are 
51         slected or not.
52         (contact_activated)(transfer_button_clicked): Finding the selected set 
53         of contacts and adding to destination.
54         (destination_activated)(remove_selection): Finding the selected set of 
55         destinations and removing them from destination store. Fixes #319848. 
56         (setup_name_selector_model): Sorting the contacts on full name instead 
57         of file as name as we display full name.
58
59 2005-10-21  Devashish Sharma  <sdevashish@novell.com>
60
61         * e-name-selector-dialog.c: Added the missing category filter in
62         name_selector_dialog.
63         * e-name-selector-dialog.glade: Added the UI component for category
64         filter. Fixes #273799.
65
66 2005-10-14  Ross Burton  <ross@openedhand.com>
67
68         * test-contact-store.c:
69         * test-name-selector.c:
70         Don't use Bonobo and GnomeProgram, GTK+ suffices.
71
72 2005-09-30  Devashish Sharma  <sdevashish@novell.com>
73
74         * e-name-selector-entry.c (user_delete_text): In name selector entry
75         while deleting character-by-character when you hit a comma, entire 
76         address is selected and in the next keystroke whole address is deleted,
77         leaving behind a comma. Fixed this so that comma is also removed 
78         along with the address.
79         Fixes #314997.
80
81 2005-08-26  Harish Krishnaswamy  <kharish@novell.com>
82
83         * e-name-selector-dialog.c: (e_name_selector_dialog_init):
84         Fix for #301116. Changwoo's earlier commit missed this part.
85
86 2005-08-23  Not Zed  <NotZed@Ximian.com>
87
88         * e-name-selector-entry.h: fix prototype of temporary api's.
89
90 2005-08-22  Not Zed  <NotZed@Ximian.com>
91
92         * e-name-selector-entry.c (find_existing_completion): assign
93         best_field to remove spurious warning.
94
95 2005-08-17  Devashish Sharma <sdevashish@novell.com>
96
97         * e-name-selector-entry.c (completion_match_selected): automatically
98         adds a comma after autocompleting the address. Fixes #247706.
99
100 2005-08-13  Tor Lillqvist  <tml@novell.com>
101
102         * Makefile.am: Link with libedataserver. Link with
103         E_DATA_SERVER_UI_LIBS, not E_DATA_SERVER_LIBS. Use NO_UNDEFINED.
104
105 2005-08-04  Not Zed  <NotZed@Ximian.com>
106
107         ** See bug #308512.
108
109         * e-passwords.c (ep_ask_password): implement new flag to disable
110         the remember password box.
111
112 2005-07-24  Vivek Jain  <jvivek@novell.com>
113         
114         * e-name-selector-dialog.c: "Section" structure has two new members
115         label and remove button
116         (add_section): set these new members properly
117         add a callback on the changed signal of gtktreeview in section
118         Have new structure SelData to give us the selection data in callback
119         (destination_key_press) : moved actual code to new local function
120         (remove_selection).
121         (selection_changed):
122         (remove_button clicked): new functions to get the entry back from the
123         destination store and making sure UI is consistent
124
125 2005-07-20  Sushma Rai  <rsushma@novell.com>
126
127         * e-name-selector-entry.c (populate_popup): In the popup menu, changed
128         label to edit a contact. Fixes #260851
129
130 2005-07-07  S.Antony Vincent Pandian <santony@gmail.com>
131
132        * e-destination-store.c (e_destination_store_list_destinations):
133        adding g_list_reverse(..) after the loop shows the
134        addresses in the same order as sent thus solving the bug.
135
136        Fixes #301922
137
138        ** committed on behalf of antony, since he does not have commit rights
139
140 2005-07-15  Jedy Wang  <jedy.wang@sun.com>
141
142         * e-passwords.c: (e_passwords_cancel): To kill a e-password-dialog,
143         we shall send a cancel reply, but not just simply destroy the widget.
144
145 2005-07-11  Sushma Rai  <rsushma@novell.com>
146
147         * e-name-selector-dialog.c (e_name_selector_dialog_init): Making the
148         name selector dialog modal, useful when gets invoked from modal
149         dialogs.
150
151 2005-07-09  Philip Van Hoof  <pvanhoof@gnome.org>
152
153         * e-name-selector-entry.c: Making it more easy to remove destinations.
154
155 2005-07-06  Sushma Rai  <rsushma@novell.com>
156
157         * e-contact-store.c (view_sequence_complete): If the
158         current view is finished, stop the view and return. Fixes #309684.
159         Patch submitted by "ross@burtonini.com (Ross Burton)"
160
161 2005-07-06  Kjartan Maraas  <kmaraas@gnome.org>
162
163         * e-source-option-menu.c: (populate): Fix a small leak.
164
165 2005-07-06  Sushma Rai  <rsushma@novell.com>
166
167         * e-book-auth-util.c:
168         * e-name-selector-entry.c:
169         * e-name-selector-dialog.c:
170         * e-categories-dialog.c:
171         * e-destination-store.c:
172         * e-contact-store.c:
173         * e-name-selector.c:
174         * e-name-selector-model.c:
175         * e-tree-model-generator.c: Fixed compiler warnings.
176
177 2005-07-04  Sushma Rai  <rsushma@novell.com>
178
179         * e-name-selector-entry.c: Setting COMPLETION_CUE_MIN_LEN to 3, to
180         start autocompletion from the 3rd character onwards.
181
182 2005-06-28  Sushma Rai  <rsushma@novell.com>
183
184         * e-name-selector-entry.c (setup_contact_store): Added 
185         ensure_type_ahead_complete_on_idle() call back.
186         Patch by "Hans Petter Jansson" to fix #302006.
187
188 2005-06-09  Ross Burton  <ross@burtonini.com>
189
190         * e-categories-dialog.c:
191         * e-categories-dialog.glade:
192         Use GtkFileChooserButton instead of a GnomeFileEntry.
193
194 2005-05-24  Sushma Rai  <rsushma@novell.com>
195
196         * e-name-selector-dialog.c (contact_column_formatter): Using 
197         "full name" field instead of "file as", while displaying contacts in
198         the name selector dialog. 
199         Fixes #300290
200
201 2005-05-13  Changwoo Ryu  <cwryu@debian.org>
202
203         Fixes #301116
204         
205         * e-categories-dialog.c (e_categories_dialog_init): specify the
206         translation domain on glade_xml_new().
207
208 2005-05-09  Mengjie Yu  <meng-jie.yu@sun.com>
209
210         * e-source-selector.c: (selector_popup_menu),
211         (e_source_selector_class_init):
212         We need to implement the popup_menu function to make
213         'F10 + Shift Key' pressing work.
214
215         Fixes #303540
216
217 2005-05-04  Hans Petter Jansson  <hpj@novell.com>
218
219         * e-book-auth-util.c:
220         * e-categories-dialog.c:
221         * e-contact-store.c:
222         * e-destination-store.c:
223         * e-name-selector-dialog.c:
224         * e-name-selector-entry.c:
225         * e-name-selector-model.c:
226         * e-name-selector.c:
227         * e-source-option-menu.c:
228         * e-source-selector.c:
229         * e-tree-model-generator.c: Wrote API docs.
230
231 2005-04-11  Harish Krishnaswamy  <kharish@novell.com>
232
233         * Makefile.am: use API_VERSION 
234
235 2005-04-04  Sivaiah Nallagatla <snallagatla@novell.com>
236
237        * e-book-auth-util.c (load_source_auth_cb)
238         (addressbook_authenticate) : get the uri from Ebook
239        instead of Esource. e_source_get_uri returns NULL when
240        it does not have a reference to source group with it
241        which happens when the source list from which this source
242        was taken is destroyed but Ebook has reference to that source.
243        e_book_get_uri returns the same uri and it will be always present
244        Fixes #73330
245
246 2005-03-31  Hans Petter Jansson  <hpj@novell.com>
247
248         * e-name-selector.c (source_books_destroy): Implement.
249         (e_name_selector_init): Create a list of completion books, and open
250         them with interactive authentication.
251         (e_name_selector_peek_section_entry): Re-use the list of opened books
252         for each entry.
253
254         * e-name-selector-entry.c (e_name_selector_entry_realize): If the user
255         didn't set a contact store, create the default one here.
256         (e_name_selector_entry_class_init): Set up our realize method.
257         (e_name_selector_entry_init): Don't set up the default contact store
258         here.
259         (setup_default_contact_store): Also create the contact store itself.
260         (set_completion_query)
261         (find_existing_completion)
262         (completion_match_selected)
263         (contact_layout_formatter)
264         (popup_activate_contact)
265         (setup_contact_store)
266         (e_name_selector_entry_set_contact_store): Tolerate NULL contact store.
267
268 2005-03-23  Rodrigo Moya <rodrigo@novell.com>
269
270         Fixes #73472
271
272         * e-categories-dialog.c (load_properties_dialog): make the
273         GnomeFileEntry use the file chooser widget.
274
275 2005-03-22  Chenthill Palanisamy  <pchenthill@novell.com>
276      
277         * e-source-selector.c (selector_button_press_event): Do
278         not emit popup signals when clicked on the source group.
279
280 2005-03-04  Rodrigo Moya <rodrigo@novell.com>
281
282         Fixes #38408
283
284         * e-categories-dialog.c (check_category_name): new function to check
285         categories entered by the user for invalid characters.
286         (new_button_clicked_cb): added category name checking. Also, run the
287         dialog continously while there are validation errors.
288
289 2005-03-01  Harry Lu <harry.lu@sun.com>
290
291         Fix for 73010.
292
293         * e-categories-dialog.c: (load_properties_dialog): set modal for
294         the gnome_file_entry.
295
296 2005-02-25  Rodrigo Moya  <rodrigo@novell.com>
297
298         * e-categories-dialog.c (new_button_clicked_cb) :
299         Pass iter to gtk_list_store_set , so that
300         new cateogy gets added properly.
301         Fixes #73011
302         
303 2005-02-23  Hans Petter Jansson  <hpj@novell.com>
304
305         * Makefile.am (libedataserverui_1_2_la_SOURCES)
306         (libedataserveruiinclude_HEADERS): Add e-book-auth-util and
307         e-passwords.
308
309         * e-name-selector-dialog.c (source_selected): Use the authenticating
310         book loader utility.
311         (search_changed): Upgrade query to something that works with all
312         backends.
313
314         * e-name-selector-entry.c (setup_default_contact_store): Use the
315         authenticating book loader utility.
316
317         * e-book-auth-util.c:
318         * e-book-auth-util.h: Add the authenticating book loader utility.
319
320         * e-passwords.c: Remove e-error.h include, it's unnecessary.
321
322 2005-02-21  Harry Lu <harry.lu@sun.com>
323
324         Fix for 9605.
325         * e-name-selector-dialog.c: (add_section),(destination_key_press):
326         add key-press-event handler to delete contact from the list if user
327         press Delete key.
328
329 2005-02-07  Ross Burton  <ross@openedhand.com>
330
331         * test-source-option-menu.c:
332         * test-source-selector.c:
333         Remove useless libgnome use.
334
335 2005-02-03  Ross Burton  <ross@burtonini.com>
336
337         * libedataserverui/e-categories-dialog.c:
338         * libedataserverui/e-contact-store.c:
339         * libedataserverui/e-destination-store.c:
340         * libedataserverui/e-name-selector-dialog.c:
341         * libedataserverui/e-name-selector-entry.c:
342         * libedataserverui/e-name-selector-model.c:
343         * libedataserverui/e-name-selector.c:
344         * libedataserverui/e-source-selector-dialog.c:
345         * libedataserverui/e-tree-model-generator.c:
346         Use glib/gi18n.h.
347
348 2005-01-27  Hao Sheng <hao.sheng@sun.com>
349
350         * e-name-selector-dialog.c:
351         (e_name_selector_dialog_init): set label mnemonic widget.
352         (add_section): set a11y name for button and section.
353
354         * e-name-selector.c:    
355         (e_name_selector_peek_section_entry): set a11y name to the mail entry
356
357         * e-name-selector-dialog.glade: add access name and access key.
358
359 2005-01-26  Rodrigo Moya <rodrigo@novell.com>
360
361         * e-categories-dialog.c (e_categories_dialog_init): only show categories
362         that are searchable (ie, user visible).
363
364 2005-01-25  Rodrigo Moya <rodrigo@novell.com>
365
366         * e-categories-dialog.c (new_button_clicked): set all new categories to
367         be searchable.
368
369 2005-01-24  Hans Petter Jansson  <hpj@novell.com>
370
371         * e-name-selector-entry.c (editor_closed_cb): Implement.
372         (popup_activate_contact): Set up unref callback for when an editor
373         closes.
374
375 2005-01-24  Hans Petter Jansson  <hpj@novell.com>
376
377         * e-contact-store.c (get_book_at_row): Implement.
378         (e_contact_store_get_book): Implement.
379
380         * e-name-selector-entry.c (prepare_popup_destination): Implement.
381         (find_book_by_contact): Implement.
382         (popup_activate_contact): Implement.
383         (popup_activate_email): Implement.
384         (populate_popup): Implement.
385         (e_name_selector_entry_init): Hook us up to the popup menu.
386         (e_name_selector_entry_set_contact_editor_func)
387         (e_name_selector_entry_set_contact_list_editor_func): Implement lame,
388         temporary hack to get at the contact editors in Evolution.
389
390 2005-01-24  Hans Petter Jansson  <hpj@novell.com>
391
392         * e-name-selector-dialog.c (add_section): Set up a custom formatter for
393         destination column.
394         (contact_column_formatter): Format contact lists differently.
395         (destination_column_formatter): Implement, and make special cases for
396         contact lists.
397
398         * e-name-selector-entry.c (contact_layout_formatter): Format contact
399         lists differently.
400         (generate_contact_rows): Contact lists are always one row only.
401
402         * e-name-selector-model.c (generate_contact_rows): Contact lists are
403         always one row only.
404
405 2005-01-24  Hans Petter Jansson  <hpj@novell.com>
406
407         * e-name-selector-entry.c (user_delete_text): If all destinations are
408         removed in one fell swoop, remember to rebuild the attribute list.
409         (user_focus_out): Implement. Completes the current entry (if possible)
410         and clears the completion model so the popup won't show.
411         (e_name_selector_entry_init): Connect to the focus-out-event.
412
413 2005-01-22  Hans Petter Jansson  <hpj@novell.com>
414
415         * e-name-selector-entry.c (name_style_query): Query for the full string
416         with spaces, and the same string elements with comma-space separation.
417         Fixes broken completion for names with spaces in them.
418         (contact_match_cue): Sanitize the value to match before matching. This
419         allows us to match strings that cannot be represented as-is in the
420         entry.
421
422 2005-01-22  Hans Petter Jansson  <hpj@novell.com>
423
424         * Makefile.am (libedataserverui_1_2_la_SOURCES)
425         (libedataserveruiinclude_HEADERS): Add newly implemented
426         ETreeModelGenerator to build.
427
428         * e-tree-model-generator.[ch]: Implement ETreeModelGenerator, a model
429         wrapper similar to GtkTreeModelFilter, but with the capability to map
430         each child row to an arbitrary number of rows, including zero, and pass
431         a permutation identifier to the user's modify callback.
432
433         * e-name-selector-dialog.c (contact_column_formatter): Implement a
434         data formatter for the contact list. This makes it show both names
435         and e-mail addresses.
436         (e_name_selector_dialog_init): Set up data formatter.
437         (sort_iter_to_contact_store_iter): Replace GtkTreeModelFilter with
438         ETreeModelGenerator, and return the email permutation along with the
439         contact iter.
440         (add_destination): Take the email permutation as an argument, and set
441         it in the contact instead of defaulting to the first one.
442         (contact_activated): Pass on email_n.
443         (transfer_button_clicked): Ditto.
444         (setup_name_selector_model): Use ETreeModelGenerator.
445         (deep_free_list): Implement.
446
447         * e-name-selector-entry.c (completion_match_selected): Add the
448         conversion for the e-mail generator, and set the selected e-mail
449         permutation in the destination.
450         (deep_free_list): Implement.
451         (contact_layout_formatter): Implement a data formatter for the
452         completion list, so we can show both names and e-mail addresses.
453         (generate_contact_rows): Implement an e-mail permutation generator.
454         (setup_contact_store): Set up the e-mail generator.
455         (e_name_selector_entry_init): Init the generator pointer. Set up the
456         data formatter.
457
458         * e-name-selector-model.c (e_name_selector_model_init): Replace
459         the GtkTreeModelFilter with an ETreeModelGenerator.
460         (deep_free_list): Implement.
461         (generate_contact_rows): Replace filter_show_not_in_destinations ()
462         with this function, which both filters and generates per-email
463         permutations.
464         (override_email_address): Override the contents of the
465         E_CONTACT_EMAIL_1 string field with the relevant address.
466         (e_name_selector_model_peek_contact_filter): Now returns a generator.
467
468 2005-01-19  Hans Petter Jansson  <hpj@novell.com>
469
470         * e-name-selector-entry.c (sanitize_string): Implement.
471         (get_range_at_position): Keep track of whether we're within quotes or
472         not, and act accordingly.
473         (get_index_at_position): Ditto.
474         (get_range_by_index): Ditto.
475         (is_quoted_at): Implement.
476         (build_textrep_for_contact): Remove ugly hack, no longer needed.
477         (contact_match_cue): Remove comment that no longer has any meaning.
478         (generate_attribute_list): Ditto.
479         (type_ahead_complete): Sanitize inserted string.
480         (sync_destination_at_position): Ditto.
481         (insert_unichar): Treat comma normally if we're within quotes. Update
482         attribute list if we're editing within the string and not appending.
483         (user_delete_text): Ditto, update attribute list if necessary.
484         (destination_row_changed): Sanitize inserted string.
485         (destination_row_inserted): Ditto.
486
487 2005-01-18  Hans Petter Jansson  <hpj@novell.com>
488
489         * e-name-selector-entry.c (find_destination_by_index): Tolerate
490         the case where you're trying to get the first contact and we
491         have zero, without warning.
492         (sync_destination_at_position): Accept the fact that we may not get a
493         destination to sync (happens if there are no destinations and the user
494         activated the entry), and return instead of failing an assertion.
495
496 2005-01-12  Rodrigo Moya <rodrigo@novell.com>
497
498         Fixes #28532
499         
500         * e-categories-dialog.c (new_button_clicked): don't allow creation of
501         categories with names already being used.
502
503 2005-01-10  Rodrigo Moya <rodrigo@novell.com>
504
505         * e-categories-dialog.c (delete_button_clicked_cb): added missing
506         implementation.
507
508 2005-01-10  Rodrigo Moya <rodrigo@novell.com>
509
510         * e-categories-dialog.glade: replaced the 'Edit master ...' button
511         with buttons for adding, editing and removing categories.
512         Added the category properties dialog.
513
514         * e-categories-dialog.c (e_categories_dialog_init): load the buttons
515         from the Glade file.
516         (new_button_clicked_cb, edit_button_clicked_cb,
517         delete_button_clicked_cb): added callbacks for the new buttons in the
518         dialog.
519
520 2005-01-10  Hans Petter Jansson  <hpj@novell.com>
521
522         * e-contact-store.c (e_contact_store_find_contact): Implement.
523
524         * e-name-selector-model.c (e_name_selector_model_init): Set up UID hash
525         field.
526         (emit_destination_uid_changes_cb): Implement.
527         (destinations_changed): Instead of re-filtering everything, calculate
528         the differences between former and current destination UIDs, and
529         emit the change signal for the affected contacts, so they can be
530         re-filtered.
531         (e_name_selector_model_add_section): Call destinations_changed ()
532         instead of re-filtering.
533         (e_name_selector_model_remove_section): Ditto.
534
535 2005-01-07  Rodrigo Moya <rodrigo@novell.com>
536
537         * e-categories-config.c (e_categories_dialog_init): set default response
538         and disable on startup the OK button.
539         (category_toggled_cb, entry_changed_cb): enable OK button on changes.
540
541 2005-01-07  Rodrigo Moya <rodrigo@novell.com>
542
543         * e-categories-config.c (e_categories_dialog_init): set the "active"
544         property on the GtkTreeViewColumn.
545         (e_categories_dialog_set_categories): process correctly the strings
546         array we get from g_strsplit.
547
548 2005-01-07  Rodrigo Moya <rodrigo@novell.com>
549
550         * e-categories-dialog.c (e_categories_dialog_set_categories): added
551         missing code to set the widgets to the specificied categories list.
552         (e_categories_dialog_init): set dialog's title and connect to "toggled"
553         signal on the GtkCellRendererToggle.
554         (category_toggled_cb): callback for the "toggled" signal.
555
556 2005-01-05  Rodrigo Moya <rodrigo@novell.com>
557
558         * e-categories-dialog.h: fixed class structure.
559
560         * e-categories-dialog.c (e_categories_dialog_set_categories): init
561         correctly the private pointer before using it.
562         (e_categories_dialog_dispose): unref the GladeXML object.
563         (e_categories_dialog_init): add the main widget and some buttons to
564         the dialog. Set the correct properties to the category column in the
565         treeview widget.
566
567 2005-01-05  Rodrigo Moya <rodrigo@novell.com>
568
569         * e-categories-dialog.[ch]:
570         * e-categories-dialog.glade:
571         * Makefile.am: added categories dialog implementation, to replace
572         the dialog in GAL.
573
574 2005-01-04  Hans Petter Jansson  <hpj@novell.com>
575
576         * e-contact-store.c (e_contact_store_add_book): Add precondition.
577         (e_contact_store_remove_book): Add precondition.
578
579         * e-name-selector-dialog.c (escape_sexp_string): Implement.
580         (source_selected): If the book cannot be created, don't try to
581         load it.
582         (search_changed): Escape the query string.
583
584         * e-name-selector-entry.c (setup_default_contact_store): Only load
585         true completion sources. Don't try to load books that can't be
586         created.
587
588 2004-12-30  JP Rosevear  <jpr@novell.com>
589
590         * Makefile.am (INCLUDES): include the addressbook builddir as well
591         for generated files
592
593 2004-12-24  Hans Petter Jansson  <hpj@novell.com>
594
595         * e-name-selector-entry.c (find_destination_by_index): Return NULL on
596         failure.
597         (generate_attribute_list): Temporarily disable an assertion.
598         (setup_destination_store): Add previously existing destinations to
599         the store.
600
601 2004-12-23  Hans Petter Jansson  <hpj@novell.com>
602
603         * e-name-selector-entry.c (escape_sexp_string): Implement as a wrapper
604         for e_sexp_encode_string ().
605         (set_completion_query): Encode strings. Free all strings after use.
606         (entry_activate): Implement.
607         (e_name_selector_entry_init): Connect to our own activation signal.
608
609 2004-12-22  Hans Petter Jansson  <hpj@novell.com>
610
611         * e-destination-store.c (e_destination_store_insert_destination): Don't
612         push entries past end of array, ever.
613
614         * e-name-selector-dialog.c (e_name_selector_dialog_dispose): Disconnect
615         from model and clear out the books we're holding.
616         (remove_books): Convenience function that removes all boks from our
617         watch list.
618         (source_selected): Use remove_books ().
619
620         * e-name-selector.c (add_section): Don't take a destination store, we
621         don't need it here.
622         (e_name_selector_dialog): Connect to the window's delete-event, so we
623         can hide it instead of destroying.
624         (e_name_selector_peek_section_entry): Simplify this code a bit. Set the
625         common destination store for the relevant section, on the entry.
626
627         * e-name-selector-entry.c (build_textrep_for_contact): Use just the name
628         for completion, not name + email.
629         (contact_match_cue): Implement.
630         (find_existing_completion): Use contact_match_cue ().
631         (generate_attribute_list): Implement.
632         (expose_event): Implement, applies attribute list.
633         (type_ahead_complete): Rebuild the attribute list if we complete a
634         contact.
635         (modify_destination_at_position): Rebuild attributes as necessary.
636         (sync_destination_at_position): Update cursor position for caller.
637         Rebuild attribute list after sync.
638         (insert_unichar): Clean up handling of comma insertion.
639         (completion_match_selected): Implement.
640         (destination_row_changed): Don't insert the email address. Clear the
641         completion model so we don't get odd completion suggestions. Rebuild
642         the attribute list.
643         (destination_row_inserted): Don't insert the email address.
644         (destination_row_deleted): Clear the completion model. Rebuild the
645         attribute list.
646         (e_name_selector_entry_init): Connect to the expose signal so we can
647         apply attributes.