From 568fbdb0ddf427b0a430b8e7ecd69a6b72a94c99 Mon Sep 17 00:00:00 2001 From: Msystech Date: Thu, 13 Aug 2026 16:31:08 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BF=BC=EB=A6=AC=20=ED=8E=B8=EC=A7=91?= =?UTF-8?q?=EA=B8=B0=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EB=A7=9E=EC=B6=A4=20?= =?UTF-8?q?=E2=80=94=20=EA=B7=B8=EB=A6=AC=EA=B3=A0=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A1=A4=EC=9D=B4=20=EC=9E=90=EB=8F=99=EC=99=84=EC=84=B1?= =?UTF-8?q?=EC=9D=84=20=EC=A7=80=EC=9A=B0=EB=8D=98=20=EA=B2=B0=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ■ 목업에 맞춘 것 · 툴바(포맷·주석·자동완성)를 탭 모양으로 — 밑줄이 들어오는 글자 버튼. · '전체 지우기'를 빨강에서 강조색 링크로. 되돌릴 수 있는 동작이라 위험색을 쓸 이유가 없다 (TextBox 실행취소에 남는다). · 검증 결과와 상태 줄을 한 상자로 묶고, 결과가 닫혀 있어도 상태 줄은 남게 했다. · 결과 표에 머리글 면·격자선·행 높이를 줬다. 컬럼이 52개까지 나오는 조회가 있어 가로 스크롤이 자연스럽게 보여야 한다. · 하단 버튼을 왼쪽으로 옮기고 여백·글자 크기를 키웠다. 줄 번호는 세로선으로 본문과 가른다. ■ 스크롤이 자동완성 목록을 지우던 결함 디자인 작업 중 --query-popup 이 '포커스를 잃으면 닫힌다'에서 실패했다. 파고 보니 원인은 포커스가 아니라 그 앞 단계였다 — 목록이 아예 안 열리고 있었다. 편집기가 스크롤되면 목록을 닫도록 해 뒀는데, 긴 문서 끝에서 타이핑하면 그 입력 자체가 스크롤을 일으킨다. 그래서 목록이 열리자마자 스크롤 이벤트가 닫아 버렸다. 실사용에서 '긴 쿼리에서만 자동완성이 안 뜬다'로 나타났을 결함이다. 이제 스크롤에는 닫지 않고 새 자리에 다시 놓는다(WPF Popup 은 열린 채로 Placement 를 다시 계산하지 않으므로 닫았다 다시 연다). 걸려 있던 낱말을 커서가 벗어난 경우에만 닫는다. 회귀: 테스트 230/230, 편집 스모크 실패 0, 팝업·정렬·결과표·단축키 점검 16/16, DB 왕복 1,271건 diff 0/예외 0, 종이 렌더 P062 바이트 동일. Co-Authored-By: Claude Opus 5 --- src/SheetMe.Designer/Diagnostics/DbSmoke.cs | 3 +- .../Views/QueryEditorWindow.xaml | 177 ++++++++++++------ .../Views/QueryEditorWindow.xaml.cs | 29 ++- 3 files changed, 153 insertions(+), 56 deletions(-) diff --git a/src/SheetMe.Designer/Diagnostics/DbSmoke.cs b/src/SheetMe.Designer/Diagnostics/DbSmoke.cs index 05598ed..dafc25d 100644 --- a/src/SheetMe.Designer/Diagnostics/DbSmoke.cs +++ b/src/SheetMe.Designer/Diagnostics/DbSmoke.cs @@ -696,7 +696,8 @@ public static class DbSmoke System.Windows.Input.Keyboard.ClearFocus(); box.RaiseEvent(new System.Windows.RoutedEventArgs(System.Windows.UIElement.LostFocusEvent)); DrainDispatcher(); - Check("포커스를 잃으면 닫힌다", openBeforeBlur && !popup.IsOpen); + Check("포커스를 잃으면 닫힌다", openBeforeBlur && !popup.IsOpen, + $"blur 전 열림={openBeforeBlur}, blur 후 열림={popup.IsOpen}"); // ⑦ 바깥 클릭으로 닫히는 설정인지 Check("바깥 클릭으로 닫히는 설정(StaysOpen=False)", !popup.StaysOpen); diff --git a/src/SheetMe.Designer/Views/QueryEditorWindow.xaml b/src/SheetMe.Designer/Views/QueryEditorWindow.xaml index 457b05a..4c1feaa 100644 --- a/src/SheetMe.Designer/Views/QueryEditorWindow.xaml +++ b/src/SheetMe.Designer/Views/QueryEditorWindow.xaml @@ -23,11 +23,79 @@ - - + + + + + + + + + + + + + @@ -83,22 +151,22 @@ - - - - -