App: Einrueckung haelt auch bei Umbruch, Loeschen fragt mittig
Eingerueckt wurde mit fuehrenden Leerzeichen. Die verschieben aber nur die
ERSTE Zeile: Bricht ein langer Name um ("Schublade Links Unten"), faengt die
Fortsetzung wieder ganz links an und die Hierarchie ist weg.
In einem aufklappenden Menue laesst sich das nicht loesen - dort liefert man
nur Text ab, das System ignoriert jedes Layout (auch lineLimit). Die
Lagerort- und Kategorieauswahl erscheint deshalb jetzt als Liste
(.pickerStyle(.navigationLink)). Dort ist jede Zeile eine echte Ansicht, ein
Innenabstand rueckt den ganzen Block ein - auch die zweite Zeile. Das liest
sich bei vielen Lagerorten ohnehin besser als ein langes Aufklappmenue.
Zwei enge Zeilen bleiben Menues: Mindestbestand je Ort bei Artikel und
Gruppe, wo direkt daneben das Mengenfeld steht. Dort wuerde eine
Listenauswahl die Zeile sprengen; sie behalten die Leerzeichen-Einrueckung.
Der Loeschdialog war ein confirmationDialog und fuhr als Blase von unten
herein. Jetzt ein alert: steht mittig und will gelesen werden.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ea7a42ac22
commit
d7002e2252
+25
-3
@@ -1,4 +1,4 @@
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
|
||||
/// Eine Zeile einer flach ausgelegten Baumliste, mit ihrer Tiefe.
|
||||
///
|
||||
@@ -12,11 +12,33 @@ struct Baumzeile<T: TreeItem>: Identifiable {
|
||||
|
||||
var id: T.ID { item.id }
|
||||
|
||||
/// Name mit Einrueckung je Ebene. Macht die Hierarchie in einer flachen
|
||||
/// Auswahl sichtbar, ohne jede Zeile mit dem vollen Pfad zu ueberladen.
|
||||
/// Name mit Einrueckung aus fuehrenden Leerzeichen.
|
||||
///
|
||||
/// Nur fuer aufklappende Menues, wo man ausser Text nichts abliefern kann.
|
||||
/// Der Nachteil bleibt dort bestehen: Bricht ein langer Name um, faengt die
|
||||
/// zweite Zeile ganz links an. Wo es geht, `BaumZeile` nehmen.
|
||||
var label: String { String(repeating: " ", count: tiefe) + item.name }
|
||||
}
|
||||
|
||||
/// Auswahlzeile mit echter Einrueckung.
|
||||
///
|
||||
/// Fuehrende Leerzeichen verschieben nur die erste Zeile - ein langer Name
|
||||
/// bricht um und die Fortsetzung steht wieder ganz links, womit die Hierarchie
|
||||
/// verloren geht. Ein Innenabstand rueckt dagegen den ganzen Block ein.
|
||||
///
|
||||
/// Verlangt eine Auswahl, die als Liste erscheint (`.pickerStyle(.navigationLink)`):
|
||||
/// In einem aufklappenden Menue zeigt das System nur den Text und ignoriert
|
||||
/// jedes Layout.
|
||||
struct BaumZeile<T: TreeItem>: View {
|
||||
let zeile: Baumzeile<T>
|
||||
|
||||
var body: some View {
|
||||
Text(zeile.item.name)
|
||||
.frame(maxWidth: .infinity, alignment: .leading)
|
||||
.padding(.leading, CGFloat(zeile.tiefe) * 16)
|
||||
}
|
||||
}
|
||||
|
||||
/// Bringt eine flache Eltern-Kind-Liste in Baumreihenfolge, mit Tiefe.
|
||||
///
|
||||
/// Waisen - deren Elternteil weggefiltert oder geloescht ist - gelten als
|
||||
|
||||
Reference in New Issue
Block a user