1
0
Fork 0

feat(ui): 디자인 마무리 — AI 작업종류 옵션 + 큐 accent bar + 빈 상태 + polish

디자인 세션 마지막 단계(순차 workflow). Linear/Geist 영감 polish + AI 작업 선택 UI.

- AI 작업종류 ComboBox(요약/번역/교정) + 번역 대상언어 → BuildOptions의 opts.Ai.Task/TargetLanguage 연결. 이제 Codex로 번역·교정도 가능
- 큐 row 좌측 형식색 accent bar + hover, 빈 상태(Browse + 안내) 개선
- FormatShiftTheme: FsNumStyle/FsLossPillStyle/FsListRowStyle/FsIconButtonStyle 재사용 스타일
This commit is contained in:
Yun Chan 2026-06-01 16:03:50 +09:00
parent 5c7a4a9ee3
commit e30559b3cd
3 changed files with 226 additions and 61 deletions

View file

@ -258,6 +258,14 @@ public partial class MainWindow : Wpf.Ui.Controls.FluentWindow
};
}
private void OnAiTaskChanged(object sender, SelectionChangedEventArgs e)
{
// 번역(인덱스 1)일 때만 대상 언어 입력을 표시
if (AiTargetLangPanel is null) return;
AiTargetLangPanel.Visibility =
(AiTaskCombo?.SelectedIndex == 1) ? Visibility.Visible : Visibility.Collapsed;
}
private void OnPickOutputFolderClick(object sender, RoutedEventArgs e)
{
var dlg = new Microsoft.Win32.OpenFolderDialog { Title = "출력 폴더 선택" };
@ -286,6 +294,16 @@ public partial class MainWindow : Wpf.Ui.Controls.FluentWindow
opts.OutputLocation = OutputLocation.SubfolderBesideSource;
}
// AI 작업 종류 (txt↔txt / md↔md 등 텍스트 변환 시 LlmProvider가 사용)
opts.Ai.Task = (AiTaskCombo?.SelectedIndex ?? 0) switch
{
1 => "translate",
2 => "proofread",
_ => "summarize",
};
var targetLang = AiTargetLangBox?.Text?.Trim();
opts.Ai.TargetLanguage = string.IsNullOrEmpty(targetLang) ? null : targetLang;
return opts;
}