From 4d5bcf85e249681c50e260c0b1b1372d421b0b11 Mon Sep 17 00:00:00 2001 From: Fornax Date: Thu, 16 Nov 2023 19:05:30 +0100 Subject: [PATCH] Make gallery view more responsive, add zoom button --- .../filesystem/filemanager/FileManager.svelte | 57 +++++++++++-- .../filesystem/filemanager/GalleryView.svelte | 81 +++++++++++++------ .../filesystem/filemanager/ListView.svelte | 21 ++--- 3 files changed, 115 insertions(+), 44 deletions(-) diff --git a/svelte/src/filesystem/filemanager/FileManager.svelte b/svelte/src/filesystem/filemanager/FileManager.svelte index 04600cf..98b9d54 100644 --- a/svelte/src/filesystem/filemanager/FileManager.svelte +++ b/svelte/src/filesystem/filemanager/FileManager.svelte @@ -11,6 +11,7 @@ export let fs_navigator export let state export let edit_window export let directory_view = "" +let large_icons = false let uploader let mode = "viewing" let creating_dir = false @@ -20,6 +21,8 @@ export const upload = files => { return uploader.upload(files) } +// Navigation functions + const node_click = e => { let index = e.detail @@ -39,6 +42,13 @@ const node_click = e => { state.children[index].fm_selected = !state.children[index].fm_selected } } +let node_context = e => { + // If this is a touch event we will select the item + if (navigator.maxTouchPoints && navigator.maxTouchPoints > 0) { + e.detail.event.preventDefault() + node_select({detail: e.detail.index}) + } +} const node_share_click = e => { let index = e.detail @@ -67,6 +77,8 @@ const navigate_back = () => { history.back() } +// Deletion function + const delete_selected = async () => { let count = state.children.reduce((acc, cur) => { if (cur.fm_selected) { @@ -103,6 +115,9 @@ const delete_selected = async () => { fs_navigator.reload() } } + +// Mode switches + const selecting_mode = () => { mode = "selecting" } @@ -128,6 +143,12 @@ const toggle_view = () => { localStorage.setItem("directory_view", directory_view) } +const toggle_large_icons = () => { + large_icons = !large_icons + localStorage.setItem("large_icons", large_icons) +} + +// Moving functions let moving_items = [] @@ -160,7 +181,6 @@ const move_here = async () => { let target_dir = state.base.path + "/" try { - // Save all promises with deletion requests in an array let promises = [] moving_items.forEach(item => { console.log("moving", item.path, "to", target_dir + item.name) @@ -181,6 +201,7 @@ const move_here = async () => { onMount(() => { if(typeof Storage !== "undefined") { directory_view = localStorage.getItem("directory_view") + large_icons = localStorage.getItem("large_icons") === "true" } if (directory_view === "" || directory_view === null) { directory_view = "list" @@ -201,13 +222,6 @@ onMount(() => { - + + + +
{#if state.permissions.update}