From a21b28923f4276639eb79f432cad5e4157aba129 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 24 May 2025 21:42:52 +0200 Subject: [PATCH] Update tray icon path and refactor tray menu construction --- main.js | 138 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 70 insertions(+), 68 deletions(-) diff --git a/main.js b/main.js index dac6bc2..cb758e9 100644 --- a/main.js +++ b/main.js @@ -21,74 +21,6 @@ const store = new Store({ }); let tray = null; -const iconPath = path.join(__dirname, 'trayicon.png'); // Passe ggf. an -tray = new Tray(nativeImage.createFromPath(iconPath)); - -// --- Context Menu bauen --- -function buildTrayMenu() { - const folders = store.get('folders') || []; - const monitoringActive = folders.some(f => f.monitoring); - - return Menu.buildFromTemplate([ - { label: 'Auto-Git öffnen', click: () => { win.show(); win.focus(); } }, - { type: 'separator' }, - ...folders.map(f => ({ - label: `${f.monitoring ? '🟢' : '🔴'} ${path.basename(f.path)}`, - submenu: [ - { - label: f.monitoring ? 'Monitoring stoppen' : 'Monitoring starten', - click: () => { - win.webContents.send('tray-toggle-monitoring', f.path); // Renderer kann dann toggeln - } - }, - { - label: 'Ordner entfernen', - click: () => { - win.webContents.send('tray-remove-folder', f.path); - } - } - ] - })), - { type: 'separator' }, - { - label: 'Neuen Ordner hinzufügen', - click: () => { win.webContents.send('tray-add-folder'); } - }, - { - label: monitoringActive ? 'Monitoring (alle) STOPPEN' : 'Monitoring (alle) STARTEN', - click: () => { - folders.forEach(f => { - win.webContents.send('tray-toggle-monitoring', f.path); - }); - } - }, - { type: 'separator' }, - { label: 'Beenden', role: 'quit' } - ]); -} - -tray.setToolTip('Auto-Git läuft im Hintergrund'); -tray.setContextMenu(buildTrayMenu()); - -// Menu immer wieder aktualisieren, wenn sich Ordner ändern: -store.onDidChange('folders', () => { - tray.setContextMenu(buildTrayMenu()); -}); - -// Optional: Minimieren auf Tray bei Fenster-Schließen -win.on('close', (e) => { - if (!app.isQuiting) { - e.preventDefault(); - win.hide(); - } -}); - -// Doppelklick aufs Tray: Fenster zeigen -tray.on('double-click', () => { - win.show(); -}); - - let folders = store.get('folders'); if (Array.isArray(folders)) { @@ -623,6 +555,76 @@ app.whenReady().then(() => { ]); Menu.setApplicationMenu(menu); + + const trayIconPath = path.join(__dirname, '/assets/icon/trayicon.png'); // Passe ggf. an + tray = new Tray(nativeImage.createFromPath(trayIconPath)); + + // --- Context Menu bauen --- + function buildTrayMenu() { + const folders = store.get('folders') || []; + const monitoringActive = folders.some(f => f.monitoring); + + return Menu.buildFromTemplate([ + { label: 'Auto-Git öffnen', click: () => { win.show(); win.focus(); } }, + { type: 'separator' }, + ...folders.map(f => ({ + label: `${f.monitoring ? '🟢' : '🔴'} ${path.basename(f.path)}`, + submenu: [ + { + label: f.monitoring ? 'Monitoring stoppen' : 'Monitoring starten', + click: () => { + win.webContents.send('tray-toggle-monitoring', f.path); // Renderer kann dann toggeln + } + }, + { + label: 'Ordner entfernen', + click: () => { + win.webContents.send('tray-remove-folder', f.path); + } + } + ] + })), + { type: 'separator' }, + { + label: 'Neuen Ordner hinzufügen', + click: () => { win.webContents.send('tray-add-folder'); } + }, + { + label: monitoringActive ? 'Monitoring (alle) STOPPEN' : 'Monitoring (alle) STARTEN', + click: () => { + folders.forEach(f => { + win.webContents.send('tray-toggle-monitoring', f.path); + }); + } + }, + { type: 'separator' }, + { label: 'Beenden', role: 'quit' } + ]); + } + + tray.setToolTip('Auto-Git läuft im Hintergrund'); + tray.setContextMenu(buildTrayMenu()); + + // Menu immer wieder aktualisieren, wenn sich Ordner ändern: + store.onDidChange('folders', () => { + tray.setContextMenu(buildTrayMenu()); + }); + + // Optional: Minimieren auf Tray bei Fenster-Schließen + win.on('close', (e) => { + if (!app.isQuiting) { + e.preventDefault(); + win.hide(); + } + }); + + // Doppelklick aufs Tray: Fenster zeigen + tray.on('double-click', () => { + win.show(); + }); + + + // 1) Beim Start bereits gespeicherte Ordner überwachen und monitoren const folders = store.get('folders') || []; folders.forEach(folderObj => {