[Models] Route group lookups around mirrored custom zones

Group lookups (createNodeIfNeeded, findCardNode) must not resolve a
mirrored custom zone that shares the group name. Introduce
findGroupChild to search only non-custom children, and make addCard
consult the deck tree before falling back to creating a top-level zone
so cards added to an un-mirrored custom zone land inside it.

mirrorCustomZones now flattens cards nested at any depth into the
mirrored zone so no card is left without a model row.

Add model behaviour tests (addCard routing, same-name group/zone
collision, removeRows guard, empty-zone survival, findCard inside a
custom zone) and fix the missing main() in the unit test binaries.
This commit is contained in:
Lukas Brübach 2026-08-30 22:15:58 +02:00 committed by GitHub
parent 80784d4e02
commit e221d8e1bb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 303 additions and 12 deletions

View file

@ -1,4 +1,4 @@
add_executable(deck_list_model_custom_zones_test deck_list_model_custom_zones_test.cpp)
add_executable(deck_list_model_custom_zones_test ${VERSION_STRING_CPP} deck_list_model_custom_zones_test.cpp)
if(NOT GTEST_FOUND)
add_dependencies(deck_list_model_custom_zones_test gtest)