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;
|
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)
|
static void _queue_model_init(GuiQueueModel *model)
|
||||||
{
|
{
|
||||||
model->gqm_stamp = g_random_int();
|
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_path = _queue_model_get_path;
|
||||||
iface->get_value = _queue_model_get_value;
|
iface->get_value = _queue_model_get_value;
|
||||||
iface->iter_next = _queue_model_iter_next;
|
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(G_IS_VALUE(&value), false);
|
||||||
|
|
||||||
test_equal(gtk_tree_model_iter_next(model, &iter), 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);
|
g_object_unref(model);
|
||||||
}
|
}
|
||||||
|
@ -156,6 +157,10 @@ static void test_model()
|
||||||
track = iter.user_data2;
|
track = iter.user_data2;
|
||||||
test_equal(track->tr_track, 2);
|
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);
|
g_object_unref(model);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue