Browse Source

:art: https://github.com/siyuan-note/siyuan/issues/9368 setProxy

Vanessa 1 year ago
parent
commit
f600cc1bde
4 changed files with 31 additions and 29 deletions
  1. 20 4
      app/electron/main.js
  2. 5 8
      app/src/config/util/about.ts
  3. 3 15
      app/src/layout/Wnd.ts
  4. 3 2
      app/src/window/closeWin.ts

+ 20 - 4
app/electron/main.js

@@ -705,17 +705,26 @@ app.whenReady().then(() => {
         let webContentsId = event.sender.id
         if (typeof data !== "string") {
             cmd = data.cmd;
-            webContentsId = data.webContentsId
+            if (data.webContentsId) {
+                webContentsId = data.webContentsId
+            }
         }
+        const currentWindow = getWindowByContentId(webContentsId);
         switch (cmd) {
             case "openDevTools":
                 event.sender.openDevTools({mode: "bottom"});
                 break;
             case "show":
-                showWindow(getWindowByContentId(webContentsId));
+                showWindow(currentWindow);
                 break;
             case "hide":
-                getWindowByContentId(webContentsId).hide();
+                currentWindow.hide();
+                break;
+            case "focus":
+                currentWindow.focus();
+                break;
+            case "clearCache":
+                event.sender.session.clearCache();
                 break;
             case "redo":
                 event.sender.redo();
@@ -724,7 +733,14 @@ app.whenReady().then(() => {
                 event.sender.undo();
                 break;
             case "destroy":
-                getWindowByContentId(webContentsId).destroy();
+                currentWindow.destroy();
+                break;
+            case "setProxy":
+                event.sender.session.closeAllConnections().then(() => {
+                    event.sender.session.setProxy({proxyRules: data.proxyURL}).then(() => {
+                        console.log("network proxy [" + data.proxyURL + "]");
+                    });
+                });
                 break;
         }
     });

+ 5 - 8
app/src/config/util/about.ts

@@ -1,9 +1,10 @@
 /// #if !BROWSER
-import {getCurrentWindow} from "@electron/remote";
+import {ipcRenderer} from "electron";
 /// #endif
 import {Dialog} from "../../dialog";
 import {isMobile} from "../../util/functions";
 import {fetchPost} from "../../util/fetch";
+import {Constants} from "../../constants";
 
 export const setProxy = () => {
     /// #if !BROWSER
@@ -11,13 +12,9 @@ export const setProxy = () => {
         console.log("network proxy [system]");
         return;
     }
-
-    const session = getCurrentWindow().webContents.session;
-    session.closeAllConnections().then(() => {
-        const proxyURL = `${window.siyuan.config.system.networkProxy.scheme}://${window.siyuan.config.system.networkProxy.host}:${window.siyuan.config.system.networkProxy.port}`;
-        session.setProxy({proxyRules: proxyURL}).then(
-            () => console.log("network proxy [" + proxyURL + "]"),
-        );
+    ipcRenderer.send(Constants.SIYUAN_CMD, {
+        cmd: "setProxy",
+        proxyURL: `${window.siyuan.config.system.networkProxy.scheme}://${window.siyuan.config.system.networkProxy.host}:${window.siyuan.config.system.networkProxy.port}`
     });
     /// #endif
 };

+ 3 - 15
app/src/layout/Wnd.ts

@@ -16,7 +16,6 @@ import {hasClosestBlock, hasClosestByAttribute, hasClosestByClassName} from "../
 import {Constants} from "../constants";
 /// #if !BROWSER
 import {webFrame, ipcRenderer} from "electron";
-import {getCurrentWindow} from "@electron/remote";
 import {setModelsHash, setTabPosition} from "../window/setHeader";
 /// #endif
 import {Search} from "../search";
@@ -123,17 +122,6 @@ export class Wnd {
                 if (window.siyuan.config.fileTree.openFilesUseCurrentTab && target.getAttribute("data-type") === "tab-header") {
                     target.classList.remove("item--unupdate");
                     break;
-                } else if (target.tagName === "SPAN" && target.className === "fn__flex-1" &&
-                    isWindow() && this.headersElement.getBoundingClientRect().top <= 0) {
-                    /// #if !BROWSER
-                    const currentWindow = getCurrentWindow();
-                    if (currentWindow.isMaximized()) {
-                        currentWindow.unmaximize();
-                    } else {
-                        currentWindow.maximize();
-                    }
-                    /// #endif
-                    break;
                 }
                 target = target.parentElement;
             }
@@ -237,7 +225,7 @@ export class Wnd {
                     ipcRenderer.send(Constants.SIYUAN_SEND_WINDOWS, {cmd: "closetab", data: tabData.id});
                     it.querySelector("li[data-clone='true']").remove();
                     wnd.switchTab(oldTab.headElement);
-                    getCurrentWindow().focus();
+                    ipcRenderer.send(Constants.SIYUAN_CMD, "focus");
                 }
             }
             /// #endif
@@ -344,7 +332,7 @@ export class Wnd {
                 JSONToCenter(app, tabData, this);
                 oldTab = this.children[this.children.length - 1];
                 ipcRenderer.send(Constants.SIYUAN_SEND_WINDOWS, {cmd: "closetab", data: tabData.id});
-                getCurrentWindow().focus();
+                ipcRenderer.send(Constants.SIYUAN_CMD, "focus");
             }
             /// #endif
             if (!oldTab) {
@@ -791,7 +779,7 @@ export class Wnd {
         }
         /// #if !BROWSER
         webFrame.clearCache();
-        getCurrentWindow().webContents.session.clearCache();
+        ipcRenderer.send(Constants.SIYUAN_CMD, "clearCache");
         setTabPosition();
         /// #endif
     };

+ 3 - 2
app/src/window/closeWin.ts

@@ -1,5 +1,6 @@
 import {App} from "../index";
-import {getCurrentWindow} from "@electron/remote";
+import {Constants} from "../constants";
+import { ipcRenderer } from "electron";
 
 export const closeWindow = async (app: App) => {
     for (let i = 0; i < app.plugins.length; i++) {
@@ -9,5 +10,5 @@ export const closeWindow = async (app: App) => {
             console.error(e);
         }
     }
-    getCurrentWindow().destroy();
+    ipcRenderer.send(Constants.SIYUAN_CMD, "destroy");
 };