From dfa1665b195e282fddce63a70e7ac6d207032df0 Mon Sep 17 00:00:00 2001 From: SploeCyber Date: Wed, 15 Jun 2022 14:43:58 +0000 Subject: [PATCH 1/5] Translated using Weblate (Thai) Currently translated at 100.0% (28 of 28 strings) Translation: ArmCord/ArmCord Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/th/ --- assets/lang/th-TH.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/lang/th-TH.json b/assets/lang/th-TH.json index e8a88e1..79db9f5 100644 --- a/assets/lang/th-TH.json +++ b/assets/lang/th-TH.json @@ -1,10 +1,10 @@ { - "loading_screen_start": "กำลังเริ่ม ArmCord…", + "loading_screen_start": "เริ่มต้น ArmCord…", "loading_screen_offline": "ดูเหมือนว่าคุณออฟไลน์อยู่ โปรดเชื่อมต่ออินเทอร์เน็ตและลองใหม่อีกครั้ง", "loading_screen_update": "ArmCord เวอร์ชันใหม่พร้อมใช้งานแล้ว โปรดอัปเดตเป็นเวอร์ชันล่าสุด", "setup_question1": "เลือกประเภทการติดตั้งที่คุณต้องการ:", - "setup_question1_answer1": "ติดตั้งแบบน้ำหนักเบา", - "setup_question1_answer2": "ติดตั้งแบบเต็ม", + "setup_question1_answer1": "ติดตั้งแบบรวดเร็ว", + "setup_question1_answer2": "การตั้งค่าเต็มรูปแบบ", "setup_offline": "ดูเหมือนว่าคุณออฟไลน์อยู่ โปรดเชื่อมต่ออินเทอร์เน็ตและลองใหม่อีกครั้ง", "setup_question2": "เลือกช่อง/อินสแตนส์ Discord:", "setup_question3": "ต้องการให้ ArmCord จัดการการติดตั้งมอดของไคลเอนต์หรือไม่?", From 86f885c41fafe111494cc2ee93b9a7263c9322b5 Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Thu, 16 Jun 2022 17:24:37 +0200 Subject: [PATCH 2/5] Add window state manager --- src/ipc.ts | 20 +++++++++++++++++--- src/tray.ts | 14 +++++++++++++- src/utils.ts | 31 +++++++++++++++++++++++++++++-- src/window.ts | 8 +++++++- 4 files changed, 66 insertions(+), 7 deletions(-) diff --git a/src/ipc.ts b/src/ipc.ts index 5ad4e44..6d5af02 100644 --- a/src/ipc.ts +++ b/src/ipc.ts @@ -1,7 +1,7 @@ //ipc stuff import {app, ipcMain, shell, desktopCapturer} from "electron"; import {mainWindow} from "./window"; -import {setConfigBulk, getVersion, getConfig, setLang, getLang} from "./utils"; +import {setConfigBulk, getVersion, getConfig, setLang, getLang, getWindowState} from "./utils"; import {customTitlebar} from "./main"; import {createSettingsWindow} from "./settings/main"; export function registerIpc() { @@ -41,8 +41,22 @@ export function registerIpc() { ipcMain.on("get-app-version", (event) => { event.returnValue = getVersion(); }); - ipcMain.on("splashEnd", (event, arg) => { - mainWindow.setSize(800, 600); + ipcMain.on("splashEnd", async (event, arg) => { + try { + var width = await getWindowState("width") ?? 800; + var height= await getWindowState("height") ?? 600; + var isMaximized = await getWindowState("isMaximized") ?? false; + } catch (e) { + console.log("No window state file found. Fallbacking to default values.") + mainWindow.setSize(800, 600); + } + if (isMaximized) { + mainWindow.setSize(800, 600); //just so the whole thing doesn't cover whole screen + mainWindow.maximize() + } else { + mainWindow.setSize(width, height); + console.log("Not maximized.") + } }); ipcMain.on("restart", (event, arg) => { app.relaunch(); diff --git a/src/tray.ts b/src/tray.ts index d690914..2e22278 100644 --- a/src/tray.ts +++ b/src/tray.ts @@ -1,6 +1,6 @@ import {app, Menu, Tray} from "electron"; import {mainWindow} from "./window"; -import {getConfig} from "./utils"; +import {getConfig, setWindowState} from "./utils"; import * as path from "path"; import {createSettingsWindow} from "./settings/main"; import {platform} from "process"; @@ -22,6 +22,12 @@ app.whenReady().then(async () => { { label: "Quit ArmCord", click: function () { + let [width, height] = mainWindow.getSize() + setWindowState({ + width: width, + height: height, + isMaximized: mainWindow.isMaximized() + }) app.quit(); } } @@ -64,6 +70,12 @@ app.whenReady().then(async () => { { label: "Quit ArmCord", click: function () { + let [width, height] = mainWindow.getSize() + setWindowState({ + width: width, + height: height, + isMaximized: mainWindow.isMaximized() + }) app.quit(); } } diff --git a/src/utils.ts b/src/utils.ts index c3b5bf2..213d44b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,7 +1,7 @@ import * as fs from "fs"; -import {app, dialog} from "electron"; +import { app, dialog } from "electron"; import path from "path"; -import {defaultMaxListeners} from "events"; +import { defaultMaxListeners } from "events"; export var firstRun: boolean; export var isSetup: boolean; export var contentPath: string; @@ -137,6 +137,33 @@ export async function getLang(object: string) { let parsed = JSON.parse(rawdata); return parsed[object]; } + +//ArmCord Window State manager +export interface WindowState { + width: number; + height: number; + isMaximized: boolean; +} +export async function setWindowState(object: WindowState) { + const userDataPath = app.getPath("userData"); + const storagePath = path.join(userDataPath, "/storage/"); + const saveFile = storagePath + "window.json"; + if (!fs.existsSync(saveFile)) { + fs.writeFileSync(saveFile, "{}", "utf-8"); + } + let toSave = JSON.stringify(object); + fs.writeFileSync(saveFile, toSave, "utf-8"); +} +export async function getWindowState(object: string) { + const userDataPath = app.getPath("userData"); + const storagePath = path.join(userDataPath, "/storage/"); + const settingsFile = storagePath + "window.json"; + let rawdata = fs.readFileSync(settingsFile, "utf-8"); + let returndata = JSON.parse(rawdata); + console.log(object + ": " + returndata[object]); + return returndata[object]; + +} //ArmCord Settings/Storage manager export interface Settings { diff --git a/src/window.ts b/src/window.ts index d523314..ce77197 100644 --- a/src/window.ts +++ b/src/window.ts @@ -4,7 +4,7 @@ // I'm sorry for this mess but I'm not sure how to fix it. import {BrowserWindow, shell, app, dialog} from "electron"; import path from "path"; -import {checkIfConfigIsBroken, firstRun, getConfig, contentPath, isSetup, setConfig, setLang} from "./utils"; +import {checkIfConfigIsBroken, firstRun, getConfig, contentPath, isSetup, setConfig, setLang, setWindowState} from "./utils"; import {registerIpc} from "./ipc"; import startServer from "./socket"; import contextMenu from "electron-context-menu"; @@ -72,6 +72,12 @@ async function doAfterDefiningTheWindow() { return callback({}); }); mainWindow.on("close", async (e) => { + let [width, height] = mainWindow.getSize() + setWindowState({ + width: width, + height: height, + isMaximized: mainWindow.isMaximized() + }) if (await getConfig("minimizeToTray")) { e.preventDefault(); mainWindow.hide(); From 8c62d9dd86ebe548abbe3d5821f842bc75adf24f Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Thu, 16 Jun 2022 17:25:18 +0200 Subject: [PATCH 3/5] Update translation files Updated by "Cleanup translation files" hook in Weblate. Translation: ArmCord/ArmCord Translate-URL: https://hosted.weblate.org/projects/armcord/armcord/ --- assets/lang/id-ID.json | 1 - assets/lang/it-IT.json | 1 - assets/lang/nb-NO.json | 1 - assets/lang/nl-NL.json | 1 - assets/lang/pl-PL.json | 1 - 5 files changed, 5 deletions(-) diff --git a/assets/lang/id-ID.json b/assets/lang/id-ID.json index 51bef0a..f0535d3 100644 --- a/assets/lang/id-ID.json +++ b/assets/lang/id-ID.json @@ -14,7 +14,6 @@ "setup_question4": "Select a client mod you want to install:", "setup_question4_clientmodnotice": "Why not all of them? Having many client mods at the same time can cause issues. If you really want to do it though, check our documentation.", "settings-theme": "ArmCord Theme:", - "settings-theme-tabs": "Tabs (experimental)", "settings-theme-default": "Default", "settings-theme-native": "Native", "settings-tray": "Minimize to tray", diff --git a/assets/lang/it-IT.json b/assets/lang/it-IT.json index 25d10d4..f0c9675 100644 --- a/assets/lang/it-IT.json +++ b/assets/lang/it-IT.json @@ -19,7 +19,6 @@ "settings-updater": "Controlla gli aggiornamenti", "settings-mod": "Client mod:", "settings-theme": "ArmCord Theme:", - "settings-theme-tabs": "Tabs (experimental)", "settings-theme-default": "Default", "settings-theme-native": "Native", "settings-patches": "Automatic Patches", diff --git a/assets/lang/nb-NO.json b/assets/lang/nb-NO.json index 29ed697..00bdd19 100644 --- a/assets/lang/nb-NO.json +++ b/assets/lang/nb-NO.json @@ -19,7 +19,6 @@ "settings-save": "Save settings", "settings-updater": "Check for updates", "settings-theme": "ArmCord Theme:", - "settings-theme-tabs": "Tabs (experimental)", "settings-theme-default": "Default", "settings-theme-native": "Native", "settings-patches": "Automatic Patches", diff --git a/assets/lang/nl-NL.json b/assets/lang/nl-NL.json index c981b8d..ebac8bc 100644 --- a/assets/lang/nl-NL.json +++ b/assets/lang/nl-NL.json @@ -20,7 +20,6 @@ "settings-updater": "Check voor updates", "settings-patches": "Automatische Patches", "settings-theme": "ArmCord Thema:", - "settings-theme-tabs": "Tabs (experimenteel)", "settings-theme-default": "Standaard", "settings-theme-native": "Native", "settings-invitewebsocket": "discord.gg support", diff --git a/assets/lang/pl-PL.json b/assets/lang/pl-PL.json index 4870b4f..05f840e 100644 --- a/assets/lang/pl-PL.json +++ b/assets/lang/pl-PL.json @@ -19,7 +19,6 @@ "settings-save": "Zapisz ustawienia", "settings-mod": "Modyfikacja klienta:", "settings-theme": "Motyw ArmCord:", - "settings-theme-tabs": "Karty (eksperymentalne)", "settings-theme-default": "Domyślny", "settings-theme-native": "Natywny", "settings-patches": "Automatyczne łatki", From 0b165e64bccda3c6396b3beae3b45d84d1cd89c3 Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Thu, 16 Jun 2022 17:28:47 +0200 Subject: [PATCH 4/5] Remove left over from tabs in armcord api --- src/preload/bridge.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/preload/bridge.ts b/src/preload/bridge.ts index 3a458ce..a4ea57d 100644 --- a/src/preload/bridge.ts +++ b/src/preload/bridge.ts @@ -15,7 +15,6 @@ contextBridge.exposeInMainWorld("armcord", { }, electron: process.versions.electron, channel: ipcRenderer.sendSync("channel"), - openTab: (number: number) => ipcRenderer.sendSync("openTab", number), setLang: (lang: string) => ipcRenderer.send("setLang", lang), getLang: (toGet: string) => ipcRenderer.invoke("getLang", toGet).then((result) => { From b7a0d1face086183b5af151421db4b60abf4591d Mon Sep 17 00:00:00 2001 From: smartfrigde <37928912+smartfrigde@users.noreply.github.com> Date: Thu, 16 Jun 2022 17:31:42 +0200 Subject: [PATCH 5/5] formatting --- src/tray.ts | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/tray.ts b/src/tray.ts index 2e22278..331b71f 100644 --- a/src/tray.ts +++ b/src/tray.ts @@ -1,9 +1,9 @@ -import {app, Menu, Tray} from "electron"; -import {mainWindow} from "./window"; -import {getConfig, setWindowState} from "./utils"; +import { app, Menu, Tray } from "electron"; +import { mainWindow } from "./window"; +import { getConfig, setWindowState } from "./utils"; import * as path from "path"; -import {createSettingsWindow} from "./settings/main"; -import {platform} from "process"; +import { createSettingsWindow } from "./settings/main"; +import { platform } from "process"; let tray: any = null; let defaultIcon = "ac_plug_colored"; app.whenReady().then(async () => { @@ -23,11 +23,11 @@ app.whenReady().then(async () => { label: "Quit ArmCord", click: function () { let [width, height] = mainWindow.getSize() - setWindowState({ - width: width, - height: height, - isMaximized: mainWindow.isMaximized() - }) + setWindowState({ + width: width, + height: height, + isMaximized: mainWindow.isMaximized() + }) app.quit(); } } @@ -71,11 +71,11 @@ app.whenReady().then(async () => { label: "Quit ArmCord", click: function () { let [width, height] = mainWindow.getSize() - setWindowState({ - width: width, - height: height, - isMaximized: mainWindow.isMaximized() - }) + setWindowState({ + width: width, + height: height, + isMaximized: mainWindow.isMaximized() + }) app.quit(); } }