Aktionen
Feature #86
geschlossen
JH
Export als Menü, Export und Löschen mehrerer Trainings, Fortschrittsdialog
Feature #86:
Export als Menü, Export und Löschen mehrerer Trainings, Fortschrittsdialog
Beginn:
Abgabedatum:
% erledigt:
0%
Geschätzter Aufwand:
Gefunden in Version:
Beschreibung
Ziel¶
Die Werkzeugleiste der Trainingsübersicht war mit vier fast gleich aussehenden Export-Buttons überladen, und die Exporte bezogen sich immer nur auf ein Training. Wer viele Trainings z. B. zu Strava oder Garmin bringen will, musste jedes einzeln exportieren.
Umsetzung¶
- Trainingsübersicht: Die Buttons "Export (HRM)", "Export (CSV)", "Export (CSV) alle" und "Export (TCX)" sind zu einem Button Export mit Menü zusammengefasst: TCX, HRM, CSV (jeweils für die Auswahl), Trenner, "CSV alle" (Übersichtstabelle, unverändert).
- Menüeinträge: Statt der bunten Bitmap-Icons zeigt jeder Eintrag einen Export-Pfeil mit dem Formatkürzel (TCX, HRM, CSV) darunter (neues Control
ExportFormatIcon, Farbe folgt dem Skin). - Schreibweise: Formatbezeichnungen einheitlich in Großbuchstaben (HRM, CSV, TCX) in Menü, Tooltips und Meldungen; die Dateiendungen (.hrm, .csv, .tcx) bleiben klein.
- Mehrfachauswahl: TCX, HRM und CSV beziehen sich auf alle markierten Trainings (Strg+A, Umschalt, Strg+Klick). Bei einem Training bleibt alles wie bisher (Dateidialog). Bei mehreren wird ein Ordner gewählt (Titel nennt die Anzahl) und pro Training eine Datei
Training<yyyyMMdd_HHmm>.<Endung>geschrieben; bei gleichen Namen oder vorhandenen Dateien wird(2)usw. angehängt, nichts wird überschrieben. - Löschen löscht alle markierten Trainings (Rückfrage mit Anzahl). Fortsetzen, Leistungsprofil und Details sind nur bei genau einem markierten Training aktiv. Die Buttons werden jetzt auch beim Aufheben der Markierung deaktiviert (bisher blieben sie aktiv).
- Fortschritt: Export und Löschen mehrerer Trainings sperren das Hauptfenster und zeigen den Wait-Cursor; dauert der Vorgang länger als 2 Sekunden, erscheint ein Fortschrittsdialog ("Training 37 von 250") mit Abbrechen. Nach einem Abbruch meldet ein Hinweis den Stand; bereits exportierte Dateien bzw. gelöschte Trainings bleiben. Alles läuft weiter im UI-Thread (kein Zugriff auf den DbContext aus mehreren Threads); das Löschen erfolgt dafür in Blöcken zu 5 Trainings.
- Trainingsdetail: Der Button "Export (TCX)" wird durch denselben Export-Button ersetzt, mit TCX, HRM und CSV für das angezeigte Training.
- Markierung: Die Markierung in der Trainingsliste bleibt sichtbar, wenn das Grid den Fokus verliert (Klick auf einen Button oder geöffnetes Menü); WPF nahm dafür bisher ein kaum erkennbares Grau.
- Menüs ohne Öffnen-Animation: Das ContextMenu-Template von WPF-UI schob den Rahmen beim Öffnen per
TranslateTransform.Yvon -90 auf 0 (wirkte wie ein langsames Einblenden, auch im Spalten-Menü).App.xamlenthält jetzt einen eigenen ContextMenu-Stil mit demselben Template (Rahmen, Schatten,EffectThicknessDecorator) ohne diese Animation; die Menüeinträge behalten den WPF-UI-Stil.
Technik¶
IDialogService.CreateFolderDialog(Ordnerauswahl) undIDialogService.BeginProgress/IProgressScope(Fortschritt, Abbruch); neuesProgressWindowim Stil desMessageBoxWindow.TrainingExportService.CreateUniqueFileName(mit Unit-Tests).- Die drei nahezu identischen Export-Methoden der ViewModels sind jeweils auf einen gemeinsamen Ablauf zurückgeführt.
Aktionen