feat(D03 긋기): 기본값 길이·기울기 고정 · 버튼 자유지정 오른쪽 · Tab 방식 바꿈 · 안 쓰는 칸 숨김 (PLAN 625-1 · 요구 530 · 531)
- 방식 차례 = 자유지정 · 길이·기울기 고정 / 길이 고정 · 기울기 고정 · 「자유」 → 「자유지정」 - 긋기 처음 방식 = 길이·기울기 고정(기억 안 함) - Tab(긋는 중) = 자유지정 ↔ 길이·기울기 고정 · 등록부 plan.drawKind · 긋기 아닐 때 = 초점 이동 그대로 - 길이 · 기울기 칸 = 방식에 안 쓰면 숨김 · 막힘 = 권한 없음만 - 지도 안내 글 Tab · Shift 줄 · 겹 hover 에 shift 인자(625-2 몫) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
* 긋기는 해를 안 물음(585-3) — 새 선 = 사업연도 시작 해 · 갈래 = 붙은 자리 구간 해 · 이어 긋기 = 끝 구간이 늘어남 ·
|
||||
* 여러 해 = 다 그은 뒤 그리기 칸 「연도 구역 마커」를 선 위로 끌어 구역을 나누고 속성 판에서 해를 고름.
|
||||
* 고르기 · 고치기 · 마커(쉴 때) = `D03_PlanAnalysis_UI_Edit`.
|
||||
* 키 = Enter 끝 · Esc 이번 긋기 취소 · Backspace 마지막 점 빼기(설정 창 단축키 표 D03 줄).
|
||||
* 키 = Enter 끝 · Esc 이번 긋기 취소 · Backspace 마지막 점 빼기 · Tab 방식 바꿈(설정 창 단축키 표 D03 줄).
|
||||
* 셈 = 562-1 짝(`logic/D03_PlanAnalysis_Draw`) · 꼴 다루기 = `logic/D03_PlanAnalysis_Plan` ·
|
||||
* 값을 바꾸면 `commit(다음 꼴)` 한 번 = 되돌리기 한 걸음(스택 · 캐시 = 페이지).
|
||||
* ========================================================================== */
|
||||
@@ -120,7 +120,8 @@ export function createPlanDraw(params: PlanDrawParams): PlanDraw {
|
||||
let strokeStart: PlanNetwork | null = null; // Esc 로 돌아갈 꼴
|
||||
let preview: DrawPreview | null = null;
|
||||
let candidates: Vertex[] = [];
|
||||
let kind: DrawConstraint = "free";
|
||||
let kind: DrawConstraint = "both"; // 625-1 · 기억 안 함(B9)
|
||||
let hoverAt: { px: number; py: number; map: ScreenMap } | null = null; // Tab 뒤 미리보기 다시
|
||||
let lengthM = DRAW_DEFAULT_LENGTH_M;
|
||||
let slopePct = DRAW_DEFAULT_SLOPE_PCT;
|
||||
// 다시 긋기 — 선 id · 앞 · 뒤 꺾임점 · 새로 찍은 속 점 · 그 기록
|
||||
@@ -472,9 +473,11 @@ export function createPlanDraw(params: PlanDrawParams): PlanDraw {
|
||||
return false;
|
||||
},
|
||||
hover(px, py, map) {
|
||||
hoverAt = { px, py, map };
|
||||
preview = mode === "draw" ? previewAt(px, py, map) : null;
|
||||
},
|
||||
leave() {
|
||||
hoverAt = null;
|
||||
preview = null;
|
||||
},
|
||||
};
|
||||
@@ -501,6 +504,13 @@ export function createPlanDraw(params: PlanDrawParams): PlanDraw {
|
||||
panelState();
|
||||
},
|
||||
key(event) {
|
||||
// Tab = 자유지정 ↔ 길이·기울기 고정(단독 고정이면 길이·기울기로 · 625-1) · 긋기 아닐 때 = 초점 이동
|
||||
if (mode === "draw" && keyIs(event, "plan.drawKind")) {
|
||||
kind = kind === "both" ? "free" : "both";
|
||||
kindFields.set({ kind });
|
||||
if (hoverAt) preview = previewAt(hoverAt.px, hoverAt.py, hoverAt.map);
|
||||
return true;
|
||||
}
|
||||
if (mode === "draw" && keyIs(event, "plan.drawFinish")) {
|
||||
if (span) showToast("다시 긋기는 뒤 노드에 붙어야 끝 — 취소했습니다.", "info");
|
||||
setMode("idle");
|
||||
|
||||
Reference in New Issue
Block a user