Selector-UI: Liste, Zustandsabzeichen, nebenlaeufige Pruefung #13
Reference in New Issue
Block a user
Delete Branch "feat/selector-ui"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Setzt Issue #8 um — die Prototyp-Variante „Liste führt".
Der Aufbau
Eine Ansicht statt Reiter, höchstens 40rem breit. Kopf- und Fußzeile stehen fest, nur die Liste scrollt. Das Hinzufügen sitzt in der Fußzeile und wird nur beim leeren Erststart zur Primäraktion — sonst ist es ein gewöhnlicher Knopf.
Ein Eintrag zeigt den Ordnernamen, darunter den Pfad in der Code-Schrift. Bei Überlänge wird der Pfad vorne gekürzt (
direction: rtl), weil sein Ende mehr aussagt als sein Anfang.Die Zustandsprüfung läuft nebenläufig
Das ist der Teil mit dem größten Fallstrick. Die Markierungen setzen voraus, dass die App den Zustand jedes Eintrags kennt, bevor der Nutzer klickt. Auf einem nicht eingehängten Netzlaufwerk läuft aber schon
is_dir()in ein Timeout von mehreren Sekunden — und das ausgerechnet auf dem Bildschirm, den jeder Start zuerst zeigt.Deshalb
use_resourceplustokio::task::spawn_blocking. Solange die Prüfung läuft, bleiben die Einträge unmarkiert und der Selector bedienbar.Die drei Zustände
nicht erreichbarkein Workspace mehrbeschädigtBewusst drei verschiedene Formulierungen, weil sie zu drei verschiedenen Handlungen führen. Ein defekter Eintrag wird gedämpft, bleibt aber anklickbar und verschwindet nie automatisch — meist fehlt nur gerade das Laufwerk, und ein Klick versucht es schlicht erneut. Damit ist „Stick wieder eingesteckt" ohne eigenen Knopf abgedeckt.
Nebenbei
OpenErroristClone + PartialEqgeworden, damit er in einem Signal leben kann;Ioträgt die Meldung jetzt alsStringstatt alsio::Error, der beides nicht kann. Dazu einebadge_class()für die CSS-Zuordnung.tokioist mit dem Featurertexplizit dazugekommen und bringt keine neuen Pakete ins Lockfile — es lag überdioxus-desktopbereits vor.Die alten Klassen
.workspace-selector-layoutund.workspace-selector-viewsind weg, ersetzt durch die Struktur aus Variante B.Nicht automatisch geprüft
Das Aussehen. 14 Tests decken die Logik ab, das Rendering nicht — dafür braucht es
dx serve. Der Prototyp aufprototype/selector-uizeigt, wie es aussehen soll.