Add ReflowUndo tests and integrate InsertRow undo support

- Added `test_reflow_undo.cc` to validate undo/redo workflows for reflow operations.
- Introduced `UndoType::InsertRow` in `UndoSystem` for tracking row insertion changes in undo history.
- Updated `UndoNode.h` and `UndoSystem.cc` to support row insertion as a standalone undo step.
- Enhanced reflow paragraph functionality to properly record undo/redo actions for both row deletion and insertion.
- Enabled legacy/extended undo tests in `test_undo.cc` for comprehensive validation.
- Updated `CMakeLists.txt` to include new test file in the build target.
This commit is contained in:
2026-02-26 13:21:07 -08:00
parent bc3433e988
commit 27dcb41857
6 changed files with 276 additions and 15 deletions

View File

@@ -9,6 +9,7 @@ enum class UndoType : std::uint8_t {
Paste,
Newline,
DeleteRow,
InsertRow,
};
struct UndoNode {
@@ -20,4 +21,4 @@ struct UndoNode {
UndoNode *parent = nullptr; // previous state; null means pre-first-edit
UndoNode *child = nullptr; // next in current timeline
UndoNode *next = nullptr; // redo branch
};
};