Zahnrad-Icons in Zeichnungsebenen/Ebenen öffnen jetzt die passenden Fenster

Bisher öffneten beide Panel-Kopfzeilen die allgemeinen Einstellungen statt
ihrer eigenen: Zeichnungsebenen jetzt den Zeichnungsebenen-Fenster-Manager,
Ebenen die Ebeneneinstellungen der aktiven Kategorie.
This commit is contained in:
2026-07-21 19:51:03 +02:00
parent 476f31ccad
commit 3b8d48eaf5
4 changed files with 26 additions and 12 deletions
+3
View File
@@ -3052,6 +3052,9 @@ export default function App() {
onLayerContextMenu: (code, x, y) =>
setMenu({ kind: "layer", code, x, y }),
onOpenLayerSettings: (code, x, y) => openLayerSettings(code, x, y),
onOpenDrawingLevelsWindow: () => {
if (isTauriRuntime()) void openDrawingLevelsWindowNative();
},
onOpenSettings: () => openSettings(),
onPatchComponent: patchComponent,
onAddComponent: addComponent,
+5 -4
View File
@@ -157,15 +157,16 @@ export function DrawingLevelsPanel() {
}
/** Aktionen für die gemeinsame PanelFrame-Kopfzeile (statt eigener Titelzeile):
* Zahnrad → Einstellungen (Darstellungsfarben/Projekt-Felder). */
* Zahnrad → Zeichnungsebenen-Manager als eigenes natives Fenster öffnen
* (Duplikat desselben Inhalts, additiv zum Dock-Panel). */
export function DrawingLevelsHeaderActions() {
const host = usePanelHost();
return (
<button
className="nav-settings"
aria-label={t("topbar.settings")}
title={t("topbar.settings")}
onClick={host.onOpenSettings}
aria-label={t("nav.drawingLevelsWindow")}
title={t("nav.drawingLevelsWindow")}
onClick={host.onOpenDrawingLevelsWindow}
>
<span className="material-symbols-outlined" aria-hidden="true">
settings
+8 -4
View File
@@ -175,7 +175,9 @@ function CategoryRow({
}
/** Aktionen für die gemeinsame PanelFrame-Kopfzeile (statt eigener Titelzeile):
* „+ Kategorie" + Zahnrad → Einstellungen (wie im Zeichnungsebenen-Kopf).
* „+ Kategorie" + Zahnrad → Ebeneneinstellungen der aktiven Ebene (wie das
* Zahnrad je Zeile, hier für activeCategoryCode; unter Tauri natives Fenster,
* sonst InlineEditor-Popover — siehe onOpenLayerSettings).
* Läuft im PanelHostContext, nutzt daher usePanelHost. */
export function LayersHeaderActions() {
const host = usePanelHost();
@@ -183,9 +185,11 @@ export function LayersHeaderActions() {
<>
<button
className="nav-settings"
onClick={host.onOpenSettings}
aria-label={t("topbar.settings")}
title={t("topbar.settings")}
onClick={(e) =>
host.onOpenLayerSettings(host.activeCategoryCode, e.clientX, e.clientY)
}
aria-label={t("ctx.layerSettings")}
title={t("ctx.layerSettings")}
>
<span className="material-symbols-outlined" aria-hidden="true">
settings
+10 -4
View File
@@ -117,13 +117,19 @@ export interface PanelHostValue {
* Löschen) und hält das offene Menü.
*/
onLayerContextMenu: (code: string, clientX: number, clientY: number) => void;
/** Öffnet die Ebeneneinstellungen direkt (Zahnrad-Symbol je Zeile) — unter
* Tauri als natives Fenster, sonst derselbe InlineEditor-Popover wie über
* das Kontextmenü (siehe App.tsx `openLayerSettings`). */
/** Öffnet die Ebeneneinstellungen direkt (Zahnrad-Symbol je Zeile bzw.
* Panel-Kopfzeile, dort für die aktive Ebene) — unter Tauri als natives
* Fenster, sonst derselbe InlineEditor-Popover wie über das Kontextmenü
* (siehe App.tsx `openLayerSettings`). */
onOpenLayerSettings: (code: string, clientX: number, clientY: number) => void;
/** Öffnet den Zeichnungsebenen-Manager als eigenes natives Fenster (Zahnrad
* in der Panel-Kopfzeile „Zeichnungsebenen") — Duplikat desselben Inhalts
* wie das Dock-Panel, additiv. No-op außerhalb von Tauri (kein eigenes
* Fenster-Konzept im Browser; das Dock-Panel zeigt dort bereits alles). */
onOpenDrawingLevelsWindow: () => void;
/** Öffnet das Einstellungs-Fenster (Darstellungsfarben, Projekt-Felder) —
* unter Tauri als natives Fenster, sonst als In-App-Dialog (App.openSettings).
* Als Zahnrad in den Panel-Kopfzeilen „Zeichnungsebenen"/„Ebenen". */
* Erreichbar über „Fenster"-Menü (AppMenuBar/native Menüleiste). */
onOpenSettings: () => void;
// Ressourcen-Handler (Bauteile / Schraffuren / Linienstile). Spiegelt