diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index f18749449f..e6c88a6c19 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -695,6 +695,11 @@ "move_right": "Move right" }, "note_actions": { + "word_wrap": "Word wrap", + "word_wrap_auto": "Auto", + "word_wrap_auto_description": "Follow the global setting", + "word_wrap_on": "On", + "word_wrap_off": "Off", "convert_into_attachment": "Convert into attachment", "re_render_note": "Re-render note", "search_in_note": "Search in note", @@ -2328,6 +2333,10 @@ "print": "Print", "export_pdf": "Export as PDF", "system_print": "Print using system dialog", + "destination": "Destination", + "destination_pdf": "Save as PDF", + "destination_printers": "Printers", + "destination_default": "Default", "orientation": "Orientation", "portrait": "Portrait", "landscape": "Landscape", diff --git a/apps/client/src/widgets/ribbon/NoteActions.tsx b/apps/client/src/widgets/ribbon/NoteActions.tsx index 1bbd42c049..679b624c10 100644 --- a/apps/client/src/widgets/ribbon/NoteActions.tsx +++ b/apps/client/src/widgets/ribbon/NoteActions.tsx @@ -22,7 +22,7 @@ import MovePaneButton from "../buttons/move_pane_button"; import ActionButton from "../react/ActionButton"; import Dropdown from "../react/Dropdown"; import { FormDropdownDivider, FormDropdownSubmenu, FormListHeader, FormListItem, FormListToggleableItem } from "../react/FormList"; -import { useIsNoteReadOnly, useNoteContext, useNoteLabel, useNoteLabelBoolean, useNoteProperty, useSyncedRef, useTriliumEvent, useTriliumOption } from "../react/hooks"; +import { useIsNoteReadOnly, useNoteContext, useNoteLabel, useNoteLabelBoolean, useNoteLabelOptionalBool, useNoteProperty, useSyncedRef, useTriliumEvent, useTriliumOption } from "../react/hooks"; import { ParentComponent } from "../react/react_utils"; import { NoteTypeDropdownContent, useNoteBookmarkState, useShareState } from "./BasicPropertiesTab"; import NoteActionsCustom from "./NoteActionsCustom"; @@ -115,6 +115,8 @@ export function NoteContextMenu({ note, noteContext, itemsAtStart, itemsNearNote > {itemsAtStart} + {note.type === "code" && } + {isReadOnly && <> enableEditing()} /> @@ -179,6 +181,27 @@ export function NoteContextMenu({ note, noteContext, itemsAtStart, itemsNearNote ); } +function CodeProperties({ note }: { note: FNote }) { + const [ wrapLines, setWrapLines ] = useNoteLabelOptionalBool(note, "wrapLines"); + + return ( + <> + + setWrapLines(null)} description={t("note_actions.word_wrap_auto_description")}> + {t("note_actions.word_wrap_auto")} + + setWrapLines(true)}> + {t("note_actions.word_wrap_on")} + + setWrapLines(false)}> + {t("note_actions.word_wrap_off")} + + + + + ); +} + function NoteBasicProperties({ note, focus }: { note: FNote; focus: RefObject;