[gtk/gbsneto/filechooser-column-view: 81/105] filechooserwidget: Use GListModel API for post-renaming selection
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gbsneto/filechooser-column-view: 81/105] filechooserwidget: Use GListModel API for post-renaming selection
- Date: Wed, 12 Oct 2022 20:42:37 +0000 (UTC)
commit cd7537bcb2cd9832683c6ec9c18f8035f47a7005
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Mon Oct 10 11:28:50 2022 -0300
filechooserwidget: Use GListModel API for post-renaming selection
gtk/gtkfilechooserwidget.c | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
---
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index 43359779e8..fefe71d1b6 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -3692,19 +3692,28 @@ browse_files_model_finished_loading_cb (GtkFileSystemModel *model,
/* Callback used when file system model adds or updates a file.
* We detect here when a new renamed file appears and reveal it */
static void
-browse_files_model_row_changed_cb (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GtkFileChooserWidget *impl)
+browse_files_model_items_changed_cb (GListModel *model,
+ guint position,
+ guint removed,
+ guint added,
+ GtkFileChooserWidget *impl)
{
- GFile *file;
- GSList files;
+ if (!impl->renamed_file)
+ return;
- if (impl->renamed_file)
+ for (guint i = 0; i < added; i++)
{
- gtk_tree_model_get (model, iter, MODEL_COL_FILE, &file, -1);
+ GFileInfo *info;
+ GFile *file;
+
+ info = g_list_model_get_item (model, position + i);
+ file = _gtk_file_info_get_file (info);
+ g_clear_object (&info);
+
if (g_file_equal (impl->renamed_file, file))
{
+ GSList files;
+
g_clear_object (&impl->renamed_file);
files.data = (gpointer) file;
@@ -3712,8 +3721,6 @@ browse_files_model_row_changed_cb (GtkTreeModel *model,
show_and_select_files (impl, &files);
}
-
- g_object_unref (file);
}
}
@@ -4033,8 +4040,8 @@ set_list_model (GtkFileChooserWidget *impl,
g_signal_connect (impl->browse_files_model, "finished-loading",
G_CALLBACK (browse_files_model_finished_loading_cb), impl);
- g_signal_connect (impl->browse_files_model, "row-changed",
- G_CALLBACK (browse_files_model_row_changed_cb), impl);
+ g_signal_connect (impl->selection_model, "items-changed",
+ G_CALLBACK (browse_files_model_items_changed_cb), impl);
_gtk_file_system_model_set_filter (impl->browse_files_model, impl->current_filter);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]