Reorganize some settings

This commit is contained in:
Arnaud_Cayrol 2026-02-11 18:01:29 +01:00
parent 730bd378ea
commit d16271345d
2 changed files with 70 additions and 67 deletions

View file

@ -340,71 +340,6 @@
{/if}
</div>
<!-- Alignment Section -->
<div class="setting-section">
<div class="section-header">
<span class="section-title">Final Image Composition</span>
</div>
<div class="setting-row sub-setting">
<label for="eye-distance">
<span class="setting-label">Eye Distance</span>
<span class="setting-hint">Distance between eyes as % of image width (larger = zoom in)</span>
</label>
<div class="setting-control-with-visual">
<input
id="eye-distance"
type="range"
bind:value={config.processing.alignment.eye_distance}
min="0.1"
max="0.5"
step="0.01"
/>
<span class="value">{(config.processing.alignment.eye_distance * 100).toFixed(0)}%</span>
<div class="inline-visual-indicator">
<AlignmentIndicator eyeDistance={config.processing.alignment.eye_distance} />
</div>
</div>
</div>
</div>
</fieldset>
{:else if activeTab === 'output'}
<fieldset disabled={disabled || saving}>
<div class="setting-row">
<label for="output-size">
<span class="setting-label">Output Size</span>
<span class="setting-hint">Final image dimensions (square)</span>
</label>
<div class="setting-control">
<input
id="output-size"
type="range"
bind:value={config.processing.output.size}
min="128"
max="1024"
step="64"
/>
<span class="value">{config.processing.output.size}px</span>
</div>
</div>
<div class="setting-row">
<label for="max-workers">
<span class="setting-label">Parallel Workers</span>
<span class="setting-hint">Concurrent image processing tasks</span>
</label>
<div class="setting-control">
<input
id="max-workers"
type="range"
bind:value={config.processing.max_workers}
min="1"
max="16"
step="1"
/>
<span class="value">{config.processing.max_workers}</span>
</div>
</div>
<div class="setting-row checkbox-row">
<label for="keep-intermediates">
<span class="setting-label">Keep Debug Images</span>
@ -413,6 +348,47 @@
<input id="keep-intermediates" type="checkbox" bind:checked={config.processing.output.keep_intermediates} />
</div>
</fieldset>
{:else if activeTab === 'output'}
<fieldset disabled={disabled || saving}>
<div class="setting-section">
<div class="setting-row">
<label for="output-size">
<span class="setting-label">Output Size</span>
<span class="setting-hint">Final image dimensions (square)</span>
</label>
<div class="setting-control">
<input
id="output-size"
type="range"
bind:value={config.processing.output.size}
min="128"
max="1024"
step="64"
/>
<span class="value">{config.processing.output.size}px</span>
</div>
</div>
<div class="setting-row">
<label for="max-workers">
<span class="setting-label">Parallel Workers</span>
<span class="setting-hint">Concurrent image processing tasks</span>
</label>
<div class="setting-control">
<input
id="max-workers"
type="range"
bind:value={config.processing.max_workers}
min="1"
max="16"
step="1"
/>
<span class="value">{config.processing.max_workers}</span>
</div>
</div>
</div>
<!-- Time Interval Section -->
<div class="setting-section">
<div class="section-header">
@ -500,6 +476,33 @@
</div>
{/if}
</div>
<!-- Alignment Section -->
<div class="setting-section">
<div class="section-header">
<span class="section-title">Final Image Composition</span>
</div>
<div class="setting-row sub-setting">
<label for="eye-distance">
<span class="setting-label">Eye Distance</span>
<span class="setting-hint">Distance between eyes as % of image width (larger = zoom in)</span>
</label>
<div class="setting-control-with-visual">
<input
id="eye-distance"
type="range"
bind:value={config.processing.alignment.eye_distance}
min="0.05"
max="0.4"
step="0.01"
/>
<span class="value">{(config.processing.alignment.eye_distance * 100).toFixed(0)}%</span>
<div class="inline-visual-indicator">
<AlignmentIndicator eyeDistance={config.processing.alignment.eye_distance} />
</div>
</div>
</div>
</div>
</fieldset>
{:else if activeTab === 'video'}
<fieldset disabled={disabled || saving}>

View file

@ -371,9 +371,9 @@ impl AlignmentConfig {
"Alignment eye_distance must be between 0.0 and 1.0 (exclusive)".to_string(),
));
}
if self.eye_distance < 0.1 || self.eye_distance > 0.5 {
if self.eye_distance < 0.05 || self.eye_distance > 0.4 {
return Err(Error::Config(
"Alignment eye_distance should be between 0.1 and 0.5 for best results".to_string(),
"Alignment eye_distance should be between 0.05 and 0.4 for best results".to_string(),
));
}
Ok(())