diff options
author | Jon Trowbridge <trow@ximian.com> | 2001-07-18 03:38:18 +0800 |
---|---|---|
committer | Jon Trowbridge <trow@src.gnome.org> | 2001-07-18 03:38:18 +0800 |
commit | 2890d2c2a1ffdd60f0540b04d7e569c0d8b84127 (patch) | |
tree | fdaa85b6d48fa5277798d7786b526e8fc63b552b /addressbook/gui/component | |
parent | 217e75d071c4de2305d44af930e7a6ebd7b453f0 (diff) | |
download | gsoc2013-evolution-2890d2c2a1ffdd60f0540b04d7e569c0d8b84127.tar.gz gsoc2013-evolution-2890d2c2a1ffdd60f0540b04d7e569c0d8b84127.tar.zst gsoc2013-evolution-2890d2c2a1ffdd60f0540b04d7e569c0d8b84127.zip |
Hold a reference to our listener while the idle function is active.
2001-07-17 Jon Trowbridge <trow@ximian.com>
* 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.
svn path=/trunk/; revision=11165
Diffstat (limited to 'addressbook/gui/component')
3 files changed, 31 insertions, 9 deletions
diff --git a/addressbook/gui/component/select-names/e-select-names-manager.c b/addressbook/gui/component/select-names/e-select-names-manager.c index ead51d8dca..b255942d08 100644 --- a/addressbook/gui/component/select-names/e-select-names-manager.c +++ b/addressbook/gui/component/select-names/e-select-names-manager.c @@ -425,13 +425,13 @@ e_select_names_clicked(ESelectNames *dialog, gint button, ESelectNamesManager *m for (e_iterator_reset(iterator); e_iterator_is_valid(iterator); e_iterator_next(iterator)) { ESelectNamesManagerSection *section = (void *) e_iterator_get(iterator); ESelectNamesModel *source = e_select_names_get_source(dialog, section->id); - if (section->model) - gtk_object_unref(GTK_OBJECT(section->model)); - section->model = source; - /* Don't ref because get_source returns a conceptual ref_count of 1. */ + e_select_names_model_overwrite_copy (section->model, source); + gtk_object_unref (GTK_OBJECT (source)); + } gtk_object_unref(GTK_OBJECT(iterator)); +#if 0 list = manager->entries; iterator = e_list_get_iterator(list); for (e_iterator_reset(iterator); e_iterator_is_valid(iterator); e_iterator_next(iterator)) { @@ -449,6 +449,7 @@ e_select_names_clicked(ESelectNames *dialog, gint button, ESelectNamesManager *m } } gtk_object_unref(GTK_OBJECT(iterator)); +#endif break; } } diff --git a/addressbook/gui/component/select-names/e-select-names-model.c b/addressbook/gui/component/select-names/e-select-names-model.c index f102421f0e..dc383994d3 100644 --- a/addressbook/gui/component/select-names/e-select-names-model.c +++ b/addressbook/gui/component/select-names/e-select-names-model.c @@ -592,6 +592,26 @@ e_select_names_model_delete_all (ESelectNamesModel *model) } void +e_select_names_model_overwrite_copy (ESelectNamesModel *dest, ESelectNamesModel *src) +{ + gint i, len; + + g_return_if_fail (dest && E_IS_SELECT_NAMES_MODEL (dest)); + g_return_if_fail (src && E_IS_SELECT_NAMES_MODEL (src)); + + if (src == dest) + return; + + e_select_names_model_delete_all (dest); + len = e_select_names_model_count (src); + for (i = 0; i < len; ++i) { + const EDestination *d = e_select_names_model_get_destination (src, i); + if (d) + e_select_names_model_append (dest, e_destination_copy (d)); + } +} + +void e_select_names_model_name_pos (ESelectNamesModel *model, gint index, gint *pos, gint *length) { gint rp = 0, i, len = 0; diff --git a/addressbook/gui/component/select-names/e-select-names-model.h b/addressbook/gui/component/select-names/e-select-names-model.h index 330f1ddd82..b11e9503ec 100644 --- a/addressbook/gui/component/select-names/e-select-names-model.h +++ b/addressbook/gui/component/select-names/e-select-names-model.h @@ -61,11 +61,12 @@ void e_select_names_model_import_destinationv (ESelectNamesModel ECard *e_select_names_model_get_card (ESelectNamesModel *model, gint index); const gchar *e_select_names_model_get_string (ESelectNamesModel *model, gint index); -void e_select_names_model_insert (ESelectNamesModel *model, gint index, EDestination *dest); -void e_select_names_model_append (ESelectNamesModel *model, EDestination *dest); -void e_select_names_model_replace (ESelectNamesModel *model, gint index, EDestination *dest); -void e_select_names_model_delete (ESelectNamesModel *model, gint index); -void e_select_names_model_delete_all (ESelectNamesModel *model); +void e_select_names_model_insert (ESelectNamesModel *model, gint index, EDestination *dest); +void e_select_names_model_append (ESelectNamesModel *model, EDestination *dest); +void e_select_names_model_replace (ESelectNamesModel *model, gint index, EDestination *dest); +void e_select_names_model_delete (ESelectNamesModel *model, gint index); +void e_select_names_model_delete_all (ESelectNamesModel *model); +void e_select_names_model_overwrite_copy (ESelectNamesModel *dest, ESelectNamesModel *src); void e_select_names_model_clean (ESelectNamesModel *model); |