This commit is contained in:
Vanessa 2023-01-04 13:52:41 +08:00
parent e4b9feb4f6
commit 41434ce021
2 changed files with 46 additions and 20 deletions

View file

@ -149,7 +149,10 @@ export const getLocalStorage = () => {
replaceKeys: [], replaceKeys: [],
col: "", col: "",
row: "", row: "",
layout: 0 layout: 0,
colTab: "",
rowTab: "",
layoutTab: 0
}; };
defaultStorage[Constants.LOCAL_PDFTHEME] = {light: "light", dark: "dark"}; defaultStorage[Constants.LOCAL_PDFTHEME] = {light: "light", dark: "dark"};
defaultStorage[Constants.LOCAL_BAZAAR] = { defaultStorage[Constants.LOCAL_BAZAAR] = {

View file

@ -75,7 +75,7 @@ export const openGlobalSearch = (text: string, replace: boolean) => {
wnd.split("lr").addTab(tab); wnd.split("lr").addTab(tab);
setPanelFocus(tab.panelElement); setPanelFocus(tab.panelElement);
}; };
// closeCB 不存在为页签搜索
export const genSearch = (config: ISearchOption, element: Element, closeCB?: () => void) => { export const genSearch = (config: ISearchOption, element: Element, closeCB?: () => void) => {
let methodText = window.siyuan.languages.keyword; let methodText = window.siyuan.languages.keyword;
if (config.method === 1) { if (config.method === 1) {
@ -167,7 +167,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
</span> </span>
</div> </div>
</div> </div>
<div class="search__layout${data.layout === 1 ? " search__layout--row" : ""}"> <div class="search__layout${(closeCB ? data.layout === 1 : data.layoutTab === 1) ? " search__layout--row" : ""}">
<div id="searchList" class="fn__flex-1 search__list b3-list b3-list--background"></div> <div id="searchList" class="fn__flex-1 search__list b3-list b3-list--background"></div>
<div class="search__drag"></div> <div class="search__drag"></div>
<div id="searchPreview" class="fn__flex-1 search__preview"></div> <div id="searchPreview" class="fn__flex-1 search__preview"></div>
@ -188,15 +188,29 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
breadcrumbDocName: true breadcrumbDocName: true
}, },
}); });
if (data.layout === 1) { if (closeCB) {
if (data.col) { if (data.layout === 1) {
edit.protyle.element.style.width = data.col; if (data.col) {
edit.protyle.element.classList.remove("fn__flex-1"); edit.protyle.element.style.width = data.col;
edit.protyle.element.classList.remove("fn__flex-1");
}
} else {
if (data.row) {
edit.protyle.element.classList.remove("fn__flex-1");
edit.protyle.element.style.height = data.row;
}
} }
} else { } else {
if (data.row) { if (data.layoutTab === 1) {
edit.protyle.element.classList.remove("fn__flex-1"); if (data.colTab) {
edit.protyle.element.style.height = data.row; edit.protyle.element.style.width = data.colTab;
edit.protyle.element.classList.remove("fn__flex-1");
}
} else {
if (data.rowTab) {
edit.protyle.element.classList.remove("fn__flex-1");
edit.protyle.element.style.height = data.rowTab;
}
} }
} }
let clickTimeout: number; let clickTimeout: number;
@ -211,7 +225,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
const documentSelf = document; const documentSelf = document;
const nextElement = dragElement.nextElementSibling as HTMLElement; const nextElement = dragElement.nextElementSibling as HTMLElement;
const previousElement = dragElement.previousElementSibling as HTMLElement; const previousElement = dragElement.previousElementSibling as HTMLElement;
const direction = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS].layout === 1 ? "lr" : "tb"; const direction = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS][closeCB ? "layout" : "layoutTab"] === 1 ? "lr" : "tb";
const x = event[direction === "lr" ? "clientX" : "clientY"]; const x = event[direction === "lr" ? "clientX" : "clientY"];
const previousSize = direction === "lr" ? previousElement.clientWidth : previousElement.clientHeight; const previousSize = direction === "lr" ? previousElement.clientWidth : previousElement.clientHeight;
const nextSize = direction === "lr" ? nextElement.clientWidth : nextElement.clientHeight; const nextSize = direction === "lr" ? nextElement.clientWidth : nextElement.clientHeight;
@ -236,7 +250,7 @@ export const genSearch = (config: ISearchOption, element: Element, closeCB?: ()
documentSelf.ondragstart = null; documentSelf.ondragstart = null;
documentSelf.onselectstart = null; documentSelf.onselectstart = null;
documentSelf.onselect = null; documentSelf.onselect = null;
window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS][direction === "lr" ? "col" : "row"] = nextElement[direction === "lr" ? "clientWidth" : "clientHeight"] + "px"; window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS][direction === "lr" ? (closeCB ? "col" : "colTab") : (closeCB ? "row" : "rowTab")] = nextElement[direction === "lr" ? "clientWidth" : "clientHeight"] + "px";
setStorageVal(Constants.LOCAL_SEARCHEKEYS, window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS]); setStorageVal(Constants.LOCAL_SEARCHEKEYS, window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS]);
if (direction === "lr") { if (direction === "lr") {
setPadding(edit.protyle); setPadding(edit.protyle);
@ -690,39 +704,48 @@ const addConfigMoreMenu = async (config: ISearchOption, edit: Protyle, element:
}] }]
}).element); }).element);
const localData = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS]; const localData = window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS];
const isPopover = hasClosestByClassName(element, "b3-dialog__container")
window.siyuan.menus.menu.append(new MenuItem({ window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.layout, label: window.siyuan.languages.layout,
type: "submenu", type: "submenu",
submenu: [{ submenu: [{
label: window.siyuan.languages.topBottomLayout, label: window.siyuan.languages.topBottomLayout,
current: localData.layout === 0, current: isPopover ? localData.layout === 0 : localData.layoutTab === 0,
click() { click() {
element.querySelector(".search__layout").classList.remove("search__layout--row"); element.querySelector(".search__layout").classList.remove("search__layout--row");
edit.protyle.element.style.width = ""; edit.protyle.element.style.width = "";
if (localData.row) { if ((isPopover && localData.row) || (!isPopover && localData.rowTab)) {
edit.protyle.element.style.height = localData.row; edit.protyle.element.style.height = isPopover ? localData.row : localData.rowTab;
edit.protyle.element.classList.remove("fn__flex-1"); edit.protyle.element.classList.remove("fn__flex-1");
} else { } else {
edit.protyle.element.classList.add("fn__flex-1"); edit.protyle.element.classList.add("fn__flex-1");
} }
setPadding(edit.protyle); setPadding(edit.protyle);
localData.layout = 0; if (isPopover) {
localData.layout = 0;
} else {
localData.layoutTab = 0;
}
setStorageVal(Constants.LOCAL_SEARCHEKEYS, window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS]); setStorageVal(Constants.LOCAL_SEARCHEKEYS, window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS]);
} }
}, { }, {
label: window.siyuan.languages.leftRightLayout, label: window.siyuan.languages.leftRightLayout,
current: localData.layout === 1, current: isPopover ? localData.layout === 1 : localData.layoutTab === 1,
click() { click() {
element.querySelector(".search__layout").classList.add("search__layout--row"); element.querySelector(".search__layout").classList.add("search__layout--row");
edit.protyle.element.style.height = ""; edit.protyle.element.style.height = "";
if (localData.col) { if ((isPopover && localData.col) || (!isPopover && localData.colTab)) {
edit.protyle.element.style.width = localData.col; edit.protyle.element.style.width = isPopover ? localData.col : localData.colTab;
edit.protyle.element.classList.remove("fn__flex-1"); edit.protyle.element.classList.remove("fn__flex-1");
} else { } else {
edit.protyle.element.classList.add("fn__flex-1"); edit.protyle.element.classList.add("fn__flex-1");
} }
setPadding(edit.protyle); setPadding(edit.protyle);
localData.layout = 1; if (isPopover) {
localData.layout = 1;
} else {
localData.layoutTab = 1;
}
setStorageVal(Constants.LOCAL_SEARCHEKEYS, window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS]); setStorageVal(Constants.LOCAL_SEARCHEKEYS, window.siyuan.storage[Constants.LOCAL_SEARCHEKEYS]);
} }
}] }]