Klicks auf Links im gerenderten Markdown (z. B. BENUTZERHANDBUCH.md, LICENSE.txt) navigierten das Fenster selbst dorthin und liessen einen leeren, unschliessbaren Dialog zurueck. Main-Prozess faengt jetzt jede Navigation im Info-Fenster ab: externe http(s)-Links oeffnen im Standardbrowser, interne Verweise auf Benutzerhandbuch/Disclaimer/ Lizenz wechseln stattdessen den Inhalt desselben Dialogs. Neuer dritter Menüpunkt "Lizenz" (LICENSE.txt) im Info-Dropdown. Der README.md-Link in DISCLAIMER.md zeigt jetzt auf die Repo-Seite auf Gitea statt auf einen kaputten relativen Pfad. Claude-Session: https://claude.ai/code/session_01VeqoaAZDVSCU4QBtiYDC5C
36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* Schmale, explizite Brücke zwischen Main-Prozess und Oberfläche.
|
|
* Der Renderer bekommt keinen Node-Zugriff — nur diese Funktionen.
|
|
*/
|
|
|
|
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('dashboard', {
|
|
/** Registriert den Empfänger für Zustandsaktualisierungen. */
|
|
onState(callback) {
|
|
ipcRenderer.on('state', (_event, state) => callback(state));
|
|
},
|
|
/** Fordert den aktuellen Zustand an (für den ersten Aufbau). */
|
|
getState: () => ipcRenderer.invoke('get-state'),
|
|
/** Liefert den gespeicherten Ansichtszustand, damit die Oberfläche zur Fenstergröße passt. */
|
|
getUiState: () => ipcRenderer.invoke('get-ui-state'),
|
|
/** Klappt die Detailansicht auf oder zu. */
|
|
setExpanded: (expanded) => ipcRenderer.send('set-expanded', expanded),
|
|
/** Blendet das Fenster aus (bleibt über das Tray-Symbol erreichbar). */
|
|
hide: () => ipcRenderer.send('hide-window'),
|
|
/** Öffnet den Einstellungsdialog. */
|
|
openSettings: () => ipcRenderer.send('open-settings'),
|
|
/** Öffnet das Fehler-/Ereignis-Log. */
|
|
openErrorLog: () => ipcRenderer.send('open-error-log'),
|
|
/** Öffnet die Release-Seite eines gefundenen neuen Updates im Browser. */
|
|
openReleasePage: () => ipcRenderer.send('open-release-page'),
|
|
/** Öffnet den Benutzerhandbuch-Dialog. */
|
|
openManual: () => ipcRenderer.send('open-manual'),
|
|
/** Öffnet den Disclaimer-Dialog. */
|
|
openDisclaimer: () => ipcRenderer.send('open-disclaimer'),
|
|
/** Öffnet den Lizenz-Dialog. */
|
|
openLicense: () => ipcRenderer.send('open-license'),
|
|
});
|