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) => onLayerContextMenu: (code, x, y) =>
setMenu({ kind: "layer", code, x, y }), setMenu({ kind: "layer", code, x, y }),
onOpenLayerSettings: (code, x, y) => openLayerSettings(code, x, y), onOpenLayerSettings: (code, x, y) => openLayerSettings(code, x, y),
onOpenDrawingLevelsWindow: () => {
if (isTauriRuntime()) void openDrawingLevelsWindowNative();
},
onOpenSettings: () => openSettings(), onOpenSettings: () => openSettings(),
onPatchComponent: patchComponent, onPatchComponent: patchComponent,
onAddComponent: addComponent, onAddComponent: addComponent,
+5 -4
View File
@@ -157,15 +157,16 @@ export function DrawingLevelsPanel() {
} }
/** Aktionen für die gemeinsame PanelFrame-Kopfzeile (statt eigener Titelzeile): /** 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() { export function DrawingLevelsHeaderActions() {
const host = usePanelHost(); const host = usePanelHost();
return ( return (
<button <button
className="nav-settings" className="nav-settings"
aria-label={t("topbar.settings")} aria-label={t("nav.drawingLevelsWindow")}
title={t("topbar.settings")} title={t("nav.drawingLevelsWindow")}
onClick={host.onOpenSettings} onClick={host.onOpenDrawingLevelsWindow}
> >
<span className="material-symbols-outlined" aria-hidden="true"> <span className="material-symbols-outlined" aria-hidden="true">
settings settings
+8 -4
View File
@@ -175,7 +175,9 @@ function CategoryRow({
} }
/** Aktionen für die gemeinsame PanelFrame-Kopfzeile (statt eigener Titelzeile): /** 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. */ * Läuft im PanelHostContext, nutzt daher usePanelHost. */
export function LayersHeaderActions() { export function LayersHeaderActions() {
const host = usePanelHost(); const host = usePanelHost();
@@ -183,9 +185,11 @@ export function LayersHeaderActions() {
<> <>
<button <button
className="nav-settings" className="nav-settings"
onClick={host.onOpenSettings} onClick={(e) =>
aria-label={t("topbar.settings")} host.onOpenLayerSettings(host.activeCategoryCode, e.clientX, e.clientY)
title={t("topbar.settings")} }
aria-label={t("ctx.layerSettings")}
title={t("ctx.layerSettings")}
> >
<span className="material-symbols-outlined" aria-hidden="true"> <span className="material-symbols-outlined" aria-hidden="true">
settings settings
+10 -4
View File
@@ -117,13 +117,19 @@ export interface PanelHostValue {
* Löschen) und hält das offene Menü. * Löschen) und hält das offene Menü.
*/ */
onLayerContextMenu: (code: string, clientX: number, clientY: number) => void; onLayerContextMenu: (code: string, clientX: number, clientY: number) => void;
/** Öffnet die Ebeneneinstellungen direkt (Zahnrad-Symbol je Zeile) — unter /** Öffnet die Ebeneneinstellungen direkt (Zahnrad-Symbol je Zeile bzw.
* Tauri als natives Fenster, sonst derselbe InlineEditor-Popover wie über * Panel-Kopfzeile, dort für die aktive Ebene) — unter Tauri als natives
* das Kontextmenü (siehe App.tsx `openLayerSettings`). */ * Fenster, sonst derselbe InlineEditor-Popover wie über das Kontextmenü
* (siehe App.tsx `openLayerSettings`). */
onOpenLayerSettings: (code: string, clientX: number, clientY: number) => void; 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) — /** Öffnet das Einstellungs-Fenster (Darstellungsfarben, Projekt-Felder) —
* unter Tauri als natives Fenster, sonst als In-App-Dialog (App.openSettings). * 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; onOpenSettings: () => void;
// Ressourcen-Handler (Bauteile / Schraffuren / Linienstile). Spiegelt // Ressourcen-Handler (Bauteile / Schraffuren / Linienstile). Spiegelt