From dca15ab62abc62c9539161c74f22d08699361ea3 Mon Sep 17 00:00:00 2001 From: ZXY101 Date: Fri, 22 Sep 2023 08:39:47 +0200 Subject: [PATCH] Zoom settings and better page change handling --- src/lib/components/Reader/Reader.svelte | 83 ++++++++++++++++--------- src/lib/components/Settings.svelte | 30 +++++++-- src/lib/panzoom/util.ts | 26 +++++--- src/lib/settings/index.ts | 17 +++-- 4 files changed, 108 insertions(+), 48 deletions(-) diff --git a/src/lib/components/Reader/Reader.svelte b/src/lib/components/Reader/Reader.svelte index 89eb448..4a906c7 100644 --- a/src/lib/components/Reader/Reader.svelte +++ b/src/lib/components/Reader/Reader.svelte @@ -1,11 +1,23 @@ + {#if volume && pages}
- (page = 1)} class="hover:text-primary-600" /> + changePage($settings.rightToLeft ? pages.length : 1, true)} + class="hover:text-primary-600" + /> (page = pages.length)} + on:click={() => changePage($settings.rightToLeft ? 1 : pages.length, true)} class="hover:text-primary-600" />
- +
- -
- {#if !$settings.singlePageView && index + 1 < pages.length} - - {/if} - -
-
+
+ +
- - - {/if} diff --git a/src/lib/components/Settings.svelte b/src/lib/components/Settings.svelte index 56758c8..9a43266 100644 --- a/src/lib/components/Settings.svelte +++ b/src/lib/components/Settings.svelte @@ -5,6 +5,7 @@ import { resetSettings, settings, updateSetting } from '$lib/settings'; import type { SettingsKey } from '$lib/settings'; import { promptConfirmation } from '$lib/util'; + import { zoomDefault } from '$lib/panzoom'; let transitionParams = { x: 320, @@ -14,7 +15,16 @@ export let hidden = true; - let selected = 'auto'; + $: zoomModeValue = $settings.zoomDefault; + $: fontSizeValue = $settings.fontSize; + + let zoomModes = [ + { value: 'zoomFitToScreen', name: 'Fit to screen' }, + { value: 'zoomFitToWidth', name: 'Fit to width' }, + { value: 'zoomOriginal', name: 'Original size' }, + { value: 'keepZoom', name: 'Keep zoom' }, + { value: 'keepZoomStart', name: 'Keep zoom, pan to top' } + ]; let fontSizes = [ { value: 'auto', name: 'auto' }, @@ -48,8 +58,8 @@ updateSetting('backgroundColor', (event.target as HTMLInputElement).value); } - function onFontSize(event: Event) { - updateSetting('fontSize', (event.target as HTMLInputElement).value); + function onSelectChange(event: Event, setting: SettingsKey) { + updateSetting(setting, (event.target as HTMLInputElement).value); } function onReset() { @@ -73,6 +83,14 @@ (hidden = true)} class="mb-4 dark:text-white" />
+
+ + +