Die klassische File-Manager-Steuerung (Total Commander / ranger) funktioniert nicht wie erwartet:
Links-Pfeil soll eine Verzeichnisebene nach oben wechseln, tut dies aber nicht.
Rechts-Pfeil soll den markierten Ordner öffnen, hat aber gar kein Binding.
Zusätzlich stürzt die Navigation ab, sobald ein Eintrag ausgewählt und geöffnet wird.
Ursachen (Root Cause Analysis)
Widget-Binding überschreibt Screen-Binding:DataTable bindet die Pfeiltasten selbst (left -> cursor_left, right -> cursor_right). In Textual haben Widget-Bindings Vorrang vor Screen-Bindings. Das Screen-Binding left -> up_level wurde dadurch nie ausgelöst – der Links-Pfeil bewegte nur den (nutzlosen) horizontalen Cursor.
Kein rechts-Binding: Es gab kein Binding, um per Rechts-Pfeil einen Ordner zu öffnen.
_selected() liefert Text statt str: Die erste Spalte wird als rich.Text gerendert; _selected() gab dieses Objekt zurück. _open() ruft dann sel.startswith("↑") auf -> AttributeError: 'Text' object has no attribute 'startswith'. Dadurch schlug jedes Öffnen/Enter fehl.
Fix (umgesetzt, v0.3.0)
Neue Widget-Klasse FileTable(DataTable) in ftptui/app.py, die left -> „eine Ebene hoch" und right -> „öffnen" umbindet (priority=True).
_selected() gibt jetzt die Klartext-Zeichenkette der Namenszelle zurück (cell.plain).
Beide Panele nutzen FileTable.
Betroffen
ftptui/app.py
Status
Behoben in v0.3.0.
## Beschreibung
Die klassische File-Manager-Steuerung (Total Commander / ranger) funktioniert nicht wie erwartet:
- **Links-Pfeil** soll eine Verzeichnisebene nach oben wechseln, tut dies aber nicht.
- **Rechts-Pfeil** soll den markierten Ordner öffnen, hat aber gar kein Binding.
- Zusätzlich stürzt die Navigation ab, sobald ein Eintrag ausgewählt und geöffnet wird.
## Ursachen (Root Cause Analysis)
1. **Widget-Binding überschreibt Screen-Binding:** `DataTable` bindet die Pfeiltasten selbst (`left` -> `cursor_left`, `right` -> `cursor_right`). In Textual haben Widget-Bindings Vorrang vor Screen-Bindings. Das Screen-Binding `left` -> `up_level` wurde dadurch nie ausgelöst – der Links-Pfeil bewegte nur den (nutzlosen) horizontalen Cursor.
2. **Kein rechts-Binding:** Es gab kein Binding, um per Rechts-Pfeil einen Ordner zu öffnen.
3. **`_selected()` liefert `Text` statt `str`:** Die erste Spalte wird als `rich.Text` gerendert; `_selected()` gab dieses Objekt zurück. `_open()` ruft dann `sel.startswith("↑")` auf -> `AttributeError: 'Text' object has no attribute 'startswith'`. Dadurch schlug jedes Öffnen/Enter fehl.
## Fix (umgesetzt, v0.3.0)
- Neue Widget-Klasse `FileTable(DataTable)` in `ftptui/app.py`, die `left` -> „eine Ebene hoch" und `right` -> „öffnen" umbindet (`priority=True`).
- `_selected()` gibt jetzt die Klartext-Zeichenkette der Namenszelle zurück (`cell.plain`).
- Beide Panele nutzen `FileTable`.
## Betroffen
- `ftptui/app.py`
## Status
Behoben in v0.3.0.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Beschreibung
Die klassische File-Manager-Steuerung (Total Commander / ranger) funktioniert nicht wie erwartet:
Ursachen (Root Cause Analysis)
DataTablebindet die Pfeiltasten selbst (left->cursor_left,right->cursor_right). In Textual haben Widget-Bindings Vorrang vor Screen-Bindings. Das Screen-Bindingleft->up_levelwurde dadurch nie ausgelöst – der Links-Pfeil bewegte nur den (nutzlosen) horizontalen Cursor._selected()liefertTextstattstr: Die erste Spalte wird alsrich.Textgerendert;_selected()gab dieses Objekt zurück._open()ruft dannsel.startswith("↑")auf ->AttributeError: 'Text' object has no attribute 'startswith'. Dadurch schlug jedes Öffnen/Enter fehl.Fix (umgesetzt, v0.3.0)
FileTable(DataTable)inftptui/app.py, dieleft-> „eine Ebene hoch" undright-> „öffnen" umbindet (priority=True)._selected()gibt jetzt die Klartext-Zeichenkette der Namenszelle zurück (cell.plain).FileTable.Betroffen
ftptui/app.pyStatus
Behoben in v0.3.0.