Refactor settings management in PLib video library manager. Replace dialog-based settings with a single-panel overlay for improved user experience. Update MainWindow and SettingsView to support new settings panel, and adjust ViewModels accordingly. Enhance README.md to reflect these changes.
This commit is contained in:
@@ -9,8 +9,9 @@
|
||||
- Метаданные (длительность, разрешение, кодек) через ffprobe.
|
||||
- Постеры кадром из видео через ffmpeg, с кэшем на диске.
|
||||
- Виртуализированная сетка карточек, ленивая загрузка превью, поиск и сортировка.
|
||||
- Окно настроек: папки библиотеки (с удалением), параметры превью и сканирования, тема,
|
||||
очистка кэша превью. Всё пишется в `settings.json` и подхватывается без перезапуска.
|
||||
- Настройки — выдвижной панелью в том же окне: папки библиотеки (с удалением), параметры
|
||||
превью и сканирования, тема, очистка кэша. Всё пишется в `settings.json` и подхватывается
|
||||
без перезапуска.
|
||||
- Светлая, тёмная и системная темы; выбор запоминается.
|
||||
- Клик или Enter по карточке — открыть в системном плеере, правая кнопка — контекстное меню.
|
||||
|
||||
@@ -62,7 +63,10 @@ dotnet test
|
||||
декодированием в нужную ширину. Память зависит от размера окна, а не от размера библиотеки.
|
||||
- **Scope на операцию.** `DbContext` живёт ровно одну операцию — ViewModel берёт
|
||||
`IServiceScopeFactory` и создаёт scope на каждый вызов.
|
||||
- **Настройки — рабочая копия.** Диалог правит снимок `AppSettings` и записывает его целиком
|
||||
- **Одно окно.** Настройки — панель поверх сетки, а не второе окно: библиотека остаётся
|
||||
видна, в alt-tab ничего не добавляется, и приложение остаётся переносимым на
|
||||
`ISingleViewApplicationLifetime`, где `ShowDialog` попросту не существует.
|
||||
- **Настройки — рабочая копия.** Панель правит снимок `AppSettings` и записывает его целиком
|
||||
только по «Сохранить», так что отмена не оставляет следов. Пересканирование запускается
|
||||
только если изменилось то, что влияет на состав библиотеки, — смена темы или ширины кадра
|
||||
его не вызывает.
|
||||
|
||||
Reference in New Issue
Block a user