[Phase UX] 창 위치 기억·파일 아이콘·퍼지 랭킹·미리보기 패널 4종 UX 개선
창 위치 기억 (Feature 1):
- AppSettings.cs: LauncherSettings에 RememberPosition, LastLeft, LastTop 프로퍼티 추가
- SettingsViewModel.cs/.Properties.cs/.Methods.cs: RememberPosition 바인딩 프로퍼티 연동
- LauncherWindow.Animations.cs: CenterOnScreen() — RememberPosition ON 시 저장 좌표 복원
- LauncherWindow.Shell.cs: Window_Deactivated — 비활성화 시 현재 위치 비동기 저장
- SettingsWindow.xaml: 런처 탭 › "마지막 위치 기억" 토글 추가
파일 아이콘 표시 (Feature 2):
- Services/IconCacheService.cs (신규, 192줄): Shell32 SHGetFileInfo로 아이콘 추출,
%LOCALAPPDATA%\AxCopilot\IconCache\에 PNG 캐시, WarmUp()으로 앱 시작 시 미리 준비
- Core/CommandResolver.cs: 퍼지 검색 결과에 IconCacheService.GetIconPath() 연결
- Handlers/FileBrowserHandler.cs: 상위폴더·폴더·파일 항목에 IconCacheService 연결
- App.xaml.cs: SystemIdle 시점에 IconCacheService.WarmUp() 호출
퍼지 검색 랭킹 개선 (Feature 3):
- Services/UsageRankingService.cs 전면 개선: 기존 int 횟수 → UsageRecord{Count, LastUsedMs}
- GetScore() 반환형 int → double, 30일 반감기 지수 감쇠(decay=exp(-days/43.3)) 적용
- 구형 usage.json 자동 마이그레이션 (count만 있는 형식 → 신규 형식)
- GetTopItems() / SortByUsage() 점수 기준 정렬로 업데이트
미리보기 패널 (Feature 4):
- ViewModels/LauncherViewModel.cs: PreviewText, HasPreview 프로퍼티 + UpdatePreviewAsync()
클립보드 텍스트(최대 400자) 및 텍스트 파일(최초 6줄) 미리보기, 80ms 디바운스
- Views/LauncherWindow.xaml: RowDefinitions 7→8개, Row5에 PreviewPanel Border 삽입,
IndexStatusText Row5→6, WidgetBar Row6→7, ToastOverlay RowSpan 3→4
빌드: 경고 0, 오류 0
This commit is contained in:
@@ -34,6 +34,7 @@ public partial class SettingsViewModel : INotifyPropertyChanged
|
||||
private bool _enableRecent;
|
||||
private bool _enableActionMode;
|
||||
private bool _closeOnFocusLost;
|
||||
private bool _rememberPosition;
|
||||
private bool _showPrefixBadge;
|
||||
private bool _enableIconAnimation;
|
||||
private bool _enableRainbowGlow;
|
||||
@@ -86,6 +87,7 @@ public partial class SettingsViewModel : INotifyPropertyChanged
|
||||
_enableRecent = s.Launcher.EnableRecent;
|
||||
_enableActionMode = s.Launcher.EnableActionMode;
|
||||
_closeOnFocusLost = s.Launcher.CloseOnFocusLost;
|
||||
_rememberPosition = s.Launcher.RememberPosition;
|
||||
_showPrefixBadge = s.Launcher.ShowPrefixBadge;
|
||||
_enableIconAnimation = s.Launcher.EnableIconAnimation;
|
||||
_enableRainbowGlow = s.Launcher.EnableRainbowGlow;
|
||||
|
||||
Reference in New Issue
Block a user