From 9201f1e92f7e441e4de2da4c9dcb675e0e17b399 Mon Sep 17 00:00:00 2001 From: Maya Date: Tue, 10 Mar 2026 16:28:00 +0300 Subject: [PATCH] fix: more bug fixes --- .../functional/popups/SettingsModal.svelte | 14 ++++++++--- src/lib/converters/vertd.svelte.ts | 25 ++++++++++--------- src/lib/types/conversion-settings.ts | 2 +- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/src/lib/components/functional/popups/SettingsModal.svelte b/src/lib/components/functional/popups/SettingsModal.svelte index acb94de..03e73c4 100644 --- a/src/lib/components/functional/popups/SettingsModal.svelte +++ b/src/lib/components/functional/popups/SettingsModal.svelte @@ -9,6 +9,7 @@ import { sanitize } from "$lib/store/index.svelte"; import { log } from "$lib/util/logger"; import { type ConversionSettings } from "$lib/types/conversion-settings"; + import { onMount } from "svelte"; type Props = { file: VertFile | null; @@ -29,9 +30,7 @@ return available.find((c) => c.name === name) || available[0]; }; - let settings = $derived({ - converter: file ? getValidConverter(file)?.name : undefined, - }); + let settings = $state({}); const handleSettingChange = (key: string, value: any) => { if (!file) return; @@ -59,6 +58,13 @@ `Applied settings for ${file.name}: ${JSON.stringify(file.conversionSettings, null, 2)}`, ); }; + + onMount(() => { + if (!file) return; + + // always have a converter initialized so we can show its settings + settings.converter = getValidConverter(file)?.name; + }); { - settings = { converter: value }; // TODO: dont think i need to add the converter here + settings.converter = value; }} /> diff --git a/src/lib/converters/vertd.svelte.ts b/src/lib/converters/vertd.svelte.ts index 151c5b7..c814761 100644 --- a/src/lib/converters/vertd.svelte.ts +++ b/src/lib/converters/vertd.svelte.ts @@ -392,21 +392,27 @@ export class VertdConverter extends Converter { const qualityOptions = [ { - value: "verySlow", + value: 0, // very slow label: m["convert.settings.video.speed_very_slow"](), }, { - value: "slower", + value: 1, // slower label: m["convert.settings.video.speed_slower"](), }, - { value: "slow", label: m["convert.settings.video.speed_slow"]() }, { - value: "medium", + value: 2, // slow + label: m["convert.settings.video.speed_slow"](), + }, + { + value: 3, // medium label: m["convert.settings.video.speed_medium"](), }, - { value: "fast", label: m["convert.settings.video.speed_fast"]() }, { - value: "ultraFast", + value: 4, // faster + label: m["convert.settings.video.speed_fast"](), + }, + { + value: 5, // fastest label: m["convert.settings.video.speed_ultra_fast"](), }, ]; @@ -415,7 +421,7 @@ export class VertdConverter extends Converter { const defaultSpeed = Settings.instance.settings.vertdSpeed; const defaultSpeedIndex = vertdSpeedValues.indexOf(defaultSpeed); const qualitySpeedRange: SettingDefinition = { - key: "vertdSpeedSlider", + key: "vertdSpeed", label: m["convert.settings.video.speed"](), description: m["convert.settings.video.speed_description"](), type: "range", @@ -426,7 +432,6 @@ export class VertdConverter extends Converter { options: qualityOptions.map((option, index) => ({ value: index, label: option.label, - speedValue: option.value, })), forceFullWidth: true, }; @@ -573,10 +578,6 @@ export class VertdConverter extends Converter { defaults[setting.key] = setting.default; }); - if (defaults.vertdSpeedSlider !== undefined) { - const sliderIndex = defaults.vertdSpeedSlider as number; - defaults.vertdSpeed = vertdSpeedValues[sliderIndex]; - } return defaults; } diff --git a/src/lib/types/conversion-settings.ts b/src/lib/types/conversion-settings.ts index 8c58bf4..27672d6 100644 --- a/src/lib/types/conversion-settings.ts +++ b/src/lib/types/conversion-settings.ts @@ -11,7 +11,7 @@ export interface SettingDefinition { min?: number; max?: number; step?: number; - options?: Array<{ value: any; label: any; speedValue?: any }>; // for select/range types + options?: Array<{ value: any; label: any; }>; // for select/range types description?: string; hasCustomInput?: boolean; // for select types with a "custom" option customInputKey?: string; // key to use for custom input value in settings object