|
@@ -1,4 +1,4 @@
|
|
|
-import { app, BrowserWindow, Event, Input, ipcMain, Menu, WebContentsView } from 'electron'
|
|
|
|
|
|
|
+import { app, BrowserWindow, dialog, Event, Input, ipcMain, Menu, WebContentsView } from 'electron'
|
|
|
import { fileURLToPath } from 'node:url'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
import path from 'node:path'
|
|
import path from 'node:path'
|
|
|
import fs from 'node:fs'
|
|
import fs from 'node:fs'
|
|
@@ -31,7 +31,7 @@ let childViewAspectRatio = 0;
|
|
|
const SIDE_WIDTH = 250
|
|
const SIDE_WIDTH = 250
|
|
|
const EXPAND_VIEW_SIZE = 40
|
|
const EXPAND_VIEW_SIZE = 40
|
|
|
const LOADING_VIEW_WIDTH = 150
|
|
const LOADING_VIEW_WIDTH = 150
|
|
|
-const LOADING_VIEW_HEIGHT = 100
|
|
|
|
|
|
|
+const LOADING_VIEW_HEIGHT = 60
|
|
|
|
|
|
|
|
function loadWindowPage(window: BrowserWindow, subPath: string) {
|
|
function loadWindowPage(window: BrowserWindow, subPath: string) {
|
|
|
if (VITE_DEV_SERVER_URL) {
|
|
if (VITE_DEV_SERVER_URL) {
|
|
@@ -118,7 +118,7 @@ function createWindow() {
|
|
|
})
|
|
})
|
|
|
loadingView.setBounds({
|
|
loadingView.setBounds({
|
|
|
x: bounds.x + (bounds.width - LOADING_VIEW_WIDTH) / 2,
|
|
x: bounds.x + (bounds.width - LOADING_VIEW_WIDTH) / 2,
|
|
|
- y: bounds.y + (bounds.height - LOADING_VIEW_HEIGHT) / 2,
|
|
|
|
|
|
|
+ y: bounds.y + 30,
|
|
|
width: LOADING_VIEW_WIDTH,
|
|
width: LOADING_VIEW_WIDTH,
|
|
|
height: LOADING_VIEW_HEIGHT
|
|
height: LOADING_VIEW_HEIGHT
|
|
|
})
|
|
})
|
|
@@ -193,9 +193,15 @@ function createWindow() {
|
|
|
} else if (input.key === 'F5' && input.type === 'keyDown') {
|
|
} else if (input.key === 'F5' && input.type === 'keyDown') {
|
|
|
event.preventDefault();
|
|
event.preventDefault();
|
|
|
if (window === mainWindow) {
|
|
if (window === mainWindow) {
|
|
|
- mainWindow?.webContents.reload()
|
|
|
|
|
|
|
+ if (input.control)
|
|
|
|
|
+ mainWindow?.webContents.reloadIgnoringCache()
|
|
|
|
|
+ else
|
|
|
|
|
+ mainWindow?.webContents.reload()
|
|
|
} else if (window === childView) {
|
|
} else if (window === childView) {
|
|
|
- childView?.webContents.reload()
|
|
|
|
|
|
|
+ if (input.control)
|
|
|
|
|
+ childView?.webContents.reloadIgnoringCache()
|
|
|
|
|
+ else
|
|
|
|
|
+ childView?.webContents.reload()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -380,6 +386,26 @@ function createWindow() {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
// 处理显示关于窗口事件
|
|
// 处理显示关于窗口事件
|
|
|
|
|
+ ipcMain.handle('clear-cache', async () => {
|
|
|
|
|
+ if (mainWindow) {
|
|
|
|
|
+ const res = await dialog.showMessageBox(mainWindow, {
|
|
|
|
|
+ title: '提示',
|
|
|
|
|
+ message: '是否要清除缓存?',
|
|
|
|
|
+ type: 'question',
|
|
|
|
|
+ buttons: ['取消', '确定'],
|
|
|
|
|
+ defaultId: 0,
|
|
|
|
|
+ noLink: true,
|
|
|
|
|
+ });
|
|
|
|
|
+ if (res.response === 0)
|
|
|
|
|
+ return
|
|
|
|
|
+ await mainWindow.webContents.session.clearCache()
|
|
|
|
|
+ if (childView) {
|
|
|
|
|
+ await childView.webContents.session.clearCache()
|
|
|
|
|
+ childView.webContents.reloadIgnoringCache();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+
|
|
|
ipcMain.on('show-about', () => {
|
|
ipcMain.on('show-about', () => {
|
|
|
const aboutWindow = new BrowserWindow({
|
|
const aboutWindow = new BrowserWindow({
|
|
|
icon: path.join(process.env.VITE_PUBLIC, 'icon.ico'),
|
|
icon: path.join(process.env.VITE_PUBLIC, 'icon.ico'),
|