mirror of
https://github.com/ankitects/anki.git
synced 2025-11-08 05:37:12 -05:00
Save before opening Fields/Cards
This commit is contained in:
parent
71dfb6350d
commit
bdbafb1f6e
3 changed files with 23 additions and 5 deletions
|
|
@ -24,6 +24,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
toolbar: EditorToolbarAPI;
|
toolbar: EditorToolbarAPI;
|
||||||
state: Writable<EditorState>;
|
state: Writable<EditorState>;
|
||||||
lastIOImagePath: Writable<string | null>;
|
lastIOImagePath: Writable<string | null>;
|
||||||
|
saveNow: () => Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface LoadNoteArgs {
|
interface LoadNoteArgs {
|
||||||
|
|
@ -1343,6 +1344,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
fields,
|
fields,
|
||||||
state: editorState,
|
state: editorState,
|
||||||
lastIOImagePath,
|
lastIOImagePath,
|
||||||
|
saveNow,
|
||||||
};
|
};
|
||||||
|
|
||||||
setContextProperty(api);
|
setContextProperty(api);
|
||||||
|
|
@ -1394,7 +1396,7 @@ components and functionality for general note editing.
|
||||||
/>
|
/>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<EditorToolbar {size} {wrap} {isLegacy} api={toolbar}>
|
<EditorToolbar noteEditor={api} {size} {wrap} {isLegacy} api={toolbar}>
|
||||||
<svelte:fragment slot="notetypeButtons">
|
<svelte:fragment slot="notetypeButtons">
|
||||||
{#if mode === "browser"}
|
{#if mode === "browser"}
|
||||||
<ButtonGroupItem>
|
<ButtonGroupItem>
|
||||||
|
|
|
||||||
|
|
@ -63,10 +63,12 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
import RichTextClozeButtons from "./RichTextClozeButtons.svelte";
|
import RichTextClozeButtons from "./RichTextClozeButtons.svelte";
|
||||||
import TemplateButtons from "./TemplateButtons.svelte";
|
import TemplateButtons from "./TemplateButtons.svelte";
|
||||||
import type { InlineButtonsAPI } from "./InlineButtons.svelte";
|
import type { InlineButtonsAPI } from "./InlineButtons.svelte";
|
||||||
|
import type { NoteEditorAPI } from "../NoteEditor.svelte";
|
||||||
|
|
||||||
export let isLegacy = false;
|
export let isLegacy = false;
|
||||||
export let size: number;
|
export let size: number;
|
||||||
export let wrap: boolean;
|
export let wrap: boolean;
|
||||||
|
export let noteEditor: NoteEditorAPI;
|
||||||
|
|
||||||
const toolbar = {} as DefaultSlotInterface;
|
const toolbar = {} as DefaultSlotInterface;
|
||||||
const notetypeButtons = {} as DefaultSlotInterface;
|
const notetypeButtons = {} as DefaultSlotInterface;
|
||||||
|
|
@ -100,7 +102,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<ButtonToolbar {size} {wrap}>
|
<ButtonToolbar {size} {wrap}>
|
||||||
<DynamicallySlottable slotHost={Item} api={toolbar}>
|
<DynamicallySlottable slotHost={Item} api={toolbar}>
|
||||||
<Item id="notetype">
|
<Item id="notetype">
|
||||||
<NotetypeButtons api={notetypeButtons}>
|
<NotetypeButtons {noteEditor} api={notetypeButtons}>
|
||||||
<slot name="notetypeButtons" />
|
<slot name="notetypeButtons" />
|
||||||
</NotetypeButtons>
|
</NotetypeButtons>
|
||||||
</Item>
|
</Item>
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,10 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
import DynamicallySlottable from "$lib/components/DynamicallySlottable.svelte";
|
import DynamicallySlottable from "$lib/components/DynamicallySlottable.svelte";
|
||||||
import LabelButton from "$lib/components/LabelButton.svelte";
|
import LabelButton from "$lib/components/LabelButton.svelte";
|
||||||
import Shortcut from "$lib/components/Shortcut.svelte";
|
import Shortcut from "$lib/components/Shortcut.svelte";
|
||||||
|
import type { NoteEditorAPI } from "../NoteEditor.svelte";
|
||||||
|
|
||||||
export let api = {};
|
export let api = {};
|
||||||
|
export let noteEditor: NoteEditorAPI;
|
||||||
|
|
||||||
const keyCombination = "Control+L";
|
const keyCombination = "Control+L";
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -33,7 +35,10 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<ButtonGroupItem>
|
<ButtonGroupItem>
|
||||||
<LabelButton
|
<LabelButton
|
||||||
tooltip={tr.editingCustomizeFields()}
|
tooltip={tr.editingCustomizeFields()}
|
||||||
on:click={() => bridgeCommand("fields")}
|
on:click={async () => {
|
||||||
|
await noteEditor.saveNow();
|
||||||
|
bridgeCommand("fields");
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
{tr.editingFields()}...
|
{tr.editingFields()}...
|
||||||
</LabelButton>
|
</LabelButton>
|
||||||
|
|
@ -44,11 +49,20 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
tooltip="{tr.editingCustomizeCardTemplates()} ({getPlatformString(
|
tooltip="{tr.editingCustomizeCardTemplates()} ({getPlatformString(
|
||||||
keyCombination,
|
keyCombination,
|
||||||
)})"
|
)})"
|
||||||
on:click={() => bridgeCommand("cards")}
|
on:click={async () => {
|
||||||
|
await noteEditor.saveNow();
|
||||||
|
bridgeCommand("cards");
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
{tr.editingCards()}...
|
{tr.editingCards()}...
|
||||||
</LabelButton>
|
</LabelButton>
|
||||||
<Shortcut {keyCombination} on:action={() => bridgeCommand("cards")} />
|
<Shortcut
|
||||||
|
{keyCombination}
|
||||||
|
on:action={async () => {
|
||||||
|
await noteEditor.saveNow();
|
||||||
|
bridgeCommand("cards");
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</ButtonGroupItem>
|
</ButtonGroupItem>
|
||||||
|
|
||||||
<slot />
|
<slot />
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue