diff options
Diffstat (limited to 'gtk/gtklistbase.c')
-rw-r--r-- | gtk/gtklistbase.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/gtk/gtklistbase.c b/gtk/gtklistbase.c index efc2ced6db..201bcb0844 100644 --- a/gtk/gtklistbase.c +++ b/gtk/gtklistbase.c @@ -56,7 +56,7 @@ typedef struct _GtkListBasePrivate GtkListBasePrivate; struct _GtkListBasePrivate { GtkListItemManager *item_manager; - GListModel *model; + GtkSelectionModel *model; GtkOrientation orientation; GtkAdjustment *adjustment[2]; GtkScrollablePolicy scroll_policy[2]; @@ -469,7 +469,7 @@ gtk_list_base_get_n_items (GtkListBase *self) if (priv->model == NULL) return 0; - return g_list_model_get_n_items (priv->model); + return g_list_model_get_n_items (G_LIST_MODEL (priv->model)); } guint @@ -2102,7 +2102,7 @@ gtk_list_base_grab_focus_on_item (GtkListBase *self, return TRUE; } -GListModel * +GtkSelectionModel * gtk_list_base_get_model (GtkListBase *self) { GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); @@ -2111,8 +2111,8 @@ gtk_list_base_get_model (GtkListBase *self) } gboolean -gtk_list_base_set_model (GtkListBase *self, - GListModel *model) +gtk_list_base_set_model (GtkListBase *self, + GtkSelectionModel *model) { GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); @@ -2123,19 +2123,9 @@ gtk_list_base_set_model (GtkListBase *self, if (model) { - GtkSelectionModel *selection_model; - priv->model = g_object_ref (model); - - if (GTK_IS_SELECTION_MODEL (model)) - selection_model = GTK_SELECTION_MODEL (g_object_ref (model)); - else - selection_model = GTK_SELECTION_MODEL (gtk_single_selection_new (g_object_ref (model))); - - gtk_list_item_manager_set_model (priv->item_manager, selection_model); + gtk_list_item_manager_set_model (priv->item_manager, model); gtk_list_base_set_anchor (self, 0, 0.0, GTK_PACK_START, 0.0, GTK_PACK_START); - - g_object_unref (selection_model); } else { |