feat(options): implement granular fold-out encoding options with industry standards
- Adopt Microsoft Fluent 2 Progressive Disclosure pattern with AdvancedOptionsExpander - Add ISO 32000 / Ghostscript PDF optimization panel (Light/Strong/Max, 150/200/300 DPI) - Add W3C / MozJPEG Image panel with Lossless WebP/PNG and Progressive toggles - Add FFmpeg video/audio granular controls (codecs, CRF/ABR rate control, presets, Loudnorm) - Mirror advanced options in QuickOptionsWindow context dialog - Add DesignAudit AST and visual tests for foldout structure (249 tests passing in 2s)
This commit is contained in:
parent
7cb75fd3aa
commit
455c8b1324
4 changed files with 234 additions and 154 deletions
|
|
@ -172,13 +172,10 @@ public partial class MainWindow : Wpf.Ui.Controls.FluentWindow
|
|||
if (initialFiles is { Count: > 0 })
|
||||
{
|
||||
AddToQueue(initialFiles);
|
||||
ShowTab("Active");
|
||||
}
|
||||
else
|
||||
{
|
||||
ShowTab("Past");
|
||||
}
|
||||
|
||||
ShowTab("Active");
|
||||
|
||||
UpdateActiveQueueVisibility();
|
||||
ApplyAppDataStats();
|
||||
|
||||
|
|
@ -1404,16 +1401,24 @@ public partial class MainWindow : Wpf.Ui.Controls.FluentWindow
|
|||
UpdateMediaPanelForFormat(extension);
|
||||
}
|
||||
|
||||
/// <summary>출력이 영상/오디오일 때만 영상·오디오 인코딩 패널을 노출(영상이면 영상+오디오, 오디오면 오디오만).</summary>
|
||||
/// <summary>출력이 영상/오디오/PDF/이미지일 때 상세 인코딩 폴드아웃 서브패널 노출(Fluent 2 점진적 공개 패턴).</summary>
|
||||
private void UpdateMediaPanelForFormat(string? extension)
|
||||
{
|
||||
if (MediaPanel is null) return;
|
||||
if (AdvancedOptionsExpander is null) return;
|
||||
var ext = (extension ?? string.Empty).ToLowerInvariant();
|
||||
var isVideo = ext is ".mp4" or ".mkv" or ".webm" or ".mov" or ".avi";
|
||||
var isAudio = ext is ".mp3" or ".aac" or ".m4a" or ".opus" or ".ogg" or ".flac" or ".wav";
|
||||
MediaPanel.Visibility = (isVideo || isAudio) ? Visibility.Visible : Visibility.Collapsed;
|
||||
VideoSubPanel.Visibility = isVideo ? Visibility.Visible : Visibility.Collapsed;
|
||||
AudioSubPanel.Visibility = (isVideo || isAudio) ? Visibility.Visible : Visibility.Collapsed;
|
||||
var isPdf = ext is ".pdf";
|
||||
var isImage = ext is ".jpg" or ".jpeg" or ".png" or ".webp" or ".avif" or ".tif" or ".tiff" or ".bmp" or ".gif";
|
||||
|
||||
if (AdvancedVideoPanel is not null)
|
||||
AdvancedVideoPanel.Visibility = isVideo ? Visibility.Visible : Visibility.Collapsed;
|
||||
if (AdvancedAudioPanel is not null)
|
||||
AdvancedAudioPanel.Visibility = (isVideo || isAudio) ? Visibility.Visible : Visibility.Collapsed;
|
||||
if (AdvancedPdfPanel is not null)
|
||||
AdvancedPdfPanel.Visibility = isPdf ? Visibility.Visible : Visibility.Collapsed;
|
||||
if (AdvancedImagePanel is not null)
|
||||
AdvancedImagePanel.Visibility = isImage ? Visibility.Visible : Visibility.Collapsed;
|
||||
}
|
||||
|
||||
private void UpdateOutputDestHint(string? extension)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue