diff --git a/package-lock.json b/package-lock.json index 03eba26..f7dce7d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@electron-toolkit/utils": "^4.0.0", "ant-design-vue": "^4.2.6", "pinia": "^3.0.2", + "vue-router": "^4.5.1", "ws": "^8.18.2" }, "devDependencies": { @@ -9429,6 +9430,27 @@ "node": ">=10" } }, + "node_modules/vue-router": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.1.tgz", + "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, "node_modules/vue-tsc": { "version": "2.2.10", "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-2.2.10.tgz", diff --git a/package.json b/package.json index 62a1b4b..bb7e4c5 100644 --- a/package.json +++ b/package.json @@ -25,6 +25,7 @@ "@electron-toolkit/utils": "^4.0.0", "ant-design-vue": "^4.2.6", "pinia": "^3.0.2", + "vue-router": "^4.5.1", "ws": "^8.18.2" }, "devDependencies": { diff --git a/src/main/index.ts b/src/main/index.ts index 0e2eec8..0f51936 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -4,7 +4,7 @@ import { electronApp, optimizer, is } from '@electron-toolkit/utils' import icon from '../../resources/icon.png?asset' let mainWindow: BrowserWindow | undefined - +let captionWindow: BrowserWindow | undefined function createMainWindow(): void { mainWindow = new BrowserWindow({ icon: icon, @@ -36,6 +36,39 @@ function createMainWindow(): void { } } +function createCaptionWindow(): void { + captionWindow = new BrowserWindow({ + icon: icon, + width: 900, + height: 670, + show: false, + center: true, + autoHideMenuBar: true, + ...(process.platform === 'linux' ? { icon } : {}), + webPreferences: { + preload: path.join(__dirname, '../preload/index.js'), + sandbox: false + } + }) + + captionWindow.on('ready-to-show', () => { + captionWindow?.show() + }) + + captionWindow.webContents.setWindowOpenHandler((details) => { + shell.openExternal(details.url) + return { action: 'deny' } + }) + + if (is.dev && process.env['ELECTRON_RENDERER_URL']) { + captionWindow.loadURL(`${process.env['ELECTRON_RENDERER_URL']}/#/caption`) + } else { + captionWindow.loadFile(path.join(__dirname, '../renderer/index.html'), { + hash: 'caption' + }) + } +} + app.whenReady().then(() => { electronApp.setAppUserModelId('com.himeditator.autocaption') @@ -44,6 +77,7 @@ app.whenReady().then(() => { }) createMainWindow() + createCaptionWindow() app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createMainWindow() diff --git a/src/renderer/caption/index.html b/src/renderer/caption/index.html deleted file mode 100644 index 00b0f01..0000000 --- a/src/renderer/caption/index.html +++ /dev/null @@ -1,17 +0,0 @@ - - -
- -