diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2005-11-18 02:55:30 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2005-11-18 02:55:30 +0800 |
commit | ad3166ad6d7a89c0265af5edb2829718d0de5327 (patch) | |
tree | 7c9f1d561d42eaa16cf471744bc3d8fc4d487e33 /src | |
parent | a145efca78c6a1e81d457fe85cb1e311c61ace6a (diff) | |
download | gsoc2013-epiphany-ad3166ad6d7a89c0265af5edb2829718d0de5327.tar.gz gsoc2013-epiphany-ad3166ad6d7a89c0265af5edb2829718d0de5327.tar.zst gsoc2013-epiphany-ad3166ad6d7a89c0265af5edb2829718d0de5327.zip |
Set the model's sort column only after filling it. Vastly improves delay
2005-11-17 Christian Persch <chpe@cvs.gnome.org>
* src/pdm-dialog.c:
Set the model's sort column only after filling it. Vastly improves
delay when opening the PDM dialogue when you have many cookies.
Diffstat (limited to 'src')
-rwxr-xr-x | src/pdm-dialog.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/pdm-dialog.c b/src/pdm-dialog.c index 69482153f..b46a60c77 100755 --- a/src/pdm-dialog.c +++ b/src/pdm-dialog.c @@ -544,9 +544,7 @@ pdm_dialog_cookies_construct (PdmActionInfo *info) gtk_tree_view_set_headers_visible (treeview, TRUE); selection = gtk_tree_view_get_selection (treeview); gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); - gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (liststore), - COL_COOKIES_HOST, - GTK_SORT_ASCENDING); + info->model = GTK_TREE_MODEL (liststore); g_object_unref (liststore); @@ -722,6 +720,11 @@ pdm_dialog_fill_cookies_list (PdmActionInfo *info) G_CALLBACK (cookie_deleted_cb), info->dialog); g_signal_connect (manager, "cookies-cleared", G_CALLBACK (cookies_cleared_cb), info->dialog); + + /* Now turn on sorting */ + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (info->model), + COL_COOKIES_HOST, + GTK_SORT_ASCENDING); } static void @@ -816,9 +819,7 @@ pdm_dialog_passwords_construct (PdmActionInfo *info) gtk_tree_view_set_headers_visible (treeview, TRUE); selection = gtk_tree_view_get_selection (treeview); gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE); - gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (liststore), - COL_PASSWORDS_HOST, - GTK_SORT_ASCENDING); + info->model = GTK_TREE_MODEL (liststore); g_object_unref (liststore); @@ -871,12 +872,19 @@ static void passwords_changed_cb (EphyPasswordManager *manager, PdmDialog *dialog) { + GtkTreeModel *model = dialog->priv->passwords->model; + LOG ("passwords changed"); /* since the callback doesn't carry any information about what * exactly has changed, we have to rebuild the list from scratch. */ - gtk_list_store_clear (GTK_LIST_STORE (dialog->priv->passwords->model)); + gtk_list_store_clear (GTK_LIST_STORE (model)); + + /* And turn off sorting */ + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), + GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, + GTK_SORT_ASCENDING); dialog->priv->passwords->fill (dialog->priv->passwords); } @@ -908,6 +916,10 @@ pdm_dialog_fill_passwords_list (PdmActionInfo *info) } info->filled = TRUE; + + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (info->model), + COL_PASSWORDS_HOST, + GTK_SORT_ASCENDING); } static void |