Repository navigation
fix(browser): Laufwerkswechsel ohne Hänger, Startseiten vorladen (1.0.9) - #23
Merged
Merged
Conversation
…'s start page navigate_to validates unknown paths in a worker (hint, timeout, newest wins); known/preloaded paths switch at once. Drive roots are probed in the background after startup (local first, throttled, timeout) and the QFileSystemModel is warmed. Tests measure the event loop during a slow switch. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LYHP4Js5ggpzQ78JXWRe5E
|
Welcome! Thanks for your first pull request in this repository. A maintainer will review it soon. Please make sure:
Thanks for contributing. |
Collaborator
Author
|
Review (Zwei-Modell-Regel): Claude Opus 5.5 als Operator. Ursache (navigate_to: isfile/isdir im GUI-Thread, 2,09 s Stillstand) und Fix geprüft: zentrale Validierung im AsyncFs-Worker, neueste Navigation gewinnt, Timeout-Hinweis, gedrosseltes Vorladen der Laufwerks-Startseiten (lokal zuerst). Tests: test_drive_switch 6/6 (auf master 5 rot), Gesamtsuite 566 passed / 1 hostbedingt rot. Folgeaufgabe: bekannte Netz-/Wechsellaufwerkspfade nicht ungeprüft öffnen, sondern Altstand zeigen und im Hintergrund nachprüfen. |
This was referenced Oct 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem (Nutzertest der Test-EXE)
Beim Auswählen/Wechseln von Laufwerken hängt die Oberfläche noch; Wunsch: Startseite jedes Laufwerks vorladen und vorhalten.
Ursache
Alle Wege (Seitenleiste, Adressleiste, Tastatur, Favoriten) enden in
FileBrowser.navigate_to, dasos.path.isfile/isdirauf dem Zielpfad im GUI-Thread ausführte (bei G:/Netz/leerem Kartenleser Sekunden). Messung auf master: Ereignisschleife 2,094 s still.Änderung
navigate_to: Pfade, die als erreichbar bekannt sind (besucht, Vorfahren davon, vorgeladene Laufwerke), wechseln sofort ohne Stat; unbekannte werden im Worker (AsyncFs) geprüft: Hinweis "wird geladen …", alte Ansicht bleibt bedienbar, neuere Navigation hat Vorrang, nach 15 s "Keine Antwort – Laufwerk reagiert nicht".preload_roots: nach dem Start (800 ms) werden die Laufwerks-Wurzeln nacheinander im Worker geprüft (lokale Platten zuerst, dann Wechsel-/Netz-/Cloud viaGetDriveTypeW, 300 ms Abstand, 15 s Timeout); bei Erfolg als bekannt markiert und das QFileSystemModel perfetchMorevorgewärmt.directoryLoaded.Tests
tests/test_drive_switch.py(6): rot auf master (5 failed, 2,094 s Blockade), grün auf Branch (Tick-Abstand 0,05-0,08 s).C:\_Local_DEV\venvs\explorerpro-store(-n 2): vorher (ST1, master 24c2282) 1 failed / 560 passed; nachher 1 failed / 566 passed / 9 skipped. Der eine Fehler ist derselbe host-bedingtetest_four_stalled_reads…(Prozessstart ~1 s bei Timeout 1 s).FileBrowser.ASYNC_VALIDATE=False(sofortige Navigation); der Async-Pfad wird nur von den neuen Tests geprüft.Grenzen: Bekannte Pfade werden nicht erneut geprüft;
QFileSystemModel.setRootPathmacht intern einen Stat (nur für als erreichbar bekannte Pfade). Vorgehaltene Daten sind im Speicher (das Modell zeigt zuvor geladene Ordner aus seinem Cache), keine Persistenz.