Vanessa 2024-12-25 09:14:57 +08:00
parent 135c80fcb2
commit cb0f30c36f
3 changed files with 39 additions and 11 deletions

View file

@ -69,6 +69,14 @@ export const commandPanel = (app: App) => {
html += `<li class="b3-list-item" data-command="${key}">
<span class="b3-list-item__text">${window.siyuan.languages[key]}</span>
<span class="b3-list-item__meta${isMobile() ? " fn__none" : ""}">${updateHotkeyTip(window.siyuan.config.keymap.general[key].custom)}</span>
</li>`;
}
});
Object.keys(window.siyuan.config.keymap.editor.general).forEach((key) => {
if (["switchReadonly", "switchAdjust"].includes(key)) {
html += `<li class="b3-list-item" data-command="${key}">
<span class="b3-list-item__text">${window.siyuan.languages[key]}</span>
<span class="b3-list-item__meta${isMobile() ? " fn__none" : ""}">${updateHotkeyTip(window.siyuan.config.keymap.editor.general[key].custom)}</span>
</li>`;
}
});

View file

@ -5,12 +5,33 @@ import {enterBack, zoomOut} from "../../../menus/protyle";
import {openFileById} from "../../../editor/util";
/// #endif
import {checkFold} from "../../../util/noRelyPCFunction";
import {updateReadonly} from "../../../protyle/breadcrumb/action";
import {Constants} from "../../../constants";
import {fetchPost} from "../../../util/fetch";
export const onlyProtyleCommand = (options: {
command: string,
previousRange: Range,
protyle: IProtyle,
}) => {
if (options.command === "switchReadonly") {
updateReadonly(options.protyle.breadcrumb.element.parentElement.querySelector('.block__icon[data-type="readonly"]'), options.protyle);
return true;
}
if (options.command === "switchAdjust") {
let fullWidth;
const adjustWidth = options.protyle.wysiwyg.element.getAttribute(Constants.CUSTOM_SY_FULLWIDTH)
if (!adjustWidth) {
fullWidth = window.siyuan.config.editor.fullWidth ? "false" : "true";
} else {
fullWidth = adjustWidth === "true" ? "false" : "true";
}
fetchPost("/api/attr/setBlockAttrs", {
id: options.protyle.block.rootID,
attrs: {[Constants.CUSTOM_SY_FULLWIDTH]: fullWidth}
});
return true;
}
const nodeElement = hasClosestBlock(options.previousRange.startContainer);
if (!nodeElement) {
return false;

View file

@ -73,6 +73,7 @@ import {copyPNGByLink} from "../../menus/util";
import {globalCommand} from "./command/global";
import {duplicateCompletely} from "../../protyle/render/av/action";
import {copyTextByType} from "../../protyle/toolbar/util";
import {onlyProtyleCommand} from "./command/protyle";
const switchDialogEvent = (app: App, event: MouseEvent) => {
event.preventDefault();
@ -377,21 +378,19 @@ const editKeydown = (app: App, event: KeyboardEvent) => {
}
if (matchHotKey(window.siyuan.config.keymap.editor.general.switchReadonly.custom, event)) {
event.preventDefault();
updateReadonly(protyle.breadcrumb.element.parentElement.querySelector('.block__icon[data-type="readonly"]'), protyle);
onlyProtyleCommand({
protyle,
command: "switchReadonly",
previousRange: range,
});
return true;
}
if (matchHotKey(window.siyuan.config.keymap.editor.general.switchAdjust.custom, event)) {
event.preventDefault();
let fullWidth;
const adjustWidth = protyle.wysiwyg.element.getAttribute(Constants.CUSTOM_SY_FULLWIDTH)
if (!adjustWidth) {
fullWidth = window.siyuan.config.editor.fullWidth ? "false" : "true";
} else {
fullWidth = adjustWidth === "true" ? "false" : "true";
}
fetchPost("/api/attr/setBlockAttrs", {
id: protyle.block.rootID,
attrs: {[Constants.CUSTOM_SY_FULLWIDTH]: fullWidth}
onlyProtyleCommand({
protyle,
command: "switchAdjust",
previousRange: range,
});
return true;
}