feat(quick): 빠른 변환 간단 옵션 팝업 + 중간 취소 지원
컨텍스트 메뉴에서 형식(MP4/MP3 등) 선택 시 간단 옵션 팝업을 띄우고, 변환 중 취소를 지원한다. - QuickOptionsWindow(신규): 출력 형식에 맞춘 간단 옵션(영상=품질CRF/해상도/GPU, 오디오=비트레이트, 이미지=품질) 팝업. '변환'으로 진행, '취소'로 종료, '자세히 옵션…'으로 풀 UI(MainWindow) 전환. OptionsViewModel 재사용 → ToConvertOptions()로 변환 옵션 구성. - App.RunQuickAsync: 변환 전 팝업 표시 + 선택 옵션 적용. ConvertManyAsync에 취소 토큰 전달(이전엔 None이라 취소 불가였음). 변환 경로는 ShutdownMode=OnExplicitShutdown으로 전환해 **취소/창 닫기 시 ffmpeg를 종료한 '뒤' 앱을 종료**(고아 프로세스·백그라운드 잔류 방지). 성공 시 결과 창 닫을 때까지 대기. - QuickProgressWindow: 변환 중 '취소' 버튼 + 창 Closing 시 취소(CancellationTokenSource 주입). 완료 시 취소 버튼 숨김. 버그 수정: 빠른 변환 진행 창을 닫아도 변환이 백그라운드에서 계속 돌던 문제 해결. 빌드 0/0, 106 테스트 그린, publish 후 팝업/일반 실행 크래시 없이 로드.
This commit is contained in:
parent
c10da19bfd
commit
7d461d6ae4
5 changed files with 226 additions and 12 deletions
|
|
@ -8,7 +8,8 @@
|
|||
WindowBackdropType="Mica"
|
||||
WindowCornerPreference="Round"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
ResizeMode="NoResize">
|
||||
ResizeMode="NoResize"
|
||||
Closing="OnWindowClosing">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
|
|
@ -41,13 +42,24 @@
|
|||
HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
RenderOptions.BitmapScalingMode="HighQuality"
|
||||
Source="pack://application:,,,/Assets/illus-done.png"/>
|
||||
<StackPanel Grid.Row="4" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,12,0,0">
|
||||
<ui:Button x:Name="OpenFolderButton" Content="결과 폴더 열기"
|
||||
Icon="{ui:SymbolIcon Folder24}"
|
||||
Click="OnOpenFolderClick" IsEnabled="False" Margin="0,0,8,0"/>
|
||||
<ui:Button x:Name="CloseButton" Content="닫기" Click="OnCloseClick"
|
||||
Appearance="Primary" IsEnabled="False"/>
|
||||
</StackPanel>
|
||||
<Grid Grid.Row="4" Margin="0,12,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<!-- 변환 중 취소 (완료되면 숨김) -->
|
||||
<ui:Button x:Name="CancelButton" Grid.Column="0" Content="취소"
|
||||
Icon="{ui:SymbolIcon Dismiss24}"
|
||||
Click="OnCancelClick" HorizontalAlignment="Left"/>
|
||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<ui:Button x:Name="OpenFolderButton" Content="결과 폴더 열기"
|
||||
Icon="{ui:SymbolIcon Folder24}"
|
||||
Click="OnOpenFolderClick" IsEnabled="False" Margin="0,0,8,0"/>
|
||||
<ui:Button x:Name="CloseButton" Content="닫기" Click="OnCloseClick"
|
||||
Appearance="Primary" IsEnabled="False"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</ui:FluentWindow>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue