gui/model: Add support for gtk_tree_model_iter_children()
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
ed69e3d2b8
commit
b34fd6d522
20
gui/model.c
20
gui/model.c
|
@ -142,6 +142,25 @@ static gboolean _queue_model_iter_next(GtkTreeModel *model, GtkTreeIter *iter)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static gboolean _queue_model_iter_children(GtkTreeModel *model,
|
||||
GtkTreeIter *iter,
|
||||
GtkTreeIter *parent)
|
||||
{
|
||||
GuiQueueModel *gqm = GUI_QUEUE_MODEL(model);
|
||||
|
||||
if (parent)
|
||||
return FALSE;
|
||||
|
||||
if (queue_size(gqm->gqm_queue) == 0)
|
||||
return FALSE;
|
||||
|
||||
_q_iter_init(&gqm->gqm_queue->q_tracks, &gqm->gqm_iter);
|
||||
iter->stamp = gqm->gqm_stamp;
|
||||
iter->user_data = &gqm->gqm_iter;
|
||||
iter->user_data2 = _q_iter_val(&gqm->gqm_iter);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void _queue_model_init(GuiQueueModel *model)
|
||||
{
|
||||
model->gqm_stamp = g_random_int();
|
||||
|
@ -171,6 +190,7 @@ static void _queue_tree_model_init(GtkTreeModelIface *iface)
|
|||
iface->get_path = _queue_model_get_path;
|
||||
iface->get_value = _queue_model_get_value;
|
||||
iface->iter_next = _queue_model_iter_next;
|
||||
iface->iter_children = _queue_model_iter_children;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -88,6 +88,7 @@ static void test_empty()
|
|||
test_equal(G_IS_VALUE(&value), false);
|
||||
|
||||
test_equal(gtk_tree_model_iter_next(model, &iter), false);
|
||||
test_equal(gtk_tree_model_iter_children(model, &iter, NULL), false);
|
||||
|
||||
g_object_unref(model);
|
||||
}
|
||||
|
@ -156,6 +157,10 @@ static void test_model()
|
|||
track = iter.user_data2;
|
||||
test_equal(track->tr_track, 2);
|
||||
|
||||
test_equal(gtk_tree_model_iter_children(model, &iter, NULL), true);
|
||||
track = iter.user_data2;
|
||||
test_equal(track->tr_track, 1);
|
||||
|
||||
g_object_unref(model);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue