From da495e6772b74350402f05a5129547b93a415e63 Mon Sep 17 00:00:00 2001 From: nellydocs Date: Fri, 10 Apr 2026 13:44:57 +0200 Subject: [PATCH] feat: add --reload-project CLI flag for external project reload Adds a new --reload-project command-line flag that triggers a project reload in an already running EEZ Studio instance via the existing single-instance lock mechanism. This allows external tools to reload the current project without manual interaction through the File menu. --- packages/main/home-window.ts | 9 +++++++++ packages/main/main.ts | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/packages/main/home-window.ts b/packages/main/home-window.ts index f04a29471..72c554574 100644 --- a/packages/main/home-window.ts +++ b/packages/main/home-window.ts @@ -20,6 +20,15 @@ export function bringHomeWindowToFocus() { } } +export function reloadProject() { + let homeWindow = findWindowByParams(HOME_WINDOW_PARAMS); + console.log("[reload-project] homeWindow found:", !!homeWindow); + if (homeWindow) { + console.log("[reload-project] sending IPC reload-project to renderer"); + homeWindow.browserWindow.webContents.send("reload-project"); + } +} + export function importInstrumentDefinitionFile(filePath: string) { let homeWindow = findWindowByParams(HOME_WINDOW_PARAMS); if (homeWindow) { diff --git a/packages/main/main.ts b/packages/main/main.ts index 9ce9f6d1b..e88b579cc 100644 --- a/packages/main/main.ts +++ b/packages/main/main.ts @@ -53,6 +53,15 @@ app.on("ready", async function () { } app.on("second-instance", function (event, commandLine, workingDirectory) { + if (commandLine.includes("--reload-project")) { + console.log("[reload-project] second-instance triggered, commandLine:", commandLine); + const { reloadProject } = + require("main/home-window") as typeof HomeWindowModule; + console.log("[reload-project] calling reloadProject()"); + reloadProject(); + return; + } + console.log("[second-instance] commandLine:", commandLine); const { bringHomeWindowToFocus } = require("main/home-window") as typeof HomeWindowModule; bringHomeWindowToFocus();