summaryrefslogtreecommitdiff
path: root/lib/src/turns-turn-order.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/src/turns-turn-order.c')
-rw-r--r--lib/src/turns-turn-order.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/src/turns-turn-order.c b/lib/src/turns-turn-order.c
index 5d6f99b..9a08d2e 100644
--- a/lib/src/turns-turn-order.c
+++ b/lib/src/turns-turn-order.c
@@ -230,6 +230,23 @@ void turns_turn_order_clear(TurnsTurnOrder * self)
g_list_model_items_changed(G_LIST_MODEL(self), 0, old_size, 0);
}
+void turns_turn_order_remove_at(TurnsTurnOrder * self, guint position)
+{
+ g_return_if_fail(TURNS_IS_TURN_ORDER(self));
+
+ auto element = g_slist_nth(self->participants, position);
+
+ if (!element)
+ {
+ return;
+ }
+
+ g_object_unref(element->data);
+ self->participants = g_slist_delete_link(self->participants, element);
+
+ g_list_model_items_changed(G_LIST_MODEL(self), position, 1, 0);
+}
+
gsize turns_turn_order_get_participant_count(TurnsTurnOrder const * self)
{
g_return_val_if_fail(TURNS_IS_TURN_ORDER((TurnsTurnOrder *)self), 0);