feat(command-zone): add state machine with tests

Implement CommandZoneState - a pure C++ state machine managing zone
visibility transitions (Hidden, Revealed, Peeking states).

The state machine is intentionally decoupled from Qt graphics:
- Pure logic with no Qt dependencies in the state class
- Testable in isolation without a GUI
- Clear state transition table with StateChangeResult outcomes

Test coverage verifies:
- Initial state is Hidden
- Valid transitions: Hidden->Revealed, Hidden->Peeking, etc.
- Invalid transitions return NoChange
- Peek timeout triggers return to previous state

This establishes the foundation for command zone visibility management
while keeping graphics concerns separate.
This commit is contained in:
DawnFire42 2026-02-25 13:28:41 -05:00
parent ba1a388e5d
commit 3c2e4a3fb2
6 changed files with 678 additions and 0 deletions

View file

@ -61,5 +61,6 @@ target_link_libraries(
)
add_subdirectory(carddatabase)
add_subdirectory(command_zone)
add_subdirectory(loading_from_clipboard)
add_subdirectory(oracle)