mirror of
https://github.com/ankitects/anki.git
synced 2025-11-07 13:17: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;
|
||||
state: Writable<EditorState>;
|
||||
lastIOImagePath: Writable<string | null>;
|
||||
saveNow: () => Promise<void>;
|
||||
}
|
||||
|
||||
interface LoadNoteArgs {
|
||||
|
|
@ -1343,6 +1344,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|||
fields,
|
||||
state: editorState,
|
||||
lastIOImagePath,
|
||||
saveNow,
|
||||
};
|
||||
|
||||
setContextProperty(api);
|
||||
|
|
@ -1394,7 +1396,7 @@ components and functionality for general note editing.
|
|||
/>
|
||||
{/if}
|
||||
|
||||
<EditorToolbar {size} {wrap} {isLegacy} api={toolbar}>
|
||||
<EditorToolbar noteEditor={api} {size} {wrap} {isLegacy} api={toolbar}>
|
||||
<svelte:fragment slot="notetypeButtons">
|
||||
{#if mode === "browser"}
|
||||
<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 TemplateButtons from "./TemplateButtons.svelte";
|
||||
import type { InlineButtonsAPI } from "./InlineButtons.svelte";
|
||||
import type { NoteEditorAPI } from "../NoteEditor.svelte";
|
||||
|
||||
export let isLegacy = false;
|
||||
export let size: number;
|
||||
export let wrap: boolean;
|
||||
export let noteEditor: NoteEditorAPI;
|
||||
|
||||
const toolbar = {} 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}>
|
||||
<DynamicallySlottable slotHost={Item} api={toolbar}>
|
||||
<Item id="notetype">
|
||||
<NotetypeButtons api={notetypeButtons}>
|
||||
<NotetypeButtons {noteEditor} api={notetypeButtons}>
|
||||
<slot name="notetypeButtons" />
|
||||
</NotetypeButtons>
|
||||
</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 LabelButton from "$lib/components/LabelButton.svelte";
|
||||
import Shortcut from "$lib/components/Shortcut.svelte";
|
||||
import type { NoteEditorAPI } from "../NoteEditor.svelte";
|
||||
|
||||
export let api = {};
|
||||
export let noteEditor: NoteEditorAPI;
|
||||
|
||||
const keyCombination = "Control+L";
|
||||
</script>
|
||||
|
|
@ -33,7 +35,10 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|||
<ButtonGroupItem>
|
||||
<LabelButton
|
||||
tooltip={tr.editingCustomizeFields()}
|
||||
on:click={() => bridgeCommand("fields")}
|
||||
on:click={async () => {
|
||||
await noteEditor.saveNow();
|
||||
bridgeCommand("fields");
|
||||
}}
|
||||
>
|
||||
{tr.editingFields()}...
|
||||
</LabelButton>
|
||||
|
|
@ -44,11 +49,20 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|||
tooltip="{tr.editingCustomizeCardTemplates()} ({getPlatformString(
|
||||
keyCombination,
|
||||
)})"
|
||||
on:click={() => bridgeCommand("cards")}
|
||||
on:click={async () => {
|
||||
await noteEditor.saveNow();
|
||||
bridgeCommand("cards");
|
||||
}}
|
||||
>
|
||||
{tr.editingCards()}...
|
||||
</LabelButton>
|
||||
<Shortcut {keyCombination} on:action={() => bridgeCommand("cards")} />
|
||||
<Shortcut
|
||||
{keyCombination}
|
||||
on:action={async () => {
|
||||
await noteEditor.saveNow();
|
||||
bridgeCommand("cards");
|
||||
}}
|
||||
/>
|
||||
</ButtonGroupItem>
|
||||
|
||||
<slot />
|
||||
|
|
|
|||
Loading…
Reference in a new issue