diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-07-26 16:38:53 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-07-26 16:38:53 -0400 |
commit | 16b043a1279e1cf3fa3070ccc018b40bc28baf58 (patch) | |
tree | 200eb9d6043ac25804d5da0d392ecda85984696b /gtk | |
parent | 0b7f7028d918e7efb90fc986146d4945e2419d46 (diff) | |
download | gtk+-tree-list-constructor.tar.gz |
treelistmodel: Make constructor transfer fulltree-list-constructor
Make gtk_tree_list_model_new() take the root model
as first argument, and make it transfer full, for
consistency with other wrapping list constructors.
Update all callers.
Still missing here: Make the model property writable,
and allow passing NULL in the constructor.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtktreelistmodel.c | 12 | ||||
-rw-r--r-- | gtk/gtktreelistmodel.h | 4 | ||||
-rw-r--r-- | gtk/inspector/object-tree.c | 9 | ||||
-rw-r--r-- | gtk/inspector/recorder.c | 4 | ||||
-rw-r--r-- | gtk/inspector/resource-list.c | 7 |
5 files changed, 14 insertions, 22 deletions
diff --git a/gtk/gtktreelistmodel.c b/gtk/gtktreelistmodel.c index 4311acb9d3..82b6bf5056 100644 --- a/gtk/gtktreelistmodel.c +++ b/gtk/gtktreelistmodel.c @@ -734,8 +734,8 @@ gtk_tree_list_model_init (GtkTreeListModel *self) /** * gtk_tree_list_model_new: + * @root: (transfer full): The #GListModel to use as root * @passthrough: %TRUE to pass through items from the models - * @root: The #GListModel to use as root * @autoexpand: %TRUE to set the autoexpand property and expand the @root model * @create_func: Function to call to create the #GListModel for the children * of an item @@ -743,12 +743,12 @@ gtk_tree_list_model_init (GtkTreeListModel *self) * @user_destroy: Function to call to free @user_data * * Creates a new empty #GtkTreeListModel displaying @root with all rows collapsed. - * - * Returns: a newly created #GtkTreeListModel. + * + * Returns: a newly created #GtkTreeListModel. **/ GtkTreeListModel * -gtk_tree_list_model_new (gboolean passthrough, - GListModel *root, +gtk_tree_list_model_new (GListModel *root, + gboolean passthrough, gboolean autoexpand, GtkTreeListModelCreateModelFunc create_func, gpointer user_data, @@ -768,7 +768,7 @@ gtk_tree_list_model_new (gboolean passthrough, self->user_data = user_data; self->user_destroy = user_destroy; - gtk_tree_list_model_init_node (self, &self->root_node, g_object_ref (root)); + gtk_tree_list_model_init_node (self, &self->root_node, root); return self; } diff --git a/gtk/gtktreelistmodel.h b/gtk/gtktreelistmodel.h index 1b358f8d6b..e5f76ac5aa 100644 --- a/gtk/gtktreelistmodel.h +++ b/gtk/gtktreelistmodel.h @@ -58,8 +58,8 @@ G_DECLARE_FINAL_TYPE (GtkTreeListRow, gtk_tree_list_row, GTK, TREE_LIST_ROW, GOb typedef GListModel * (* GtkTreeListModelCreateModelFunc) (gpointer item, gpointer user_data); GDK_AVAILABLE_IN_ALL -GtkTreeListModel * gtk_tree_list_model_new (gboolean passthrough, - GListModel *root, +GtkTreeListModel * gtk_tree_list_model_new (GListModel *root, + gboolean passthrough, gboolean autoexpand, GtkTreeListModelCreateModelFunc create_func, gpointer user_data, diff --git a/gtk/inspector/object-tree.c b/gtk/inspector/object-tree.c index 3d86e11693..5b65f03b91 100644 --- a/gtk/inspector/object-tree.c +++ b/gtk/inspector/object-tree.c @@ -1298,18 +1298,13 @@ void gtk_inspector_object_tree_set_display (GtkInspectorObjectTree *wt, GdkDisplay *display) { - GListModel *root_model; - - root_model = create_root_model (display); - wt->priv->tree_model = gtk_tree_list_model_new (FALSE, - root_model, + wt->priv->tree_model = gtk_tree_list_model_new (create_root_model (display), + FALSE, FALSE, create_model_for_object, NULL, NULL); wt->priv->selection = gtk_single_selection_new (G_LIST_MODEL (wt->priv->tree_model)); - g_object_unref (root_model); - gtk_column_view_set_model (GTK_COLUMN_VIEW (wt->priv->list), G_LIST_MODEL (wt->priv->selection)); } diff --git a/gtk/inspector/recorder.c b/gtk/inspector/recorder.c index c07d63b01b..c76fb2971c 100644 --- a/gtk/inspector/recorder.c +++ b/gtk/inspector/recorder.c @@ -1234,8 +1234,8 @@ gtk_inspector_recorder_init (GtkInspectorRecorder *recorder) NULL); recorder->render_node_root_model = g_list_store_new (GDK_TYPE_PAINTABLE); - recorder->render_node_model = gtk_tree_list_model_new (FALSE, - G_LIST_MODEL (recorder->render_node_root_model), + recorder->render_node_model = gtk_tree_list_model_new (g_object_ref (G_LIST_MODEL (recorder->render_node_root_model)), + FALSE, TRUE, create_list_model_for_render_node_paintable, NULL, NULL); diff --git a/gtk/inspector/resource-list.c b/gtk/inspector/resource-list.c index 1cb3770bd4..2abce1df7f 100644 --- a/gtk/inspector/resource-list.c +++ b/gtk/inspector/resource-list.c @@ -692,7 +692,6 @@ static void constructed (GObject *object) { GtkInspectorResourceList *rl = GTK_INSPECTOR_RESOURCE_LIST (object); - GListModel *root_model; GListModel *sort_model; GtkSorter *column_sorter; GtkSorter *sorter; @@ -702,9 +701,8 @@ constructed (GObject *object) g_signal_connect (rl->close_details_button, "clicked", G_CALLBACK (close_details), rl); - root_model = load_resources (); - rl->tree_model = gtk_tree_list_model_new (FALSE, - root_model, + rl->tree_model = gtk_tree_list_model_new (load_resources (), + FALSE, FALSE, create_model_for_object, NULL, @@ -714,7 +712,6 @@ constructed (GObject *object) sorter = gtk_tree_list_row_sorter_new (g_object_ref (column_sorter)); sort_model = G_LIST_MODEL (gtk_sort_list_model_new (g_object_ref (G_LIST_MODEL (rl->tree_model)), sorter)); rl->selection = gtk_single_selection_new (sort_model); - g_object_unref (root_model); g_object_unref (sort_model); gtk_column_view_set_model (GTK_COLUMN_VIEW (rl->list), G_LIST_MODEL (rl->selection)); |