Update tray icon path and refactor tray menu construction
This commit is contained in:
138
main.js
138
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 => {
|
||||
|
||||
Reference in New Issue
Block a user