[Phase L5-5] 배치 파일 이름변경 (batchren) 구현
BatchRenameHandler.cs (신규, ~55줄):
- prefix="batchren" 핸들러, batchren [glob패턴] 으로 파일 미리 로드
- ExecuteAsync: BatchRenameWindow 열기 + 초기 경로 패턴 지정 지원
BatchRenameWindow.xaml (신규, ~380줄):
- 타이틀바(파일 수 배지) + 패턴 입력 영역 + DataGrid 미리보기 + 하단 버튼 바
- 변수 힌트 팝업: {name}/{n}/{n:3}/{date}/{date:format}/{ext}/정규식 설명
- 빈 상태 안내 패널, 드래그 앤 드롭 오버레이
- DataGrid 3열: 원본 파일명 / 새 파일명 / 상태(✓·⚠ 충돌·─)
- 충돌 행: 붉은 배경(#18EF5350) 강조
BatchRenameWindow.xaml.cs (신규, ~280줄):
- RenameEntry (INotifyPropertyChanged): OriginalPath/Name/NewName/HasConflict/StatusText
- ApplyPattern(): {n:자릿수} 패딩, {date:format}, {name}/{ext} 치환, 정규식 /rx/repl/ 모드
- UpdatePreviews(): 전체 패턴 재계산 + 충돌 감지(중복 새 이름 & 기존 파일 존재)
- AddFiles(), BtnAddFolder/Files/RemoveSelected/ClearAll 이벤트
- ExtToggle: 확장자 유지 슬라이드 토글
- BtnModeVar/Regex: 변수 ↔ 정규식 모드 전환 (UI 색상 갱신)
- StartNumberBox: 시작 번호 지정
- 드래그 앤 드롭: 파일/폴더 모두 처리
- BtnApply: File.Move 적용 후 엔트리 경로 갱신, 성공/실패 알림
App.xaml.cs (수정):
- Phase L5 섹션에 BatchRenameHandler 등록
docs/LAUNCHER_ROADMAP.md (수정):
- L5-5 항목 ✅ 완료 표시 + 구현 상세 기록
빌드: 경고 0, 오류 0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -133,7 +133,7 @@
|
||||
| L5-2 | **OCR 화면 텍스트 추출** ✅ | `ocr` 프리픽스 + F4 글로벌 단축키. RegionSelectWindow 재사용, Windows.Media.Ocr 로컬 엔진. 결과 → 클립보드 복사 + 런처 입력창 자동 채움 | 높음 |
|
||||
| L5-3 | **QuickLook 인라인 편집** ✅ | F3 미리보기 → Ctrl+E 편집 모드 토글. 텍스트/코드 전체 읽기(300줄 제한 없음). Ctrl+S 저장, ● 수정 마커, Esc 취소 확인, 저장 후 미리보기 새로고침 | 중간 |
|
||||
| L5-4 | **앱 세션 스냅** | 여러 앱을 지정 레이아웃으로 한번에 열기. `snap 세션이름` → 등록된 앱 목록을 각 레이아웃에 배치 | 중간 |
|
||||
| L5-5 | **배치 파일 이름 변경** | 다중 선택 후 `rename {패턴}` → 넘버링·날짜·정규식 치환 미리보기 → 일괄 적용 | 중간 |
|
||||
| L5-5 | **배치 파일 이름 변경** ✅ | `batchren` 프리픽스로 BatchRenameWindow 오픈. 변수 패턴(`{name}`, `{n:3}`, `{date:format}`, `{ext}`) + 정규식 모드(`/old/new/`). 드래그 앤 드롭·폴더/파일 추가, DataGrid 실시간 미리보기, 충돌 감지(배경 붉은 강조), 확장자 유지 토글, 시작 번호 지정, 적용 후 엔트리 갱신 | 중간 |
|
||||
| L5-6 | **자동화 스케줄러** | `sched` 프리픽스로 시간·앱 기반 트리거 등록. "매일 09:00 = 크롬 열기", "캐치 앱 실행 시 = 알림" | 낮음 |
|
||||
|
||||
### Phase L5 구현 순서 (권장)
|
||||
|
||||
Reference in New Issue
Block a user