- Agent Compare 기준으로 런처 빠른 실행 칩, 검색 히스토리 탐색, 선택 항목 미리보기 패널을 현재 런처에 이식 - 하단 위젯 바, QuickLook(F3), 화면 OCR(F4), 관련 서비스/partial 파일을 현재 LauncherWindow/LauncherViewModel 구조에 연결 - UsageRankingService 상위 항목 조회와 SearchHistoryService를 추가해 실행 상위 경로/검색 기록이 실제 런처 동작에 반영되도록 정리 - README.md, docs/DEVELOPMENT.md에 이식 범위와 검증 결과를 2026-04-05 11:58 (KST) 기준으로 기록 검증 결과 - dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ 경고 0 / 오류 0
68 lines
2.0 KiB
C#
68 lines
2.0 KiB
C#
using System.Windows;
|
|
using System.Windows.Input;
|
|
using AxCopilot.Models;
|
|
|
|
namespace AxCopilot.Views;
|
|
|
|
public partial class LauncherWindow
|
|
{
|
|
private QuickLookWindow? _quickLookWindow;
|
|
|
|
private async void QuickActionChip_Click(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (((FrameworkElement)sender).DataContext is not QuickActionChip chip)
|
|
return;
|
|
|
|
var expanded = Environment.ExpandEnvironmentVariables(chip.Path);
|
|
Hide();
|
|
|
|
try
|
|
{
|
|
await Task.Run(() =>
|
|
System.Diagnostics.Process.Start(
|
|
new System.Diagnostics.ProcessStartInfo(expanded)
|
|
{
|
|
UseShellExecute = true
|
|
}));
|
|
_ = Task.Run(() => Services.UsageRankingService.RecordExecution(chip.Path));
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Services.LogService.Error($"빠른 실행 칩 열기 실패: {expanded} - {ex.Message}");
|
|
}
|
|
}
|
|
|
|
internal void ToggleQuickLook()
|
|
{
|
|
if (_quickLookWindow != null)
|
|
{
|
|
_quickLookWindow.Close();
|
|
_quickLookWindow = null;
|
|
return;
|
|
}
|
|
|
|
if (_vm.SelectedItem?.Data is not Services.IndexEntry indexEntry)
|
|
return;
|
|
|
|
var path = Environment.ExpandEnvironmentVariables(indexEntry.Path);
|
|
if (!System.IO.File.Exists(path) && !System.IO.Directory.Exists(path))
|
|
return;
|
|
|
|
var qlLeft = Left + ActualWidth + 8;
|
|
var qlTop = Top;
|
|
|
|
var screen = System.Windows.Forms.Screen.FromHandle(
|
|
new System.Windows.Interop.WindowInteropHelper(this).Handle);
|
|
if (qlLeft + 400 > screen.WorkingArea.Right)
|
|
qlLeft = Left - 408;
|
|
|
|
_quickLookWindow = new QuickLookWindow(path, this)
|
|
{
|
|
Left = qlLeft,
|
|
Top = qlTop
|
|
};
|
|
_quickLookWindow.Closed += (_, _) => _quickLookWindow = null;
|
|
_quickLookWindow.Show();
|
|
}
|
|
}
|