mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-24 07:54:07 +01:00
This commit is contained in:
parent
a52cf1eb29
commit
8a53c82a27
12 changed files with 119 additions and 35 deletions
|
|
@ -1,4 +1,4 @@
|
|||
import {isCtrl, isMac, setStorageVal, updateHotkeyTip, writeText} from "../protyle/util/compatibility";
|
||||
import {isCtrl, isMac, updateHotkeyTip, writeText} from "../protyle/util/compatibility";
|
||||
import {matchHotKey} from "../protyle/util/hotKey";
|
||||
import {openSearch} from "../search/spread";
|
||||
import {
|
||||
|
|
@ -43,7 +43,7 @@ import {editor} from "../config/editor";
|
|||
import {hintMoveBlock} from "../protyle/hint/extend";
|
||||
import {Backlink} from "../layout/dock/Backlink";
|
||||
/// #if !BROWSER
|
||||
import {webFrame} from "electron";
|
||||
import {setZoom} from "../layout/topBar";
|
||||
/// #endif
|
||||
import {openHistory} from "../history/history";
|
||||
import {openCard, openCardByData} from "../card/openCard";
|
||||
|
|
@ -575,39 +575,17 @@ export const globalShortcut = (app: App) => {
|
|||
|
||||
/// #if !BROWSER
|
||||
if (matchHotKey("⌘=", event) && !hasClosestByClassName(target, "pdf__outer")) {
|
||||
Constants.SIZE_ZOOM.find((item, index) => {
|
||||
if (item === window.siyuan.storage[Constants.LOCAL_ZOOM]) {
|
||||
window.siyuan.storage[Constants.LOCAL_ZOOM] = Constants.SIZE_ZOOM[index + 1] || 3;
|
||||
webFrame.setZoomFactor(window.siyuan.storage[Constants.LOCAL_ZOOM]);
|
||||
if (!isTabWindow) {
|
||||
setStorageVal(Constants.LOCAL_ZOOM, window.siyuan.storage[Constants.LOCAL_ZOOM]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
setZoom("zoomIn")
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
if (matchHotKey("⌘0", event)) {
|
||||
webFrame.setZoomFactor(1);
|
||||
window.siyuan.storage[Constants.LOCAL_ZOOM] = 1;
|
||||
if (!isTabWindow) {
|
||||
setStorageVal(Constants.LOCAL_ZOOM, 1);
|
||||
}
|
||||
setZoom("restore")
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
if (matchHotKey("⌘-", event) && !hasClosestByClassName(target, "pdf__outer")) {
|
||||
Constants.SIZE_ZOOM.find((item, index) => {
|
||||
if (item === window.siyuan.storage[Constants.LOCAL_ZOOM]) {
|
||||
window.siyuan.storage[Constants.LOCAL_ZOOM] = Constants.SIZE_ZOOM[index - 1] || 0.25;
|
||||
webFrame.setZoomFactor(window.siyuan.storage[Constants.LOCAL_ZOOM]);
|
||||
if (!isTabWindow) {
|
||||
setStorageVal(Constants.LOCAL_ZOOM, window.siyuan.storage[Constants.LOCAL_ZOOM]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
setZoom("zoomOut")
|
||||
event.preventDefault();
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import {getWorkspaceName} from "../util/noRelyPCFunction";
|
||||
import {updateHotkeyTip} from "../protyle/util/compatibility";
|
||||
import {setStorageVal, updateHotkeyTip} from "../protyle/util/compatibility";
|
||||
import {processSync} from "../dialog/processSystem";
|
||||
import {goBack, goForward} from "../util/backForward";
|
||||
import {syncGuide} from "../sync/syncGuide";
|
||||
|
|
@ -10,6 +10,11 @@ import {setMode} from "../util/assets";
|
|||
import {openSetting} from "../config";
|
||||
import {openSearch} from "../search/spread";
|
||||
import {App} from "../index";
|
||||
/// #if !BROWSER
|
||||
import {webFrame} from "electron";
|
||||
/// #endif
|
||||
import {Constants} from "../constants";
|
||||
import {isBrowser, isWindow} from "../util/functions";
|
||||
|
||||
export const updateEditModeElement = () => {
|
||||
const target = document.querySelector("#barReadonly");
|
||||
|
|
@ -45,6 +50,9 @@ export const initBar = (app: App) => {
|
|||
<div id="barSearch" class="toolbar__item b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.globalSearch} ${updateHotkeyTip(window.siyuan.config.keymap.general.globalSearch.custom)}">
|
||||
<svg><use xlink:href="#iconSearch"></use></svg>
|
||||
</div>
|
||||
<div id="barZoom" class="toolbar__item b3-tooltips b3-tooltips__sw${(window.siyuan.storage[Constants.LOCAL_ZOOM] === 1 || isBrowser()) ? " fn__none" : ""}" aria-label="${window.siyuan.languages.zoom}">
|
||||
<svg><use xlink:href="#iconZoom${window.siyuan.storage[Constants.LOCAL_ZOOM] > 1 ? "In" : "Out"}"></use></svg>
|
||||
</div>
|
||||
<div id="barReadonly" class="toolbar__item b3-tooltips b3-tooltips__sw${window.siyuan.config.readonly ? " fn__none" : ""}${window.siyuan.config.editor.readOnly ? " toolbar__item--active" : ""}" aria-label="${window.siyuan.languages.use} ${window.siyuan.config.editor.readOnly ? window.siyuan.languages.editMode : window.siyuan.languages.editReadonly} ${updateHotkeyTip(window.siyuan.config.keymap.general.editMode.custom)}">
|
||||
<svg><use xlink:href="#icon${window.siyuan.config.editor.readOnly ? "Preview" : "Edit"}"></use></svg>
|
||||
</div>
|
||||
|
|
@ -123,8 +131,82 @@ export const initBar = (app: App) => {
|
|||
openSearch(window.siyuan.config.keymap.general.globalSearch.custom);
|
||||
event.stopPropagation();
|
||||
break;
|
||||
} else if (target.id === "barZoom") {
|
||||
if (!window.siyuan.menus.menu.element.classList.contains("fn__none") &&
|
||||
window.siyuan.menus.menu.element.getAttribute("data-name") === "barZoom") {
|
||||
window.siyuan.menus.menu.remove();
|
||||
return;
|
||||
}
|
||||
window.siyuan.menus.menu.remove();
|
||||
window.siyuan.menus.menu.element.setAttribute("data-name", "barZoom");
|
||||
window.siyuan.menus.menu.append(new MenuItem({
|
||||
label: window.siyuan.languages.zoomIn,
|
||||
icon: "iconZoomIn",
|
||||
accelerator: "⌘=",
|
||||
click: () => {
|
||||
setZoom("zoomIn")
|
||||
}
|
||||
}).element);
|
||||
window.siyuan.menus.menu.append(new MenuItem({
|
||||
label: window.siyuan.languages.zoomOut,
|
||||
accelerator: "⌘-",
|
||||
icon: "iconZoomOut",
|
||||
click: () => {
|
||||
setZoom("zoomOut")
|
||||
}
|
||||
}).element);
|
||||
window.siyuan.menus.menu.append(new MenuItem({
|
||||
label: window.siyuan.languages.reset,
|
||||
accelerator: "⌘0",
|
||||
click: () => {
|
||||
setZoom("restore")
|
||||
}
|
||||
}).element);
|
||||
const rect = target.getBoundingClientRect();
|
||||
window.siyuan.menus.menu.popup({x: rect.right, y: rect.bottom}, true);
|
||||
event.stopPropagation();
|
||||
break;
|
||||
}
|
||||
target = target.parentElement;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const setZoom = (type: "zoomIn" | "zoomOut" | "restore") => {
|
||||
/// #if !BROWSER
|
||||
const isTabWindow = isWindow();
|
||||
let zoom = 1;
|
||||
if (type === "zoomIn") {
|
||||
Constants.SIZE_ZOOM.find((item, index) => {
|
||||
if (item === window.siyuan.storage[Constants.LOCAL_ZOOM]) {
|
||||
zoom = Constants.SIZE_ZOOM[index + 1] || 3;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
} else if (type === "zoomOut") {
|
||||
Constants.SIZE_ZOOM.find((item, index) => {
|
||||
if (item === window.siyuan.storage[Constants.LOCAL_ZOOM]) {
|
||||
zoom = Constants.SIZE_ZOOM[index - 1] || 0.25;
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
webFrame.setZoomFactor(zoom);
|
||||
window.siyuan.storage[Constants.LOCAL_ZOOM] = zoom;
|
||||
if (!isTabWindow) {
|
||||
setStorageVal(Constants.LOCAL_ZOOM, zoom);
|
||||
}
|
||||
const barZoomElement = document.getElementById("barZoom");
|
||||
if (zoom === 1) {
|
||||
barZoomElement.classList.add("fn__none");
|
||||
} else {
|
||||
if (zoom > 1) {
|
||||
barZoomElement.querySelector("use").setAttribute("xlink:href", "#iconZoomIn")
|
||||
} else {
|
||||
barZoomElement.querySelector("use").setAttribute("xlink:href", "#iconZoomOut")
|
||||
}
|
||||
barZoomElement.classList.remove("fn__none");
|
||||
}
|
||||
/// #endif
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue