From 0eed5245755945d00268178ddfd3389eddd292a1 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Thu, 19 Jun 2025 00:57:55 -0500 Subject: [PATCH] Refactored window naming; wired settings save call --- newton/app.js | 36 ++++++++++++++++++++---------------- newton/fs.js | 5 +++++ newton/main.js | 5 +---- newton/settings-manager.js | 17 ++++++++++++++--- 4 files changed, 40 insertions(+), 23 deletions(-) diff --git a/newton/app.js b/newton/app.js index 1bdf54e..be91b56 100644 --- a/newton/app.js +++ b/newton/app.js @@ -18,10 +18,10 @@ let args = []; // Note: https://tinydew4.gitbooks.io/electron/content/api/browser-window.html const createWindow = (startType = "build", debug = false, args = []) => { - this.args = args; - let data = settingsManager.getConfig(); + this.args = args; + let data = settingsManager.getConfig(); - const win = new BrowserWindow({ + const window = new BrowserWindow({ title: "Newton", x: data["config"]["main_window_x"], y: data["config"]["main_window_y"], @@ -44,39 +44,43 @@ const createWindow = (startType = "build", debug = false, args = []) => { } }); - win.once('ready-to-show', () => { - win.show(); - win.webContents.send('load-files', args); + window.once('close', () => { + settingsManager.saveConfig(window); }); - menu.load(win); + window.once('ready-to-show', () => { + window.show(); + window.webContents.send('load-files', args); + }); + + menu.load(window); systemTray.load(menu.menuStruct); - // win.setAutoHideMenuBar(true) + // window.setAutoHideMenuBar(true) if (debug == true) { - win.webContents.openDevTools(); + window.webContents.openDevTools(); } if (startType === "build") { - win.loadFile( + window.loadFile( path.join(__dirname, `${BASE_PATH}/index.html`) ); } if (startType === "ng-serve") { - win.loadURL('http://localhost:4200'); + window.loadURL('http://localhost:4200'); } -// const child = new BrowserWindow({parent: win, modal: true, show: false}) -// child.loadFile( +// const childWindow = new BrowserWindow({parent: window, modal: true, show: false}) +// childWindow.loadFile( // path.join(__dirname, `${BASE_PATH}/index.html`) // ); -// child.once('ready-to-show', () => { -// child.show() +// childWindow.once('ready-to-show', () => { +// childWindow.show() // }); - return win; + return window; } diff --git a/newton/fs.js b/newton/fs.js index f60ca02..4fedb43 100644 --- a/newton/fs.js +++ b/newton/fs.js @@ -47,6 +47,10 @@ const setWindow = (win) => { window = win; } +const saveSettingsConfigData = (data) => { + saveFile(SETTINGS_CONFIG_PATH, data); +} + const saveFile = (fpath, content) => { fs.writeFile(fpath, content, (err) => { if (!err) return @@ -130,6 +134,7 @@ module.exports = { getFileContents: getFileContents, getLspConfigData: getLspConfigData, getSettingsConfigData: getSettingsConfigData, + saveSettingsConfigData: saveSettingsConfigData, loadFilesWatcher: loadFilesWatcher, unwatchFile: unwatchFile, } diff --git a/newton/main.js b/newton/main.js index 0c37d63..cd2ce4d 100644 --- a/newton/main.js +++ b/newton/main.js @@ -23,7 +23,7 @@ const createWindow = () => { const handleExitSignal = (code) => { if (!hasExitSaved) { - newton.settings.saveConfig(); + newton.settings.saveConfig(window); hasExitSaved = true; } @@ -108,8 +108,5 @@ app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() }; - - newton.settings.saveConfig(); }); - diff --git a/newton/settings-manager.js b/newton/settings-manager.js index a1f1efa..4b4b4ab 100644 --- a/newton/settings-manager.js +++ b/newton/settings-manager.js @@ -14,8 +14,19 @@ const getConfig = () => { return config; } -const saveConfig = () => { - console.log(config); +const saveConfig = (window) => { + if (!window) return; + + const windowBounds = window.getBounds(); + + config["config"]["main_window_x"] = windowBounds.x; + config["config"]["main_window_y"] = windowBounds.y; + config["config"]["main_window_width"] = windowBounds.width; + config["config"]["main_window_height"] = windowBounds.height; + + newtonFs.saveSettingsConfigData( + JSON.stringify(config, null, 4) + ); } const getIconPath = () => { @@ -31,4 +42,4 @@ module.exports = { getConfig: getConfig, saveConfig: saveConfig, } -}; +}; \ No newline at end of file