diff options
Diffstat (limited to 'lib/src/turns-turn-order.c')
| -rw-r--r-- | lib/src/turns-turn-order.c | 17 |
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); |
