From 414c7d120fc2876b356e067c27c2ea358c59d23f Mon Sep 17 00:00:00 2001 From: smartfridge <37928912+smartfrigde@users.noreply.github.com> Date: Fri, 15 Jul 2022 11:17:42 +0200 Subject: [PATCH 1/2] Fix alternative paste --- src/content/css/settings.css | 3 ++- src/menu.ts | 13 +++++++++++++ src/settings/settings.html | 8 ++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/content/css/settings.css b/src/content/css/settings.css index f6a3edd..f91f2e1 100644 --- a/src/content/css/settings.css +++ b/src/content/css/settings.css @@ -126,6 +126,7 @@ button { border: none; border-radius: 5px; padding: 8px; + margin-top: 10px; transition: 0.17s ease; } button:hover { @@ -238,7 +239,7 @@ select { outline: none !important; } .acTheme { - height: 14em !important; + height: 15em !important; } .acCSP { height: 10em !important; diff --git a/src/menu.ts b/src/menu.ts index 9ca3962..f049369 100644 --- a/src/menu.ts +++ b/src/menu.ts @@ -20,10 +20,23 @@ export async function setMenu() { } }) }) + mainWindow.on("show", function () { + console.log("[Window state manager] Show") + mainWindow.focus() + globalShortcut.register("CmdOrCtrl+V", function () { + if (mainWindow.isFocused()) { + paste(mainWindow.webContents) + } + }) + }) mainWindow.on("blur", function () { console.log("[Window state manager] Defocus") globalShortcut.unregister("CmdOrCtrl+V") }) + mainWindow.on("hide", function () { + console.log("[Window state manager] Hide") + globalShortcut.unregister("CmdOrCtrl+V") + }) } var template: Electron.MenuItemConstructorOptions[] = [{ label: "ArmCord", diff --git a/src/settings/settings.html b/src/settings/settings.html index cb026c9..15c98c8 100644 --- a/src/settings/settings.html +++ b/src/settings/settings.html @@ -163,6 +163,14 @@
+
+ +
+ +
+ +
+ + + diff --git a/src/settings/main.ts b/src/settings/main.ts index 3003db2..6d73313 100644 --- a/src/settings/main.ts +++ b/src/settings/main.ts @@ -1,9 +1,14 @@ -import {BrowserWindow, shell, ipcMain} from "electron"; -import {getConfig, setConfigBulk, Settings, getLang} from "../utils"; +import {BrowserWindow, shell, ipcMain, app, clipboard} from "electron"; +import {getConfig, setConfigBulk, Settings, getLang, getVersion, getConfigLocation} from "../utils"; import path from "path"; +import os from "os"; +import fs from "fs"; var settingsWindow: BrowserWindow; var instance: number = 0; - +const userDataPath = app.getPath("userData"); +const storagePath = path.join(userDataPath, "/storage/"); +const themesPath = path.join(userDataPath, "/themes/"); +const pluginsPath = path.join(userDataPath, "/plugins/"); export function createSettingsWindow() { console.log("Creating a settings window."); instance = instance + 1; @@ -28,9 +33,36 @@ export function createSettingsWindow() { console.log(args); setConfigBulk(args); }); + ipcMain.on("openStorageFolder", (event) => { + shell.openPath(storagePath); + }); + ipcMain.on("openThemesFolder", (event) => { + shell.openPath(themesPath); + }); + ipcMain.on("openPluginsFolder", (event) => { + shell.openPath(pluginsPath); + }); ipcMain.handle("getSetting", (event, toGet: string) => { return getConfig(toGet); }); + ipcMain.on("copyDebugInfo", (event) => { + let settingsFileContent = fs.readFileSync(getConfigLocation(), "utf-8"); + clipboard.writeText( + "**OS:** " + + os.platform() + + " " + + os.version() + + "\n**Architecture:** " + + os.arch() + + "\n**ArmCord version:** " + + getVersion() + + "\n**Electron version:** " + + process.versions.electron + + "\n`" + + settingsFileContent + + "`" + ); + }); settingsWindow.webContents.setWindowOpenHandler(({url}) => { shell.openExternal(url); return {action: "deny"}; diff --git a/src/settings/preload.ts b/src/settings/preload.ts index 38c986d..3148136 100644 --- a/src/settings/preload.ts +++ b/src/settings/preload.ts @@ -1,5 +1,6 @@ import {contextBridge, ipcRenderer} from "electron"; console.log("ArmCord Settings"); + contextBridge.exposeInMainWorld("settings", { save: (...args: any) => ipcRenderer.send("saveSettings", ...args), getLang: (toGet: string) => @@ -9,5 +10,9 @@ contextBridge.exposeInMainWorld("settings", { get: (toGet: string) => ipcRenderer.invoke("getSetting", toGet).then((result) => { return result; - }) //jank but works + }), //jank but works + openThemesFolder: () => ipcRenderer.send("openThemesFolder"), + openPluginsFolder: () => ipcRenderer.send("openPluginsFolder"), + openStorageFolder: () => ipcRenderer.send("openStorageFolder"), + copyDebugInfo: () => ipcRenderer.send("copyDebugInfo") }); diff --git a/src/settings/settings.html b/src/settings/settings.html index 15c98c8..080df08 100644 --- a/src/settings/settings.html +++ b/src/settings/settings.html @@ -9,6 +9,9 @@ +
+ +