feat(command-zone): add graphics implementation with integration tests

Implement CommandZone - the main Qt graphics class for rendering and
interacting with command zones.

This commit brings together all previous components:
- Uses CommandZoneState for visibility management
- Uses CommandZoneLogic for card data handling
- Uses ZoneToggleButton for visibility controls
- Uses CommanderTaxCounter for tax display
- Uses z_values.h for proper visual layering

Zone modifications for command zone support:
- SelectZone: add command zone to zone selection
- StackZone: support command zone in stack operations
- TableZone: command zone positioning integration
- ViewZoneWidget: command zone viewing support

Integration tests verify:
- Counter parenting behavior
- Zone state coordination
- Full graphics stack interaction
This commit is contained in:
DawnFire42 2026-02-25 13:35:09 -05:00
parent 78db49a9b3
commit 6e83d64622
12 changed files with 1570 additions and 8 deletions

View file

@ -69,6 +69,26 @@ target_link_libraries(command_zone_state_test
add_test(NAME command_zone_state_test COMMAND command_zone_state_test)
# ------------------------
# Command Zone Integration Test
# Tests counter parenting and zone coordination
# ------------------------
add_executable(command_zone_integration_test
command_zone_integration_test.cpp
)
target_include_directories(command_zone_integration_test
PRIVATE ${CMAKE_SOURCE_DIR}
)
target_link_libraries(command_zone_integration_test
PRIVATE Threads::Threads
PRIVATE ${GTEST_BOTH_LIBRARIES}
PRIVATE ${TEST_QT_MODULES}
)
add_test(NAME command_zone_integration_test COMMAND command_zone_integration_test)
# ------------------------
# Counter Visibility Test
# Tests counter visibility during zone state transitions
@ -92,5 +112,6 @@ if(NOT GTEST_FOUND)
add_dependencies(command_zone_logic_test gtest)
add_dependencies(commander_tax_counter_test gtest)
add_dependencies(command_zone_state_test gtest)
add_dependencies(command_zone_integration_test gtest)
add_dependencies(counter_visibility_test gtest)
endif()