From 00d1eeff966451170c703db1e0e035393c7104b8 Mon Sep 17 00:00:00 2001 From: Yun Chan Date: Wed, 6 May 2026 19:26:27 +0900 Subject: [PATCH] =?UTF-8?q?ux:=20=EC=9A=B0=ED=81=B4=EB=A6=AD=20=E2=86=92?= =?UTF-8?q?=20=EB=A9=94=EC=9D=B8=20=EC=9C=88=EB=8F=84=EC=9A=B0=20=ED=86=B5?= =?UTF-8?q?=ED=95=A9=20+=20Preview=EB=A5=BC=20=EC=9A=B0=EC=B8=A1=20?= =?UTF-8?q?=EC=BB=AC=EB=9F=BC=EC=9C=BC=EB=A1=9C=20=EC=8A=B9=EA=B2=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 우클릭 진입 통합 - App.OnStartup의 dialog 분기에서 ConvertWindow 대신 MainWindow를 띄우면서 파일을 Active Queue에 자동 추가, 첫 항목 자동 Preview 로드. - 사용자 시점에서 우클릭 → "JPEG로 변환…" 클릭 시 작은 다이얼로그가 아니라 풀스크린 FormatShift 메인 화면이 그대로 노출. - ConvertWindow 자체는 FormatShift 토큰으로 통일했지만 더 이상 호출되지 않음 (코드는 향후 활용 위해 보존). Preview를 탭 → 우측 메인 컬럼으로 승격 - 메인 영역 그리드를 1 column → 2 column 으로 분할: 좌측 *(min 360), 우측 380px 고정 Preview 컬럼. - 탭은 Active Queue / Past Results 두 개만 (Preview 탭과 무의미한 0 뱃지 제거). Preview는 항상 보임. - Active Queue 행 클릭 → 우측 Preview에 즉시 표시 (탭 전환 없음). - Past Results 행도 클릭 가능: 실제 파일이면 미리보기, 데모/소실 파일이면 안내 문구. - Drop hint overlay는 ColumnSpan=2로 양쪽 컬럼 모두 덮음. 이벤트 처리 개선 - 행 Border에 PreviewMouseLeftButtonUp(tunnel) 사용 → 자식 컨트롤이 클릭을 가로채는 이슈 해소. - IsInsideButton 헬퍼로 Remove/Open 버튼이 발화시킨 클릭은 행 핸들러에서 무시하여 의도 충돌 방지. App.xaml 정리 - FormatShiftTheme.xaml 을 App-level resources에 머지 → 모든 윈도우에서 Application.Current.FindResource("Fs*") 조회 가능 (이전엔 Window-level 머지만 해서 ResourceReferenceKeyNotFoundException 발생). LoadPreview 통합 - LoadPreviewByPathAsync(path, fileName, format, size) 단일 메서드로 통합. - _selectedPreviewPath 로 Active/Past 두 케이스 모두 Open in Explorer 일관 처리. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/EverythingToJpeg.App/App.xaml | 1 + src/EverythingToJpeg.App/App.xaml.cs | 2 +- .../Views/ConvertWindow.xaml | 305 ++++++++++++------ .../Views/ConvertWindow.xaml.cs | 231 +++++++------ .../Views/MainWindow.xaml | 302 +++++++++-------- .../Views/MainWindow.xaml.cs | 127 ++++++-- 6 files changed, 595 insertions(+), 373 deletions(-) diff --git a/src/EverythingToJpeg.App/App.xaml b/src/EverythingToJpeg.App/App.xaml index 430b975..7516c02 100644 --- a/src/EverythingToJpeg.App/App.xaml +++ b/src/EverythingToJpeg.App/App.xaml @@ -9,6 +9,7 @@ + diff --git a/src/EverythingToJpeg.App/App.xaml.cs b/src/EverythingToJpeg.App/App.xaml.cs index e005df4..6ed2c32 100644 --- a/src/EverythingToJpeg.App/App.xaml.cs +++ b/src/EverythingToJpeg.App/App.xaml.cs @@ -67,7 +67,7 @@ public partial class App : Application private void ShowConvertDialog(IReadOnlyList files) { - var window = new ConvertWindow(Engine, files); + var window = new Views.MainWindow(files); MainWindow = window; window.Show(); } diff --git a/src/EverythingToJpeg.App/Views/ConvertWindow.xaml b/src/EverythingToJpeg.App/Views/ConvertWindow.xaml index f896c18..8e776b4 100644 --- a/src/EverythingToJpeg.App/Views/ConvertWindow.xaml +++ b/src/EverythingToJpeg.App/Views/ConvertWindow.xaml @@ -3,47 +3,66 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" Title="JPEG로 변환" - Width="640" Height="780" - MinWidth="520" MinHeight="560" + Width="720" Height="780" + MinWidth="560" MinHeight="560" ExtendsContentIntoTitleBar="True" - WindowBackdropType="Mica" + WindowBackdropType="None" WindowCornerPreference="Round" WindowStartupLocation="CenterOwner" AllowDrop="True" Drop="OnFilesDropped" - DragOver="OnDragOver"> - + DragOver="OnDragOver" + TextOptions.TextFormattingMode="Display" + UseLayoutRounding="True"> + + + + + + + + + - + - - + + - - + + - - + + - - +