Selbst-Update-Funktion ergänzt (Tauri Updater-Plugin) + App-Branding

"dossier" statt "Dossier".

Prüft beim Start still gegen ein Gitea-Release-Manifest (latest.json),
bietet im Settings-/About-Dialog einen manuellen Check sowie einen
Versionsverlauf mit Rollback-Download (versions.json, eigener schlanker
Index neben dem Updater-Manifest). Dafür: tauri-plugin-updater/process/
http/shell + zugehörige Capabilities, neue App-Icons (auch für die
plattformspezifischen Bundle-Formate), sowie ein kleingeschriebener
Produktname samt erweitertem nativen Info-Fenster (macOS-About).
This commit is contained in:
2026-07-31 17:03:23 +02:00
parent 9c9e118d98
commit 6ee6bf5dd1
38 changed files with 1299 additions and 35 deletions
+16 -3
View File
@@ -319,14 +319,27 @@ export function useNativeAppMenu(
// macOS: der allererste Eintrag ist das App-Menü (Über/Beenden). Ohne ihn
// rutscht „Datei" an die Stelle, an der macOS sonst den App-Namen zeigt.
// „Über Dossier" nutzt das NATIVE macOS-Info-Fenster (PredefinedMenuItem
// „Über dossier" nutzt das NATIVE macOS-Info-Fenster (PredefinedMenuItem
// „About") statt des eigenen In-App-Dialogs (AboutDialog in TopBar.tsx) —
// an dieser Stelle erwartet macOS exakt diesen Eintrag, kein Custom-Dialog.
// Metadaten spiegeln den In-App-Dialog: kleingeschriebener Name „dossier",
// Beschreibung + Lizenz/Suite als `credits` (macOS zeigt sie als Textblock
// unter der Version), Copyright unten. Das Icon zieht macOS aus dem Bundle
// (tauri.conf.json bundle.icon → icon.icns). Auf macOS NICHT unterstützt
// und daher weggelassen: authors/comments/license/website.
const appMenu = await Submenu.new({
text: "Dossier",
text: "dossier",
items: [
await PredefinedMenuItem.new({
item: { About: { name: "Dossier", version: APP_VERSION } },
item: {
About: {
name: "dossier",
version: APP_VERSION,
shortVersion: APP_VERSION,
copyright: t("about.copyright"),
credits: `${t("about.desc")}\n\n${t("about.license")} · ${t("about.suite")}`,
},
},
text: t("menu.native.about"),
}),
await PredefinedMenuItem.new({ item: "Separator" }),
+1 -1
View File
@@ -41,7 +41,7 @@ export async function openContextImportWindowNative(): Promise<void> {
}
new WebviewWindow(CONTEXT_IMPORT_WINDOW_LABEL, {
url: "index.html?window=context-import",
title: "Standort importieren — Dossier",
title: "Standort importieren — dossier",
width: 480,
height: 680,
minWidth: 400,
+1 -1
View File
@@ -51,7 +51,7 @@ export async function openDrawingLevelsWindowNative(): Promise<void> {
}
new WebviewWindow(DRAWING_LEVELS_WINDOW_LABEL, {
url: "index.html?window=drawing-levels",
title: "Zeichnungsebenen — Dossier",
title: "Zeichnungsebenen — dossier",
width: 340,
height: 560,
minWidth: 260,
+1 -1
View File
@@ -54,7 +54,7 @@ export async function openLayerSettingsWindowNative(code: string): Promise<void>
}
new WebviewWindow(LAYER_SETTINGS_WINDOW_LABEL, {
url: `index.html?window=layer-settings&code=${encodeURIComponent(code)}`,
title: "Ebeneneinstellungen — Dossier",
title: "Ebeneneinstellungen — dossier",
width: 360,
height: 420,
minWidth: 300,
+1 -1
View File
@@ -47,7 +47,7 @@ export async function openResourceWindowNative(initialTab?: TabId): Promise<void
"index.html?window=resources" + (initialTab ? `&tab=${encodeURIComponent(initialTab)}` : "");
new WebviewWindow(RESOURCE_WINDOW_LABEL, {
url,
title: "Ressourcen — Dossier",
title: "Ressourcen — dossier",
width: 780,
height: 660,
minWidth: 480,
+1 -1
View File
@@ -52,7 +52,7 @@ export async function openSettingsWindowNative(): Promise<void> {
}
new WebviewWindow(SETTINGS_WINDOW_LABEL, {
url: "index.html?window=settings",
title: "Einstellungen — Dossier",
title: "Einstellungen — dossier",
width: 520,
height: 640,
minWidth: 420,