11차 F-4: ACTIONS 칸 감추기(단추 · F9) + 아래 탭 줄 접기(플랫폼)
- 위 상태 바 [ACTIONS 감추기 ▶ (F9)], 단축키 표 F9. 칸 · 구분선 폭 0, 펴면 끌어 둔 폭 그대로 - 설정 ActionsHidden 에 기억. 감춘 채 Ctrl+S · Alt+←/→ 그대로 - 덧(사용자 요청): 아래 탭 줄 접기는 플랫폼에 넣음(배포 전) - 1440p 150%: 코드 칸 폭 +163px · 높이 +71px. ShortcutTest +3 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
140c31a009
commit
5cef172ed9
@ -162,6 +162,7 @@ A-1 에서 값으로 확인한 것 — 지운 파일은 "삭제되어 건너뜀
|
|||||||
- F-1: 칸 이름 `LOCAL(Mine)` · `REMOTE(Theirs)`, 칸 머리 "어느 쪽 · 어느 파일"(MERGED · 두 칸 LOCAL 은 "(저장할 파일)", mergetool 은 임시 파일 이름), 긴 이름은 가운데 줄임 · 툴팁. 머지 주석 모양 `[사람] 날짜 출처 설명`(출처 = 로그의 말 — Theirs(…) · Mine(…) · REMOTE(…) · BASE(…)), **Take Mine 도 주석**, 두 칸 로그 `BASE(해시) 반영` · 브랜치 3-Way 로그 `REMOTE(브랜치) 반영`. 매뉴얼의 주석 예시 · 칸 설명 · 해결 기록이 남는 곳 표. 숫자 1,312건.
|
- F-1: 칸 이름 `LOCAL(Mine)` · `REMOTE(Theirs)`, 칸 머리 "어느 쪽 · 어느 파일"(MERGED · 두 칸 LOCAL 은 "(저장할 파일)", mergetool 은 임시 파일 이름), 긴 이름은 가운데 줄임 · 툴팁. 머지 주석 모양 `[사람] 날짜 출처 설명`(출처 = 로그의 말 — Theirs(…) · Mine(…) · REMOTE(…) · BASE(…)), **Take Mine 도 주석**, 두 칸 로그 `BASE(해시) 반영` · 브랜치 3-Way 로그 `REMOTE(브랜치) 반영`. 매뉴얼의 주석 예시 · 칸 설명 · 해결 기록이 남는 곳 표. 숫자 1,312건.
|
||||||
- F-2: [이 메서드 반영](C# · C/C++, 클래스 멤버 통째, 단추 아래 한 줄에 잡은 범위 · 못 잡은 까닭), 덩어리 · 메서드 반영은 주석 한 줄 · 로그 한 줄 · Undo 한 번. 매뉴얼의 반영 단추 설명에. 숫자 23벌 1,395건.
|
- F-2: [이 메서드 반영](C# · C/C++, 클래스 멤버 통째, 단추 아래 한 줄에 잡은 범위 · 못 잡은 까닭), 덩어리 · 메서드 반영은 주석 한 줄 · 로그 한 줄 · Undo 한 번. 매뉴얼의 반영 단추 설명에. 숫자 23벌 1,395건.
|
||||||
- F-3: 매뉴얼 "탐색기에서 열기" — 여러 개를 골라 보내면 앞의 둘(3개 이상은 알림), 폴더 둘은 바로 폴더 비교, 260자 넘는 경로는 열지 못함(알림), 배포 묶음을 옮겨도 켜면 보내기 바로가기가 따라옴, 설치 파일 필요 없음. 알아 둘 한계에 "떠 있어도 새 창". 숫자 23벌 1,411건.
|
- F-3: 매뉴얼 "탐색기에서 열기" — 여러 개를 골라 보내면 앞의 둘(3개 이상은 알림), 폴더 둘은 바로 폴더 비교, 260자 넘는 경로는 열지 못함(알림), 배포 묶음을 옮겨도 켜면 보내기 바로가기가 따라옴, 설치 파일 필요 없음. 알아 둘 한계에 "떠 있어도 새 창". 숫자 23벌 1,411건.
|
||||||
|
- F-4: 매뉴얼 파일 비교 화면 — [ACTIONS 감추기] · F9, 아래 탭 줄 [탭 접기] · 띠 · F11(플랫폼), 단축키 표에 F9 · F11. 숫자 23벌 1,414건 · 플랫폼 31건.
|
||||||
|
|
||||||
## B-1. 배포 묶음을 다시 만들고 꼭 필요한 파일을 가림 (2026-09-22, 완료)
|
## B-1. 배포 묶음을 다시 만들고 꼭 필요한 파일을 가림 (2026-09-22, 완료)
|
||||||
|
|
||||||
@ -652,6 +653,44 @@ libgit2 의 다듬기(`PrettifyMessages`)를 켜면 **손대지 않은 뒤 커
|
|||||||
- 260자 넘는 경로를 여는 것 — 플랫폼 실행 파일의 긴 경로 설정과 전체 시험이 필요.
|
- 260자 넘는 경로를 여는 것 — 플랫폼 실행 파일의 긴 경로 설정과 전체 시험이 필요.
|
||||||
- 여러 개를 골랐을 때 **어느 것이 왼쪽인지**는 탐색기가 넘기는 순서를 따른다(도구는 고른 순서대로 넘겼다). 실제 탐색기 창에서 누른 순서와의 관계는 재지 않았다.
|
- 여러 개를 골랐을 때 **어느 것이 왼쪽인지**는 탐색기가 넘기는 순서를 따른다(도구는 고른 순서대로 넘겼다). 실제 탐색기 창에서 누른 순서와의 관계는 재지 않았다.
|
||||||
|
|
||||||
|
## F-4. 툴박스(ACTIONS) 감추기 + 아래 탭 줄 접기 (2026-09-22, 완료 — 플랫폼 배포 전)
|
||||||
|
|
||||||
|
사용자: F-4 에 더해 "밑에 탭화면도 접을 수 있게 해줘 머지 메인 화면이 더 많이 나와야해".
|
||||||
|
|
||||||
|
### 먼저 본 것
|
||||||
|
|
||||||
|
- 파일 비교 화면(HomeView) 안에는 아래쪽 탭이 없다. 화면에서 아래에 있는 것은 **플랫폼 창의 탭 줄**(`NavList` — 파일 비교 · Git · 폴더 탭과 화면 잠금 · 바탕화면 · 종료 동작 항목), 1440p 150% 에서 높이 95px. 플랫폼에는 탭 줄 위치(아래 · 왼쪽 · 오른쪽) 설정은 있었지만 접는 기능은 없었다.
|
||||||
|
- ACTIONS 칸은 "접기" 가 있어도 폭은 그대로였다(4차 C-5).
|
||||||
|
|
||||||
|
### 정한 것 (2026-09-22 사용자)
|
||||||
|
|
||||||
|
탭 줄은 **얇은 띠 + 펴기 단추 + 키**, **아래 탭 줄만**(위 로고 · 시계 줄은 창 손잡이라 둠), 플랫폼에 넣되 **모든 소비 프로그램이 쓰게 · 기본은 펼침**. ACTIONS 는 **단추 + F9**.
|
||||||
|
|
||||||
|
### 만든 것
|
||||||
|
|
||||||
|
- **플랫폼**: 탭 줄 끝 동작 항목 **[탭 접기]**(새 아이콘), 접으면 16 DIP 띠 `탭 펴기 · F11`, **F11** 로 접고 폄(잠금 중 제외), 상태는 `UiSettingsService.NavCollapsed` — 그 항목만 파일에 고쳐 씀(`UiSettingsFile`). 왼쪽 · 오른쪽 탭 줄이면 세로 띠. 전체 단추 스타일의 `MinHeight 38` 때문에 띠가 처음엔 57px 로 두꺼워 최소 크기를 0 으로.
|
||||||
|
- **MergeHub**: 위 상태 바에 **[ACTIONS 감추기 ▶ (F9)]** / **[◀ ACTIONS 보이기 (F9)]**, 단축키 표에 F9(도움말에도 나옴). 감추면 ACTIONS 칸과 앞 구분선 폭을 0 으로 해 코드 칸이 넓어지고, 펴면 **끌어 둔 폭 그대로** 돌아온다(폭을 Style 로 쥐지 않는 까닭 — 구분선을 끌면 로컬 값이 박힌다). 상태는 설정 `ActionsHidden`(설정 화면에는 안 나옴).
|
||||||
|
|
||||||
|
### 확인한 것
|
||||||
|
|
||||||
|
- 하네스: PlatformCfgTest +7(31건 — 옛 파일 · 망가진 글은 펼침, 접기 항목만 바뀌고 다른 값 · 모르는 항목 그대로), ShortcutTest +3(F9 = ACTIONS, F11 은 머지툴 표에 없음). MergeHub 23벌 **1,414건** · 빌드 경고 0 · 오류 0(플랫폼 Debug · MergeHub Debug).
|
||||||
|
- 화면(`f4-verify.ps1` — MergeHub Debug 를 임시 폴더에 복사하고 플랫폼 Core · Shell 만 고친 Debug 로 바꿔 띄움, 배포 폴더 · 사용자 Debug 폴더 안 건드림, 화면 설정 파일은 바이트 그대로 되돌림):
|
||||||
|
|
||||||
|
| 한 것 | 결과(1440p · 150%) |
|
||||||
|
|---|---|
|
||||||
|
| [ACTIONS 감추기] | 코드 칸 두 칸이 각각 **+163~164px**(1083 → 1247 · 985 → 1148), 단추 글 `◀ ACTIONS 보이기 (F9)` |
|
||||||
|
| 감춘 채 Alt+↓ · Alt+→ · Ctrl+S | 차이로 가서 반영하고 저장됨(파일에 반영 줄 · 주석) |
|
||||||
|
| F9 | 원래 폭으로 |
|
||||||
|
| [탭 접기] · F11 | 탭 줄 95px → 띠 24px, 코드 칸 **+71px**(1198 → 1269, 약 2줄). 설정 파일에 `"NavCollapsed": true` 한 항목만 더해지고 나머지 그대로 |
|
||||||
|
| 띠 [탭 펴기] · F11 다시 | 원래대로 |
|
||||||
|
| 둘 다 감추고 다시 켬 | 두 상태 모두 남음 |
|
||||||
|
| 탭 줄 왼쪽 | 세로 띠 24px 로 접히고 폄. 왼쪽 탭 줄에서 코드 칸 자리는 고친 플랫폼 · 지금 플랫폼이 같다 |
|
||||||
|
|
||||||
|
### 남은 것
|
||||||
|
|
||||||
|
- **플랫폼 배포**(`publish-platform.ps1`) — 사용자 확인 뒤. 배포 전에는 지금 쓰시는 MergeHub(Debug)에 탭 줄 접기가 없다(ACTIONS 감추기는 있다).
|
||||||
|
- F-6(넓게 보기)에서 몇 줄이 늘었는지 1920 × 1080 기준으로 다시 잰다.
|
||||||
|
|
||||||
## F-12. C# 코드 스타일 맞춤의 기본값을 AURORA 로 (2026-09-18, 완료)
|
## F-12. C# 코드 스타일 맞춤의 기본값을 AURORA 로 (2026-09-18, 완료)
|
||||||
|
|
||||||
사용자: "기본값은 원본형태를 따르고 C#인 경우에 AURORA 스타일로 하자" → 물어서 정한 것은 **제품 기본값 AURORA · C# 파일만 · 저장 동작은 지금 그대로**(켜져 있으면 저장도 그 스타일로 쓴다).
|
사용자: "기본값은 원본형태를 따르고 C#인 경우에 AURORA 스타일로 하자" → 물어서 정한 것은 **제품 기본값 AURORA · C# 파일만 · 저장 동작은 지금 그대로**(켜져 있으면 저장도 그 스타일로 쓴다).
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
| 날짜 | 항목 | 커밋 |
|
| 날짜 | 항목 | 커밋 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
| 2026-09-22 | **11차 F-4 (추가 요청)** — 파일 비교 오른쪽 ACTIONS 칸을 감추는 단추 · F9(사용자 결정). 감추면 칸과 구분선 폭을 0 으로 해 코드 칸이 넓어지고, 펴면 끌어 둔 폭 그대로. 설정 `ActionsHidden` 에 기억. 감춘 채 Ctrl+S · Alt+←/→ 그대로. **덧(사용자 요청)**: 아래 탭 줄 접기 — 플랫폼에 [탭 접기] · 띠 · F11 을 넣음(플랫폼 changelog 참고, 배포 전). 1440p 150% 에서 코드 칸 폭 +163px · 높이 +71px. ShortcutTest +3 · 플랫폼 PlatformCfgTest +7 | 아래 |
|
||||||
| 2026-09-22 | **11차 F-3 뒤 (사용자 발견)** — 탐색기에서 폴더 둘을 보내면 왼쪽 칸이 설정의 기본 저장소(`plain-compare`)로 덮여 비교가 "왼쪽만" 투성이였다. `FolderViewModel` 이 넘어온 요청을 받은 뒤 "열어 둔 저장소를 왼쪽 기본값으로" 가 덮어쓴 것(비교는 비동기라 덮인 값을 읽음) — 기본값을 먼저, 요청을 나중에. 켤 때 받은 인자를 파일 로그에 남김. 앞선 시험은 로그만 보고 칸 값을 제대로 읽지 않아 지나쳤다 | c35280a |
|
| 2026-09-22 | **11차 F-3 뒤 (사용자 발견)** — 탐색기에서 폴더 둘을 보내면 왼쪽 칸이 설정의 기본 저장소(`plain-compare`)로 덮여 비교가 "왼쪽만" 투성이였다. `FolderViewModel` 이 넘어온 요청을 받은 뒤 "열어 둔 저장소를 왼쪽 기본값으로" 가 덮어쓴 것(비교는 비동기라 덮인 값을 읽음) — 기본값을 먼저, 요청을 나중에. 켤 때 받은 인자를 파일 로그에 남김. 앞선 시험은 로그만 보고 칸 값을 제대로 읽지 않아 지나쳤다 | c35280a |
|
||||||
| 2026-09-22 | **11차 F-3 (추가 요청)** — 탐색기 [보내기] 가 여러 개를 어떻게 넘기는지 셸의 같은 길(바로가기에 Drop)로 일곱 경우를 잼: **프로세스 하나에 인자로 모두**, 폴더 둘은 창 하나에서 폴더 비교까지 됨. 고친 것(사용자 결정): 3개 이상은 앞의 둘 + 알림(예전엔 말없이 버림), 260자 넘는 경로(탐색기가 8.3 이름으로 넘기고 net48 이 긴 이름으로 펼쳐 못 찾음 — 예전엔 아무것도 안 열림)는 열지 않고 까닭 알림, 알림은 이름 창 뒤로 지나가지 않게 본 창이 활성이 된 뒤에. 배포 묶음을 옮기면 켤 때 보내기 바로가기를 지금 실행 파일로 고침(등록한 사람만 · 바로가기 파일만 · 레지스트리 안 씀). 설치 파일 필요 없음 확인. 떠 있을 때 새 창은 그대로(플랫폼 일). ArgsTest +16(1,411건) | 아래 |
|
| 2026-09-22 | **11차 F-3 (추가 요청)** — 탐색기 [보내기] 가 여러 개를 어떻게 넘기는지 셸의 같은 길(바로가기에 Drop)로 일곱 경우를 잼: **프로세스 하나에 인자로 모두**, 폴더 둘은 창 하나에서 폴더 비교까지 됨. 고친 것(사용자 결정): 3개 이상은 앞의 둘 + 알림(예전엔 말없이 버림), 260자 넘는 경로(탐색기가 8.3 이름으로 넘기고 net48 이 긴 이름으로 펼쳐 못 찾음 — 예전엔 아무것도 안 열림)는 열지 않고 까닭 알림, 알림은 이름 창 뒤로 지나가지 않게 본 창이 활성이 된 뒤에. 배포 묶음을 옮기면 켤 때 보내기 바로가기를 지금 실행 파일로 고침(등록한 사람만 · 바로가기 파일만 · 레지스트리 안 씀). 설치 파일 필요 없음 확인. 떠 있을 때 새 창은 그대로(플랫폼 일). ArgsTest +16(1,411건) | 아래 |
|
||||||
| 2026-09-22 | **11차 F-2 (추가 요청)** — **[이 메서드 반영]**: 캐럿이 놓인 클래스 멤버(메서드 · 생성자 · 속성 · 이벤트 · 연산자 · 필드 · enum, 로컬 함수 안이면 감싸는 멤버)를 통째로 반영(사용자 결정: C# + C/C++, 멤버 전부). Roslyn 없이 `MemberRanges` 가 주석 · 문자열(축자 · 보간 · raw · C++ raw · 숫자 구분자)을 가리고 `#if` 갈래마다 다시 읽어 중괄호 짝으로 범위를 잡는다 — 못 잡으면 단추를 끄고 단추 아래 한 줄에 까닭. 덩어리 · 메서드 반영은 머지 주석 한 줄(메서드 이름 위 · 덩어리 첫 줄 위) · 로그 한 줄 · Undo 한 번(묶음 번호) — [이 덩어리 반영] 이 줄마다 주석을 달던 것도 고침(사용자 결정). 메서드 반영 저장본 = 같은 줄 줄 단위 반영 저장본(바이트). 하네스 MemberTest 83건(23벌 1,395건) | 아래 |
|
| 2026-09-22 | **11차 F-2 (추가 요청)** — **[이 메서드 반영]**: 캐럿이 놓인 클래스 멤버(메서드 · 생성자 · 속성 · 이벤트 · 연산자 · 필드 · enum, 로컬 함수 안이면 감싸는 멤버)를 통째로 반영(사용자 결정: C# + C/C++, 멤버 전부). Roslyn 없이 `MemberRanges` 가 주석 · 문자열(축자 · 보간 · raw · C++ raw · 숫자 구분자)을 가리고 `#if` 갈래마다 다시 읽어 중괄호 짝으로 범위를 잡는다 — 못 잡으면 단추를 끄고 단추 아래 한 줄에 까닭. 덩어리 · 메서드 반영은 머지 주석 한 줄(메서드 이름 위 · 덩어리 첫 줄 위) · 로그 한 줄 · Undo 한 번(묶음 번호) — [이 덩어리 반영] 이 줄마다 주석을 달던 것도 고침(사용자 결정). 메서드 반영 저장본 = 같은 줄 줄 단위 반영 저장본(바이트). 하네스 MemberTest 83건(23벌 1,395건) | 아래 |
|
||||||
|
|||||||
@ -373,7 +373,7 @@
|
|||||||
| **완료** | F-1 칸 이름 `LOCAL(Mine)` · `REMOTE(Theirs)` 로 맞추고 칸마다 "어느 쪽 · 어느 파일"(MERGED · 두 칸 LOCAL 은 "저장할 파일", mergetool 은 임시 파일 이름 — Mine 칸이 MERGED 이름을 보이던 것 고침), 한 줄 · 가운데 줄이기 · 툴팁 전체 · **덧**: 머지 주석 `[사람] 날짜 출처 설명`, 출처는 로그와 같은 말(Theirs(…) · Mine(…) · REMOTE(…) · BASE(해시)), Take Mine 도 주석. 무시 조건은 원래 출처를 받는 모양이라 코드 그대로, 옛 · 새 · 출처만 다른 주석을 하네스로 굳힘. 네 길 화면 확인 · E-1 병합 길 회귀 없음 · 1,312건 |
|
| **완료** | F-1 칸 이름 `LOCAL(Mine)` · `REMOTE(Theirs)` 로 맞추고 칸마다 "어느 쪽 · 어느 파일"(MERGED · 두 칸 LOCAL 은 "저장할 파일", mergetool 은 임시 파일 이름 — Mine 칸이 MERGED 이름을 보이던 것 고침), 한 줄 · 가운데 줄이기 · 툴팁 전체 · **덧**: 머지 주석 `[사람] 날짜 출처 설명`, 출처는 로그와 같은 말(Theirs(…) · Mine(…) · REMOTE(…) · BASE(해시)), Take Mine 도 주석. 무시 조건은 원래 출처를 받는 모양이라 코드 그대로, 옛 · 새 · 출처만 다른 주석을 하네스로 굳힘. 네 길 화면 확인 · E-1 병합 길 회귀 없음 · 1,312건 |
|
||||||
| **완료** | F-2 메서드 단위로 골라 반영 — [이 메서드 반영](C# + C/C++, 클래스 멤버 전부 · 사용자 결정), 캐럿이 놓인 멤버를 반영해 올 쪽에서 중괄호 짝으로 잡음(`MemberRanges` — 문자열 · 주석 · raw · `#if` 갈래에 안 속음, 못 잡으면 단추 끄고 까닭 한 줄). 덩어리 · 메서드 반영은 주석 한 줄(메서드 이름 위) · 로그 한 줄 · Undo 한 번 — 덩어리가 줄마다 주석을 달던 것도 고침. 메서드 반영 = 같은 줄 줄 단위 반영 바이트 같음. MemberTest 83건(C# 29 · C++ 13 멤버) · 1,395건 |
|
| **완료** | F-2 메서드 단위로 골라 반영 — [이 메서드 반영](C# + C/C++, 클래스 멤버 전부 · 사용자 결정), 캐럿이 놓인 멤버를 반영해 올 쪽에서 중괄호 짝으로 잡음(`MemberRanges` — 문자열 · 주석 · raw · `#if` 갈래에 안 속음, 못 잡으면 단추 끄고 까닭 한 줄). 덩어리 · 메서드 반영은 주석 한 줄(메서드 이름 위) · 로그 한 줄 · Undo 한 번 — 덩어리가 줄마다 주석을 달던 것도 고침. 메서드 반영 = 같은 줄 줄 단위 반영 바이트 같음. MemberTest 83건(C# 29 · C++ 13 멤버) · 1,395건 |
|
||||||
| **완료** | F-3 탐색기 [보내기] 로 폴더 두 개 바로 비교 — 탐색기는 여러 개를 프로세스 하나에 인자로 모두 넘김(일곱 경우 값으로 잼), 폴더 둘은 창 하나에서 폴더 비교까지. 사용자 결정대로 3개 이상은 앞의 둘 + 알림, 260자 넘는 경로(탐색기가 8.3 이름으로 넘김 · net48 이 못 찾음)는 열지 않고 알림, 옮긴 배포 묶음은 켤 때 보내기 바로가기를 저절로 고침(바로가기 파일만 · 레지스트리 안 씀), 떠 있을 때는 새 창 그대로. 설치 파일 필요 없음. ArgsTest +16 · 1,411건. **사용자가 실제 탐색기에서 찾은 것**: 보낸 왼쪽 폴더를 기본 저장소가 덮어써 "왼쪽만" 투성이 → 기본값을 먼저 두고 요청을 나중에 받게 고침, 켤 때 받은 인자를 파일 로그에 남김 |
|
| **완료** | F-3 탐색기 [보내기] 로 폴더 두 개 바로 비교 — 탐색기는 여러 개를 프로세스 하나에 인자로 모두 넘김(일곱 경우 값으로 잼), 폴더 둘은 창 하나에서 폴더 비교까지. 사용자 결정대로 3개 이상은 앞의 둘 + 알림, 260자 넘는 경로(탐색기가 8.3 이름으로 넘김 · net48 이 못 찾음)는 열지 않고 알림, 옮긴 배포 묶음은 켤 때 보내기 바로가기를 저절로 고침(바로가기 파일만 · 레지스트리 안 씀), 떠 있을 때는 새 창 그대로. 설치 파일 필요 없음. ArgsTest +16 · 1,411건. **사용자가 실제 탐색기에서 찾은 것**: 보낸 왼쪽 폴더를 기본 저장소가 덮어써 "왼쪽만" 투성이 → 기본값을 먼저 두고 요청을 나중에 받게 고침, 켤 때 받은 인자를 파일 로그에 남김 |
|
||||||
| 대기 | F-4 파일 비교 탭 툴박스(ACTIONS) 감추는 단추 (지금은 접어도 폭 그대로) |
|
| **완료** | F-4 ACTIONS 칸 감추기(단추 · F9, 끌어 둔 폭 기억, 감춰도 Ctrl+S · Alt+←/→ 그대로) + **덧: 아래 탭 줄 접기**(사용자 요청 — 플랫폼 [탭 접기] · 16 DIP 띠 · F11, 그 항목만 기억, 다른 소비 프로그램도 쓰되 기본 펼침). 1440p 150% 에서 코드 칸 폭 +163px · 높이 +71px. **플랫폼 배포 전** |
|
||||||
| 대기 | F-5 글자 크기 조절 (지금은 Consolas 12 고정) |
|
| 대기 | F-5 글자 크기 조절 (지금은 Consolas 12 고정) |
|
||||||
| 대기 | F-6 글자를 되도록 많이 보이게 — 넓게 보기 한 단추, 늘어난 줄 수로 잼 |
|
| 대기 | F-6 글자를 되도록 많이 보이게 — 넓게 보기 한 단추, 늘어난 줄 수로 잼 |
|
||||||
| 대기 | F-7 어느 모니터에서든 제대로 뜨게 — 증상부터 적고 플랫폼 영향 확인 |
|
| 대기 | F-7 어느 모니터에서든 제대로 뜨게 — 증상부터 적고 플랫폼 영향 확인 |
|
||||||
|
|||||||
@ -127,5 +127,12 @@ namespace MergeHub
|
|||||||
[Browsable(false)]
|
[Browsable(false)]
|
||||||
public bool ActionsRulesExpanded { get; set; }
|
public bool ActionsRulesExpanded { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 파일 비교 오른쪽 ACTIONS 칸을 감춰 두었는지(11차 F-4). 감추면 코드 칸이 그 폭만큼 넓어진다.
|
||||||
|
/// 설정 화면에는 안 내놓는다 — 화면에서(단추 · F9) 감추고 보이는 값이다.
|
||||||
|
/// </summary>
|
||||||
|
[Browsable(false)]
|
||||||
|
public bool ActionsHidden { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,6 +34,7 @@ namespace MergeHub.Services
|
|||||||
FindPrev,
|
FindPrev,
|
||||||
CloseFind,
|
CloseFind,
|
||||||
ShowHelp,
|
ShowHelp,
|
||||||
|
ToggleActions,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>단축키 한 줄. 키 처리와 설명 창이 <b>둘 다 이 목록만</b> 본다.</summary>
|
/// <summary>단축키 한 줄. 키 처리와 설명 창이 <b>둘 다 이 목록만</b> 본다.</summary>
|
||||||
@ -146,6 +147,8 @@ namespace MergeHub.Services
|
|||||||
new ShortcutEntry(ShortcutAction.Recompare, Key.F5, ModifierKeys.None, "파일·보기", "다시 비교(새로고침)"),
|
new ShortcutEntry(ShortcutAction.Recompare, Key.F5, ModifierKeys.None, "파일·보기", "다시 비교(새로고침)"),
|
||||||
new ShortcutEntry(ShortcutAction.Recompare, Key.R, ModifierKeys.Control, "파일·보기", "다시 비교 (대체 키)"),
|
new ShortcutEntry(ShortcutAction.Recompare, Key.R, ModifierKeys.Control, "파일·보기", "다시 비교 (대체 키)"),
|
||||||
new ShortcutEntry(ShortcutAction.Save, Key.S, ModifierKeys.Control, "파일·보기", "저장"),
|
new ShortcutEntry(ShortcutAction.Save, Key.S, ModifierKeys.Control, "파일·보기", "저장"),
|
||||||
|
new ShortcutEntry(ShortcutAction.ToggleActions, Key.F9, ModifierKeys.None, "파일·보기", "오른쪽 ACTIONS 칸 감추기 · 보이기",
|
||||||
|
"감춰도 저장 · 반영 · 차이 이동 키는 그대로 듣는다. 아래 탭 줄 접기(F11)는 플랫폼 몫이라 이 표에 없다."),
|
||||||
|
|
||||||
new ShortcutEntry(ShortcutAction.Find, Key.F, ModifierKeys.Control, "찾기", "텍스트 찾기"),
|
new ShortcutEntry(ShortcutAction.Find, Key.F, ModifierKeys.Control, "찾기", "텍스트 찾기"),
|
||||||
new ShortcutEntry(ShortcutAction.Replace, Key.H, ModifierKeys.Control, "찾기", "바꾸기 (찾기 칸이 열리며 바꿀 말 칸이 함께 뜬다)"),
|
new ShortcutEntry(ShortcutAction.Replace, Key.H, ModifierKeys.Control, "찾기", "바꾸기 (찾기 칸이 열리며 바꿀 말 칸이 함께 뜬다)"),
|
||||||
|
|||||||
@ -48,6 +48,7 @@ namespace MergeHub.ViewModels
|
|||||||
_workspace.ConfirmLeaveCommit = () => WillAskBeforeDiscard ? ConfirmDiscard("다른 커밋을 봅니다.") : null;
|
_workspace.ConfirmLeaveCommit = () => WillAskBeforeDiscard ? ConfirmDiscard("다른 커밋을 봅니다.") : null;
|
||||||
_workspace.CommitChosen += OnCommitChosenElsewhere;
|
_workspace.CommitChosen += OnCommitChosenElsewhere;
|
||||||
_isRulesOpen = _workspace.Settings.ActionsRulesExpanded;
|
_isRulesOpen = _workspace.Settings.ActionsRulesExpanded;
|
||||||
|
_isActionsHidden = _workspace.Settings.ActionsHidden;
|
||||||
_reflowTimer.Tick += (_, _) => Reflow();
|
_reflowTimer.Tick += (_, _) => Reflow();
|
||||||
|
|
||||||
RefreshRecent();
|
RefreshRecent();
|
||||||
@ -397,6 +398,26 @@ namespace MergeHub.ViewModels
|
|||||||
_workspace.SaveSettings();
|
_workspace.SaveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 오른쪽 ACTIONS 칸을 감췄는지(11차 F-4). 감추면 코드 칸이 그 폭만큼 넓어진다 - 폭은 화면이 다룬다
|
||||||
|
/// (<c>HomeView.ApplyActionsHidden</c>). 감춰도 단축키(저장 · 반영 · 차이 이동)는 그대로다.
|
||||||
|
/// </summary>
|
||||||
|
[ObservableProperty]
|
||||||
|
[NotifyPropertyChangedFor(nameof(ActionsToggleLabel))]
|
||||||
|
private bool _isActionsHidden;
|
||||||
|
|
||||||
|
/// <summary>단추 글자 - 누르면 무엇이 되는지와 키를 함께(RulesToggleLabel 과 같은 까닭).</summary>
|
||||||
|
public string ActionsToggleLabel => IsActionsHidden ? "◀ ACTIONS 보이기 (F9)" : "ACTIONS 감추기 ▶ (F9)";
|
||||||
|
|
||||||
|
[RelayCommand]
|
||||||
|
private void ToggleActions()
|
||||||
|
{
|
||||||
|
IsActionsHidden = !IsActionsHidden;
|
||||||
|
|
||||||
|
_workspace.Settings.ActionsHidden = IsActionsHidden;
|
||||||
|
_workspace.SaveSettings();
|
||||||
|
}
|
||||||
|
|
||||||
// ================= 폴더에서 훑는 중인 파일 이동 =================
|
// ================= 폴더에서 훑는 중인 파일 이동 =================
|
||||||
|
|
||||||
/// <summary>훑을 목록이 있는지. 폴더를 거치지 않고 연 파일에는 없다.</summary>
|
/// <summary>훑을 목록이 있는지. 폴더를 거치지 않고 연 파일에는 없다.</summary>
|
||||||
|
|||||||
@ -397,6 +397,11 @@
|
|||||||
Height="26" MinHeight="26" Padding="10,2" FontSize="11" Margin="10,0,0,0"
|
Height="26" MinHeight="26" Padding="10,2" FontSize="11" Margin="10,0,0,0"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
ToolTip="단축키 목록을 봅니다 (F1)"/>
|
ToolTip="단축키 목록을 봅니다 (F1)"/>
|
||||||
|
<!-- 11차 F-4: 오른쪽 ACTIONS 칸을 감춰 코드 칸을 넓힌다. 감춘 칸에 있으면 되살릴 길이 없으니 늘 보이는 이 줄에 둔다. -->
|
||||||
|
<Button DockPanel.Dock="Right" Content="{Binding ActionsToggleLabel}" Command="{Binding ToggleActionsCommand}"
|
||||||
|
Height="26" MinHeight="26" Padding="10,2" FontSize="11" Margin="10,0,0,0"
|
||||||
|
VerticalAlignment="Top"
|
||||||
|
ToolTip="오른쪽 ACTIONS 칸을 감추거나 다시 보입니다 (F9). 감춰도 Ctrl+S · Alt+←/→ 는 그대로 듣습니다"/>
|
||||||
<Button DockPanel.Dock="Right" Content="결과 내보내기" Command="{Binding ExportReportCommand}"
|
<Button DockPanel.Dock="Right" Content="결과 내보내기" Command="{Binding ExportReportCommand}"
|
||||||
Height="26" MinHeight="26" Padding="10,2" FontSize="11" Margin="10,0,0,0"
|
Height="26" MinHeight="26" Padding="10,2" FontSize="11" Margin="10,0,0,0"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
@ -858,16 +863,16 @@
|
|||||||
</ColumnDefinition.Style>
|
</ColumnDefinition.Style>
|
||||||
</ColumnDefinition>
|
</ColumnDefinition>
|
||||||
|
|
||||||
<ColumnDefinition Width="4"/>
|
<ColumnDefinition x:Name="ActionsSplitColumn" Width="4"/>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
ACTIONS 칸. 접어도 폭은 그대로 둔다(4차 C-5).
|
ACTIONS 칸. 접어도 폭은 그대로 둔다(4차 C-5). 칸 전체를 감추는 것은 11차 F-4(단추 · F9).
|
||||||
<b>접는다고 폭이 줄지 않는다</b> - 폭을 정하는 것은 두 칸짜리 단추(Undo/Redo ·
|
<b>접는다고 폭이 줄지 않는다</b> - 폭을 정하는 것은 두 칸짜리 단추(Undo/Redo ·
|
||||||
이전 차이/다음 차이)와 Accept 인데, 그것들은 접어도 남는 쪽이다.
|
이전 차이/다음 차이)와 Accept 인데, 그것들은 접어도 남는 쪽이다.
|
||||||
실제로 176 으로 좁혀 봤더니 "Undo" 가 "Undc" 로, "이전 차이" 가 "이전 차" 로 잘렸다.
|
실제로 176 으로 좁혀 봤더니 "Undo" 가 "Undc" 로, "이전 차이" 가 "이전 차" 로 잘렸다.
|
||||||
C-5 가 얻는 것은 폭이 아니라 <b>세로 자리와 덜 어지러운 칸</b>이다.
|
C-5 가 얻는 것은 폭이 아니라 <b>세로 자리와 덜 어지러운 칸</b>이다.
|
||||||
-->
|
-->
|
||||||
<ColumnDefinition Width="214" MinWidth="170"/>
|
<ColumnDefinition x:Name="ActionsColumn" Width="214" MinWidth="170"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
@ -1425,11 +1430,11 @@
|
|||||||
Visibility="{Binding IsThreeWay, Converter={StaticResource BoolToVis}}"
|
Visibility="{Binding IsThreeWay, Converter={StaticResource BoolToVis}}"
|
||||||
Background="{DynamicResource Ubisam.Brush.Table.GridLine}"/>
|
Background="{DynamicResource Ubisam.Brush.Table.GridLine}"/>
|
||||||
|
|
||||||
<GridSplitter Grid.Column="7" Grid.RowSpan="3" Width="4" HorizontalAlignment="Stretch" DragCompleted="PaneSplitter_DragCompleted"
|
<GridSplitter x:Name="ActionsSplitter" Grid.Column="7" Grid.RowSpan="3" Width="4" HorizontalAlignment="Stretch" DragCompleted="PaneSplitter_DragCompleted"
|
||||||
Background="{DynamicResource Ubisam.Brush.Table.GridLine}"/>
|
Background="{DynamicResource Ubisam.Brush.Table.GridLine}"/>
|
||||||
|
|
||||||
<!-- ④ ACTIONS -->
|
<!-- ④ ACTIONS -->
|
||||||
<Border Grid.Column="8" Grid.RowSpan="3" BorderThickness="1" Padding="8"
|
<Border x:Name="ActionsPanel" Grid.Column="8" Grid.RowSpan="3" BorderThickness="1" Padding="8"
|
||||||
BorderBrush="{DynamicResource Ubisam.Brush.Input.Border}">
|
BorderBrush="{DynamicResource Ubisam.Brush.Input.Border}">
|
||||||
<DockPanel>
|
<DockPanel>
|
||||||
<!-- Git 이 아니면 커밋할 곳이 없다. 파일에 쓰기만 한다. -->
|
<!-- Git 이 아니면 커밋할 곳이 없다. 파일에 쓰기만 한다. -->
|
||||||
|
|||||||
@ -377,6 +377,7 @@ namespace MergeHub.Views
|
|||||||
now.EditorTextReplaced += OnEditorTextReplaced;
|
now.EditorTextReplaced += OnEditorTextReplaced;
|
||||||
now.ScrollToRowRequested += OnScrollToRowRequested;
|
now.ScrollToRowRequested += OnScrollToRowRequested;
|
||||||
now.PropertyChanged += OnViewModelPropertyChanged;
|
now.PropertyChanged += OnViewModelPropertyChanged;
|
||||||
|
ApplyActionsHidden(now.IsActionsHidden);
|
||||||
|
|
||||||
// 편집기 글은 이 컨트롤이 들고 있고, ViewModel 은 필요할 때만 읽어 간다.
|
// 편집기 글은 이 컨트롤이 들고 있고, ViewModel 은 필요할 때만 읽어 간다.
|
||||||
// 바인딩으로 매 글자마다 문서 전체를 넘기면 큰 파일에서 눈에 띄게 느리다.
|
// 바인딩으로 매 글자마다 문서 전체를 넘기면 큰 파일에서 눈에 띄게 느리다.
|
||||||
@ -390,6 +391,12 @@ namespace MergeHub.Views
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void OnViewModelPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
private void OnViewModelPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (e.PropertyName == nameof(HomeViewModel.IsActionsHidden) && sender is HomeViewModel hideVm)
|
||||||
|
{
|
||||||
|
ApplyActionsHidden(hideVm.IsActionsHidden);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (e.PropertyName != nameof(HomeViewModel.IsThreeWay)) return;
|
if (e.PropertyName != nameof(HomeViewModel.IsThreeWay)) return;
|
||||||
|
|
||||||
// 배치가 통째로 달라지므로 원본 칸의 가로 위치는 처음으로 되돌린다.
|
// 배치가 통째로 달라지므로 원본 칸의 가로 위치는 처음으로 되돌린다.
|
||||||
@ -449,6 +456,35 @@ namespace MergeHub.Views
|
|||||||
/// <summary>칸 폭을 사용자가 끌어 놓을 수 있는 세 칸.</summary>
|
/// <summary>칸 폭을 사용자가 끌어 놓을 수 있는 세 칸.</summary>
|
||||||
private ColumnDefinition[] PaneColumns => new[] { LocalColumn, BaseColumn, RemoteColumn };
|
private ColumnDefinition[] PaneColumns => new[] { LocalColumn, BaseColumn, RemoteColumn };
|
||||||
|
|
||||||
|
/// <summary>감추기 전 ACTIONS 칸 폭. 구분선을 끌어 바꿔 뒀으면 그 폭으로 돌아온다.</summary>
|
||||||
|
private GridLength _actionsWidth = new GridLength(214);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 오른쪽 ACTIONS 칸을 감추거나 보인다(11차 F-4). 감추면 칸과 그 앞 구분선의 폭을 0 으로 해
|
||||||
|
/// 코드 칸이 그만큼 넓어진다. 폭을 Style 로 쥐지 않는 까닭 - 구분선을 끌면 폭이 로컬 값으로 박혀
|
||||||
|
/// Style 이 더는 못 바꾼다. 단추 · 단축키는 명령으로 불리므로 칸이 안 보여도 그대로 듣는다.
|
||||||
|
/// </summary>
|
||||||
|
private void ApplyActionsHidden(bool hidden)
|
||||||
|
{
|
||||||
|
if (hidden)
|
||||||
|
{
|
||||||
|
if (ActionsColumn.ActualWidth > 0) _actionsWidth = new GridLength(ActionsColumn.ActualWidth);
|
||||||
|
ActionsColumn.MinWidth = 0;
|
||||||
|
ActionsColumn.Width = new GridLength(0);
|
||||||
|
ActionsSplitColumn.Width = new GridLength(0);
|
||||||
|
ActionsPanel.Visibility = Visibility.Collapsed;
|
||||||
|
ActionsSplitter.Visibility = Visibility.Collapsed;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ActionsPanel.Visibility = Visibility.Visible;
|
||||||
|
ActionsSplitter.Visibility = Visibility.Visible;
|
||||||
|
ActionsSplitColumn.Width = new GridLength(4);
|
||||||
|
ActionsColumn.Width = _actionsWidth;
|
||||||
|
ActionsColumn.MinWidth = 170;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 구분선을 끌고 난 뒤 칸 폭을 다시 <b>비율</b>로 돌려놓는다.
|
/// 구분선을 끌고 난 뒤 칸 폭을 다시 <b>비율</b>로 돌려놓는다.
|
||||||
///
|
///
|
||||||
@ -904,6 +940,8 @@ namespace MergeHub.Views
|
|||||||
|
|
||||||
case ShortcutAction.Recompare: return Run(vm.ReloadCommand);
|
case ShortcutAction.Recompare: return Run(vm.ReloadCommand);
|
||||||
|
|
||||||
|
case ShortcutAction.ToggleActions: return Run(vm.ToggleActionsCommand);
|
||||||
|
|
||||||
case ShortcutAction.OpenFolderCompare:
|
case ShortcutAction.OpenFolderCompare:
|
||||||
UbisamBase.Core.Modules.TabManager.Activate(ViewIds.Folder);
|
UbisamBase.Core.Modules.TabManager.Activate(ViewIds.Folder);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user