From 8f512fe488b9ea77358d6ad5fafd289041f44c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=8C=E8=90=8C=E5=93=92=E8=B5=AB=E8=90=9D?= Date: Mon, 22 May 2023 17:52:50 +0800 Subject: [PATCH] :sparkles: Feature: add always on top icon on main page --- src/main/events/ipcList.ts | 6 ++++++ src/renderer/layouts/Main.vue | 30 +++++++++++++++++++++++------- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/main/events/ipcList.ts b/src/main/events/ipcList.ts index d4c97b6..a1b03d8 100644 --- a/src/main/events/ipcList.ts +++ b/src/main/events/ipcList.ts @@ -205,6 +205,12 @@ export default { return dataResult + bakResult + manageResult + manageBakResult }) + ipcMain.on('toggleMainWindowAlwaysOnTop', () => { + const mainWindow = windowManager.get(IWindowList.SETTING_WINDOW)! + const isAlwaysOnTop = mainWindow.isAlwaysOnTop() + mainWindow.setAlwaysOnTop(!isAlwaysOnTop) + }) + ipcMain.on('openSettingWindow', () => { windowManager.get(IWindowList.SETTING_WINDOW)!.show() if (windowManager.has(IWindowList.MINI_WINDOW)) { diff --git a/src/renderer/layouts/Main.vue b/src/renderer/layouts/Main.vue index dcf982c..27a795a 100644 --- a/src/renderer/layouts/Main.vue +++ b/src/renderer/layouts/Main.vue @@ -10,6 +10,15 @@ v-if="os !== 'darwin'" class="handle-bar" > + + + - + - + - + @@ -232,11 +241,12 @@ import { Menu, Share, InfoFilled, - Minus, - CirclePlus, - Close, + SemiSelect, + ArrowDownBold, + CloseBold, PieChart, - Link + Link, + ArrowUpBold } from '@element-plus/icons-vue' import { ElMessage as $message, ElMessageBox } from 'element-plus' import { T as $T } from '@/i18n/index' @@ -273,6 +283,7 @@ const picBed: Ref = ref([]) const qrcodeVisible = ref(false) const picBedConfigString = ref('') const choosedPicBedForQRCode: Ref = ref([]) +const isAlwaysOnTop = ref(false) const keepAlivePages = $router.getRoutes().filter(item => item.meta.keepAlive).map(item => item.name as string) @@ -367,6 +378,11 @@ function getPicBeds (event: IpcRendererEvent, picBeds: IPicBedType[]) { picBed.value = picBeds } +function setAlwaysOnTop () { + isAlwaysOnTop.value = !isAlwaysOnTop.value + sendToMain('toggleMainWindowAlwaysOnTop', isAlwaysOnTop.value) +} + onBeforeRouteUpdate(async (to) => { if (to.params.type) { defaultActive.value = `${routerConfig.UPLOADER_CONFIG_PAGE}-${to.params.type}`