From ae19ed527d8596b8a44980a86edb517785cdf11c Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Thu, 20 May 2021 18:28:59 +0200 Subject: [PATCH 01/20] Switch to keyboard shortcuts based on event.key --- ts/components/WithShortcut.svelte | 2 +- ts/deckoptions/DeckOptionsPage.svelte | 4 +++- ts/deckoptions/deckoptions-base.scss | 2 +- ts/editor/ClozeButton.svelte | 2 +- ts/editor/ColorButtons.svelte | 4 ++-- ts/editor/FormatInlineButtons.svelte | 27 +++++++++++++++++++++------ ts/editor/NoteTypeButtons.svelte | 5 ++++- ts/editor/PreviewButton.svelte | 5 ++++- ts/editor/TemplateButtons.svelte | 18 +++++++++--------- ts/editor/inputHandlers.ts | 2 +- ts/lib/shortcuts.ts | 15 ++++----------- 11 files changed, 51 insertions(+), 35 deletions(-) diff --git a/ts/components/WithShortcut.svelte b/ts/components/WithShortcut.svelte index 75c019435..3f753fa91 100644 --- a/ts/components/WithShortcut.svelte +++ b/ts/components/WithShortcut.svelte @@ -8,7 +8,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import { onDestroy } from "svelte"; import { registerShortcut, getPlatformString } from "lib/shortcuts"; - export let shortcut: string; + export let shortcut: string[][]; export let optionalModifiers: Modifier[] | undefined = []; const shortcutLabel = getPlatformString(shortcut); diff --git a/ts/deckoptions/DeckOptionsPage.svelte b/ts/deckoptions/DeckOptionsPage.svelte index 809c93bda..63d92127f 100644 --- a/ts/deckoptions/DeckOptionsPage.svelte +++ b/ts/deckoptions/DeckOptionsPage.svelte @@ -36,7 +36,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html let registerCleanup: () => void; onMount(() => { - registerCleanup = registerShortcut(() => state.save(false), "Control+Enter"); + registerCleanup = registerShortcut(() => state.save(false), [ + ["Control", "Enter"], + ]); }); onDestroy(() => registerCleanup?.()); diff --git a/ts/deckoptions/deckoptions-base.scss b/ts/deckoptions/deckoptions-base.scss index e8a1dd920..ead0dbf6f 100644 --- a/ts/deckoptions/deckoptions-base.scss +++ b/ts/deckoptions/deckoptions-base.scss @@ -51,5 +51,5 @@ code { // override the default down arrow colour in elements From f56c241702337c8090c155d68f2fead6161d3727 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Mon, 24 May 2021 18:26:01 +1000 Subject: [PATCH 20/20] round floats before comparing against default values tabbing through the Advanced section was marking things like 'easy bonus' as modified --- ts/deckoptions/RevertButton.svelte | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ts/deckoptions/RevertButton.svelte b/ts/deckoptions/RevertButton.svelte index dd2c0b720..9f7afaa50 100644 --- a/ts/deckoptions/RevertButton.svelte +++ b/ts/deckoptions/RevertButton.svelte @@ -6,7 +6,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import * as tr from "lib/i18n"; import { revertIcon } from "./icons"; import { createEventDispatcher } from "svelte"; - import { isEqual, cloneDeep } from "lodash-es"; + import { isEqual as isEqualLodash, cloneDeep } from "lodash-es"; // import { onMount } from "svelte"; // import Tooltip from "bootstrap/js/dist/tooltip"; @@ -26,6 +26,17 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html const dispatch = createEventDispatcher(); + function isEqual(a: unknown, b: unknown): boolean { + if (typeof a === "number" && typeof b === "number") { + // round to .01 precision before comparing, + // so the values coming out of the UI match + // the originals + return isEqualLodash(Math.round(a * 100) / 100, Math.round(b * 100) / 100); + } else { + return isEqualLodash(a, b); + } + } + let modified: boolean; $: modified = !isEqual(value, defaultValue);