2003-04-23 Chris Toshok <toshok@ximian.com>
[ either mostly or entirely fixes#33708 ]
* gui/component/select-names/e-select-names-completion.c
(e_select_names_completion_done): new function, factor it out of
_seq_complete_cb because we need to run the same code in a couple
of places.
(e_select_names_completion_got_book_view_cb): treat an error from
a book as getting a "sequence_complete", and decrement the count
of pending complete signals.
(e_select_names_completion_got_book_view_cb): remove the increment
of pending_completion_seq from here.
(e_select_names_completion_seq_complete_cb): factor out the body
of e_select_names_completion_done from here, and call it.
(e_select_names_completion_start_query): increment
pending_completion_seq here. remove the async variable, as we can
now use pending_completion_seq for that purpose (it's > 0 iff
async would have been TRUE).
svn path=/trunk/; revision=20943
2003-04-16 Chris Toshok <toshok@ximian.com>
[ fixes#40694 ]
* gui/component/select-names/e-select-names-bonobo.c
(control_activate_cb): just grab focus if @activate == TRUE.
we'll do all merging/unmerging in the focus handler.
(widget_focus_cb): handle the merging here.
(e_bonobo_control_automerge_ui): store off the widget (so we can
grab focus on it) and connect to "activate".
svn path=/trunk/; revision=20897
2003-04-09 Chris Toshok <toshok@ximian.com>
[ fixes#40727 ]
* gui/component/select-names/e-select-names-completion.c
(e_select_names_completion_start_query): if the query text is
either shorter than the cached query_text or they don't match,
don't just set can_reuse_cached_cards to FALSE. we also need to
invalidate the cache.
svn path=/trunk/; revision=20780
2003-04-08 Mike Kestner <mkestner@ximian.com>
* e-search-bar.c (set_option): kill an old e_utf8_gtk usage
and remove some straggling e-font.h includes.
svn path=/trunk/; revision=20769
* gui/component/ldap-config.glade: Remove color specifications
from the druid so it will use theme colors.
* gui/component/addressbook-config.c
(addressbook_add_server_druid): Use g_signal_connect_after for
"prepare" signal (to work around b.g.o 81869)
svn path=/trunk/; revision=20756
2003-04-07 Chris Toshok <toshok@ximian.com>
[ fixes bug #39763 ]
* gui/component/select-names/e-select-names-bonobo.c (copy_cb):
verb callback for EditCopy
(cut_cb): verb callback for EditCut.
(paste_cb): verb callback for EditPaste.
(select_all_cb): verb callback for SelectAll.
(free_closure): new function
(merge_menu_items): same
(unmerge_menu_items): same
(control_set_frame_cb): same
(control_activate_cb): same
(widget_focus_cb): same
(e_bonobo_control_automerge_ui): new function, sets up focus
signals on the widget passed in to merge/unmerge the passed in
ui/verbs.
(impl_SelectNames_get_entry_for_section): call
e_bonobo_control_automerge_ui for this entry.
svn path=/trunk/; revision=20735
2003-04-07 Chris Toshok <toshok@ximian.com>
* gui/component/e-address-popup.c (mini_wizard_new): change the
ok/cancel button layout to be higified.
svn path=/trunk/; revision=20720
2003-04-07 Chris Toshok <toshok@ximian.com>
[ last portion of #40046 fix ]
* gui/component/select-names/e-select-names-popup.c
(remove_recipient_cb): ifdef this out to quiet the compiler.
(remove_all_recipients_cb): same.
(toggle_html_mail_cb): same.
(populate_popup_card): change the #if 0 to #if
TOO_MANY_MENU_ITEMS.
(popup_menu_list): nuke, as it's handled by populate_popup_card.
(populate_popup_nocard): rename popup_menu_nocard to this, and
implement it as in populate_popup_card.
(e_select_names_populate_popup): we don't need the card, since we
don't check if it's a list here anymore. also, remove the #if 0
surrounding the nocard case.
svn path=/trunk/; revision=20718
* gui/component/GNOME_Evolution_Addressbook.server.in.in: Clean up
server names.
* gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.server.in.in:
Likewise
* backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.server.in.in:
Likewise. Also mark the evolution:menu_name for i18n.
* backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.server.in.in:
Likewise
svn path=/trunk/; revision=20704
2003-04-03 Chris Toshok <toshok@ximian.com>
[ fixes bug #40715 ]
* gui/merging/e-card-merging.c (final_id_cb): add this callback,
to unref the book/free the closure after calling the user's
callback.
(final_cb): same.
(doit): use final{_id}_cb
(cancelit): same.
(response): don't free the lookup struct here.
(match_query_callback): same.
(e_card_merging_book_add_card): ref the book.
(e_card_merging_book_commit_card): same.
* gui/component/e-address-popup.c (card_picker_init): make sure to
set the "text" attribute on the cell renderer so the text actually
shows up. also, g_object_connect -> g_signal_connect *sigh*.
Lastly, get rid of the scrolled window and just make the window
size to show the text.
* gui/widgets/e-minicard.c (e_minicard_style_set): only call
set_selected if we're realized (we create all the canvas objects
that set_selected manipulates in our realize method.)
svn path=/trunk/; revision=20662
2003-04-02 Chris Toshok <toshok@ximian.com>
* gui/component/select-names/e-select-names-popup.c: change all
this around so that we populate the existing popup. This means we
get the select names popup stuff on top of the normal EEntry popup
foo.
* gui/component/select-names/e-select-names-popup.h
(e_select_names_populate_popup): rename e_select_names_popup to
this.
* gui/component/select-names/e-select-names-manager.c
(populate_popup_cb): rename popup_cb here, and
e_select_names_popup -> e_select_names_populate_popup.
(e_select_names_manager_entry_new): popup -> populate_popup.
svn path=/trunk/; revision=20654
* gui/component/select-names/e-select-names.c
(e_select_names_init): Remove folder-selector button
initialization.
(e_select_names_new): Initialize folder-selector button here,
using the passed-in EvolutionShellClient rather than depending on
a global variable.
* gui/component/select-names/e-select-names-manager.c
(e_select_names_manager_activate_dialog): take an
EvolutionShellClient and pass it to e_select_names_new().
* gui/component/select-names/e-select-names-bonobo.c
(impl_SelectNames_activate_dialog): get a pointer to the shell
from bonobo-activation, create a shell_client, and pass it to
e_select_names_manager_activate_dialog.
svn path=/trunk/; revision=20597
2003-03-23 Chris Toshok <toshok@ximian.com>
[ fixes bug #31786 ]
* gui/component/addressbook-config.c
(addressbook_source_dialog_set_source): fix some gtk warnings.
(set_advanced_button_state): the advanced dialog isn't present in
the glade file anymore, so ifdef everything dealing with it.
(addressbook_edit_server_dialog): same.
* gui/component/ldap-config.glade: remove all the unused Advanced
UI stuff to lessen the amount of strings needing translation.
svn path=/trunk/; revision=20472
2003-03-18 Chris Toshok <toshok@ximian.com>
* gui/component/select-names/e-select-names-table-model.c
(e_select_names_table_model_col_count): up the column count by one
for the underline.
(e_select_names_table_model_value_at): add handling for underline.
svn path=/trunk/; revision=20355
2003-03-18 Chris Toshok <toshok@ximian.com>
* gui/component/e-address-popup.c (email_menu_add_option): fix use
of deprecated gtk_menu_append.
(card_picker_selection_changed): change this to be used with the
"changed" signal on GtkTreeSelection.
(free_str): yeah, gross. i know.
(card_picker_init): this needed some fixing, so the strings don't
go away after we insert them into the model. also, connect to the
"changed" GtkTreeSelection signal instead of using the nonexistant
gtk_tree_selection_set_func.
(e_address_popup_construct): gtk_style_unref -> g_object_unref.
(popup_size_allocate_cb): nuke.
(e_address_popup_ambiguous_email_add): use gtk_window_set_position
and let the window manager place the window instead of doing it
ourself.
svn path=/trunk/; revision=20352
2003-03-18 Chris Toshok <toshok@ximian.com>
[ Fixes addressbook bug #39730 ]
* gui/component/ldap-config.glade: add response ids to the search
base dialog.
* gui/component/addressbook-config.c
(addressbook_source_dialog_destroy): use g_object_unref, not
gtk_widget_destroy, on the GladeXML.
(addressbook_add_server_druid): call gtk_window_set_type_hint
GDK_WINDOW_TYPE_HINT_DIALOG so this window looks like a dialog.
(editor_modify_cb): no more apply button.
(edit_dialog_apply_clicked): nuked.
(edit_dialog_close_clicked): rename to _cancal_clicked.
(edit_dialog_ok_clicked): call gtk_widget_destroy here instead of
calling _cancel_clicked.
(addressbook_edit_server_dialog): no more apply button, and
close_button -> cancel_button. Also, set the hint to
GDK_WINDOW_TYPE_HINT_DIALOG.
(ldap_dialog_new): fix compiler warning.
(addressbook_dialog_create_sources_table): same.
svn path=/trunk/; revision=20351
2003-03-18 Chris Toshok <toshok@ximian.com>
* gui/component/select-names/e-select-names-section.etspec: use
alternating-row-colors="false"
* gui/component/select-names/e-select-names.h: nuke prototypes for
e_select_names_get_source/section.
* gui/component/select-names/e-select-names.c (set_book): remove
the signal disconnect from here.
(addressbook_model_set_uri): same.
(e_select_names_init): connect to the search_result signal on the
addressbook model.
(e_select_names_child_free): disconnect the changed_id signal.
(e_select_names_add_section): set the underline column so the
recipient tables look like they did when they were EEntry.
(e_select_names_add_section): store off the changed_id.
(e_select_names_get_section): nuke.
(e_select_names_get_source): nuke.
svn path=/trunk/; revision=20345
2003-03-18 Not Zed <NotZed@Ximian.com>
* gui/component/select-names/e-select-names.c (set_book,
addressbook_model_set_uri): disconnect/keep track of search result
signal id.
(e_select_names_init): Keep track of various signals, particularly
status signal.
(e_select_names_dispose): disconnect from any signals that are
still active. Fixes crash for #38202.
svn path=/trunk/; revision=20334
2003-03-12 Chris Toshok <toshok@ximian.com>
[ fixes bug #20210 ]
* gui/component/select-names/e-select-names-popup.c
(popup_menu_card): change "Edit Contact Info" to "View Contact
Info", as you can't always edit the contact (if the book is read
only).
(popup_menu_list): same, but for a contact list.
svn path=/trunk/; revision=20270
2003-03-11 Chris Toshok <toshok@ximian.com>
[ fixes bug #39507 ]
* gui/component/select-names/e-select-names.c (search_result): new
function, sync the models after we do a search.
(addressbook_model_set_uri): connect to search_result.
svn path=/trunk/; revision=20260
2003-03-11 Chris Toshok <toshok@ximian.com>
* gui/component/select-names/e-select-names.c
(e_select_names_init): fix compiler warnings about deprecated
functions.
(e_select_names_child_free): unref the table model.
(remove_address): re-enable.
(section_right_click_cb): this is an ETable callback now.
(e_select_names_add_section): remove a gross gross awful hack, and
make the recipient tables ETables instead EEntry's. We lose the
nice underlining, but we can add that back in as another ETable
style (like strikeout and bold), and we also fix the longstanding
scrolling problems (like bug #25148) and can finally remove
addresses by double clicking on them (which is also a bug
someplace I think.. dunno the # offhand.)
* gui/component/select-names/e-select-names-table-model.c
(clear_info): always set the count to -1, regardless of what
model->data is.
* gui/component/select-names/e-select-names-model.c: remove some
unused enums.
* gui/component/select-names/Makefile.am (etspec_DATA): add
e-select-names-section.etspec
* gui/component/select-names/e-select-names-section.etspec: new
file, spec for the To:/Cc:/Bcc: etable's in the select-names
dialog.
svn path=/trunk/; revision=20259
2003-03-05 Not Zed <NotZed@Ximian.com>
* gui/component/addressbook-component.c (bonobo_main_quit_cb):
removed.
(owner_unset_cb): Basically a noop, the shell does the quit, we
just note we have no owner anymore.
svn path=/trunk/; revision=20164
2003-03-04 JP Rosevear <jpr@ximian.com>
Fixes#37881
* gui/component/select-names/e-simple-card-bonobo.c
(impl_SimpleCard_get): if we get a null value, send back the empty
string
svn path=/trunk/; revision=20159
remove the widget from the container using gtk_container_remove().
This fixes a bunch of crashers in all the places using the
ESelectNames widget/control.
svn path=/trunk/; revision=20127
* gui/contact-editor/Makefile.am: Build libecontacteditor as an
uninstalled shared library.
* gui/contact-list-editor/Makefile.am: Likewise for
libecontactlisteditor
* gui/merging/Makefile.am: and libecardmerging
* gui/search/Makefile.am: and libeaddressbooksearch
* gui/widgets/Makefile.am: and libeminicard
* printing/Makefile.am: and libecontactprint
* gui/component/Makefile.am (libevolution_addressbook_la_LIBADD):
Update for new library names (and get rid of libtool portability
warnings).
svn path=/trunk/; revision=20112
2003-02-27 Chris Toshok <toshok@ximian.com>
* gui/component/addressbook.c (book_open_cb): use g_signal_connect
here, not swapped... although since we pass the widget as the
closure it really doesn't matter.
(load_uri_auth_cb): use a GtkDialog here.
(search_result): same.
* gui/component/select-names/e-simple-card-bonobo.h: add prototype
for e_simple_card_bonobo_construct to fix warning.
* gui/widgets/e-addressbook-view.c (create_alphabet): remove call
to gtk_widget_set_usize.
* gui/contact-editor/e-contact-editor-address.c
(e_contact_editor_address_init): gtk_window_set_policy =>
gtk_window_set_resizable.
* gui/contact-editor/e-contact-editor-fullname.c
(e_contact_editor_fullname_init): same.
svn path=/trunk/; revision=20095
2003-02-26 Chris Toshok <toshok@ximian.com>
* backend/ebook/e-book.c (e_book_load_uri): if we fail to activate
factories for a given protocol, return.
* gui/component/ldap-config.glade: remove the two unused custom
widgets to cut down on gtk warning spam.
svn path=/trunk/; revision=20080
* gui/component/Makefile.am:
* gui/contact-editor/Makefile.am:
* gui/contact-list-editor/Makefile.am:
* gui/search/Makefile.am:
* gui/widgets/Makefile.am:
* printing/Makefile.am: Build the subparts as (noinst) shared
libraries rather than static libraries, so they can be portably
linked into libevolution-addressbook.so
svn path=/trunk/; revision=19963
2003-02-19 Chris Toshok <toshok@ximian.com>
[ fix#38074 ]
* gui/component/e-address-popup.c (add_contacts_cb): first arg is
a GtkWidget. duh.
svn path=/trunk/; revision=19952
2003-02-17 Chris Toshok <toshok@ximian.com>
* gui/component/select-names/e-select-names-completion.c
(e_select_names_completion_start_query): if we can complete solely
from our cached cards, call e_completion_end_search from here when
we're done.
svn path=/trunk/; revision=19925
2003-02-09 Chris Toshok <toshok@ximian.com>
* gui/component/select-names/e-select-names-completion.c
(sexp_initials): gone.
(match_initials): gone.
(book_query_sexp): remove the primary handling.
(book_query_score): same.
* backend/ebook/e-card.c (e_card_set_property):
g_value_get_pointer => g_value_get_object for "category_list".
* backend/ebook/e-book.c (struct _EBookPrivate): add a comment.
* backend/pas/pas-backend-ldap.c (func_beginswith): performance at
the cost of a tiny bit of correctness. If the ldap server doesn't
support evolutionPerson don't query on fileAs, use sn (since
that's effectively what gets used in the display when fileAs isn't
supported.)
svn path=/trunk/; revision=19863
2003-02-09 Chris Toshok <toshok@ximian.com>
* gui/component/select-names/e-select-names-completion.c: lots of
changes here. should be a big performance gain. god i hope this
is finally right.
svn path=/trunk/; revision=19860
2003-02-08 Chris Toshok <toshok@ximian.com>
[ huge change, all for 1 little performance problem :) fixes#18207 ]
* gui/widgets/e-addressbook-model.c (get_view): use
e_book_check_static_capability here to make things a little
prettier.
(remove_card): complain about my life, and add code to use one
"model_changed" signal if we get back a list of cards instead of
multiple "card_removed" signals.
* gui/widgets/e-addressbook-model.h: little clean up.
* gui/widgets/e-addressbook-view.c (delete): write a bulk-remove
case for this. if the backend supports it, send all the ids at
once. otherwise loop over the ids.
(e_addressbook_view_delete_selection): fake a CardAndBook
structure and call delete, instead of duplicating the code in 2
places.
* gui/component/addressbook.c (delete_contact_cb): don't call
e_contact_editor_confirm_delete here, it's handled by the
EAddressbookView.
* backend/pas/pas-card-cursor.c (pas_card_cursor_construct): fix a
compiler warning about a stupid crash.
* backend/pas/pas-book.h (PASOperation): RemoveCard ->
RemoveCards.
(PASRemoveCardsReques): char *id -> GList *ids.
(PASRequest): PASRemoveCardRequest -> PASRemoveCardsRequest.
* backend/pas/pas-book.c (pas_book_queue_remove_cards): build up a
GList from the id sequence.
(pas_book_respond_remove): notifyCardRemoved ->
notifyCardsRemoved.
(impl_GNOME_Evolution_Addressbook_Book_removeCards): rename.
(pas_book_free_request): free the idlist for RemoveCards.
(pas_book_class_init): removeCard -> removeCards.
* backend/pas/pas-book-view.h: change prototype for
pas_book_view_notify_remove, and add prototype for
pas_book_view_notify_remove_1.
* backend/pas/pas-book-view.c (pas_book_view_notify_remove_1):
build up a list and call pas_book_view_notify_remove.
(pas_book_view_notify_remove): build up the corba id sequence and
call BookViewListener::notifyCardsRemoved.
* backend/pas/pas-backend.h: remove_card -> remove_cards.
* backend/pas/pas-backend.c (pas_backend_remove_cards): rename
from _remove_card.
(process_client_requests): RemoveCard -> RemoveCards and
_remove_card -> _remove_cards.
* backend/pas/pas-backend-ldap.c (check_schema_support):
g_strcasecmp -> g_ascii_strcasecmp.
(remove_card_handler): _remove => _remove_1.
(modify_card_modify_handler): same.
(pas_backend_ldap_process_remove_cards): rename from _remove_card.
(pas_backend_ldap_class_init): _remove_card -> _remove_cards.
* backend/pas/pas-backend-file.c (pas_backend_file_class_init):
remove_card -> remove_cards.
(pas_backend_file_get_static_capabilities): add "bulk-removes".
(pas_backend_file_process_remove_cards): rewrite this function
largely, so that it handles lists of ids. first we loop through
and for every successful deletion we build a list of deleted
ECards. Then for each view we build a list (a subset of the
deleted ECard list) and pass back that list to the view.
(pas_backend_file_process_modify_card): use _remove_1 instead of
_remove.
(ecard_matches_search): new function.
* backend/pas/pas-backend-card-sexp.c
(pas_backend_card_sexp_match_vcard): rewrite in terms of
_match_ecard.
(pas_backend_card_sexp_match_ecard): new function, the guts from
_match_vcard.
* backend/pas/pas-backend-card-sexp.h: add prototype for
pas_backend_card_sexp_match_ecard.
* backend/idl/addressbook.idl: the card removal stuff now takes
CardIdList.
* backend/ebook/e-book.c (e_book_get_static_capabilities): cache
successful capability queries (since they're static).
(e_book_check_static_capability): new, convenience function to
check if a particular capability is supported.
(e_book_remove_card_by_id): build a single element GList and call
e_book_remove_cards.
(e_book_remove_cards): build up a CORBA sequence from the GList
and call Book::removeCards.
(e_book_dispose): free the cached capabilities string.
* backend/ebook/e-book.h: add new prototypes for
e_book_check_static_capability and e_book_remove_cards.
* backend/ebook/e-book-view.h (struct _EBookViewClass): rename
"card_removed" signal to "cards_removed".
* backend/ebook/e-book-view.c (e_book_view_do_removed_event): id
-> ids, and free the id list.
(e_book_view_check_listener_queue): CardRemovedEvent ->
CardsRemovedEvent.
* backend/ebook/e-book-view-listener.c
(e_book_view_listener_queue_response): free the id list.
(e_book_view_listener_queue_idlist_event): new function, used for
cards_removed.
(e_book_view_listener_queue_status_event): id -> ids.
(e_book_view_listener_queue_sequence_event): same.
(e_book_view_listener_queue_message_event): same.
(impl_BookViewListener_notify_cards_removed): call
queue_idlist_event.
(e_book_view_listener_dispose): free the id list.
(e_book_view_listener_class_init): track change to idl call.
* backend/ebook/e-book-view-listener.h
(EBookViewListenerOperation): CardRemovedEvent ->
CardsRemovedEvent.
(EBookViewListenerResponse): char *id -> GList *ids.
* backend/ebook/e-book-listener.c
(impl_BookListener_respond_r
svn path=/trunk/; revision=19854
2003-02-06 Chris Toshok <toshok@ximian.com>
* gui/component/e-address-popup.c (email_table_save_card_cb):
check the status, not the book, and unref the book here.
(contact_editor_cb): same.
(start_query): unref the book in the failure case.
(add_card_idle_cb): addressbook_load_default_book returns void
now.
(edit_contact_info_cb): same.
(e_address_popup_query): same.
* gui/component/addressbook.c (control_activate_cb): track change
to addressbook_load_uri return type.
(set_prop): same.
(addressbook_load_uri): return type is void now.
(addressbook_load_default_book): same.
* gui/component/addressbook.h:
addressbook_load_uri/addressbook_load_default_book return void
now.
* conduit/address-conduit.c (start_addressbook_server):
e_book_load_default_book returns void now.
* backend/ebook/e-book-util.h: track changes to return types.
* backend/ebook/e-book-util.c (e_book_load_address_book_by_uri):
fallout from change to e_book_load_uri. return type for this
function is void now too.
(e_book_use_address_book_by_uri): same.
(e_book_use_default_book): same.
(e_book_load_default_book): same.
(got_uri_book_cb): if unsuccessful and book is non-NULL, unref it
here.
(got_default_book_cb): same.
* backend/ebook/e-book.c (e_book_load_uri): no longer return a
gboolean. any error is communicated to the callback.
* backend/ebook/e-book.h: e_book_load_uri no longer returns a
gboolean (it's void.)
* backend/ebook/evolution-ldif-importer.c (ebook_create): track
change to the e_book_load_uri family of functions.
* backend/ebook/test-client-list.c (ebook_create): same.
* backend/ebook/test-client.c (ebook_create): same.
* backend/ebook/load-pine-addressbook.c (ebook_create): same.
* backend/ebook/evolution-vcard-importer.c (ebook_create): same.
svn path=/trunk/; revision=19839
* backend/ebook/Makefile.am (e-book-marshal.c, e-book-marshal.h):
Use different tmp file names so these rules can be executed in
parallel without interfering with each otehr.
* backend/pas/Makefile.am: Make the ORBit compilation work
properly with parallel makes (i.e. make sure it does not spawn
multiple orbit-idl processes on the same IDL file at the same
time).
* gui/component/select-names/Makefile.am: Likewise.
* backend/ebook/Makefile.am: Likewise.
svn path=/trunk/; revision=19834