Implement theme management and settings dialog in PLib video library manager. Add theme service for light/dark/system themes, integrate settings dialog for user preferences, and update app configuration to include appearance options. Enhance thumbnail caching with new methods for cache size and clearing. Update README.md to reflect new features and settings.
This commit is contained in:
@@ -9,7 +9,9 @@
|
||||
- Метаданные (длительность, разрешение, кодек) через ffprobe.
|
||||
- Постеры кадром из видео через ffmpeg, с кэшем на диске.
|
||||
- Виртуализированная сетка карточек, ленивая загрузка превью, поиск и сортировка.
|
||||
- Светлая и тёмная темы.
|
||||
- Окно настроек: папки библиотеки (с удалением), параметры превью и сканирования, тема,
|
||||
очистка кэша превью. Всё пишется в `settings.json` и подхватывается без перезапуска.
|
||||
- Светлая, тёмная и системная темы; выбор запоминается.
|
||||
- Клик или Enter по карточке — открыть в системном плеере, правая кнопка — контекстное меню.
|
||||
|
||||
## Требования
|
||||
@@ -60,6 +62,10 @@ dotnet test
|
||||
декодированием в нужную ширину. Память зависит от размера окна, а не от размера библиотеки.
|
||||
- **Scope на операцию.** `DbContext` живёт ровно одну операцию — ViewModel берёт
|
||||
`IServiceScopeFactory` и создаёт scope на каждый вызов.
|
||||
- **Настройки — рабочая копия.** Диалог правит снимок `AppSettings` и записывает его целиком
|
||||
только по «Сохранить», так что отмена не оставляет следов. Пересканирование запускается
|
||||
только если изменилось то, что влияет на состав библиотеки, — смена темы или ширины кадра
|
||||
его не вызывает.
|
||||
- **Кэш превью самовосстанавливается.** Диск — ключ `sha256(путь|размер|mtime)`, память — LRU
|
||||
на 256 декодированных битмапов. Сканирование проверяет, что запомненный кадр физически
|
||||
на месте (`IThumbnailGenerator.IsAvailable`), и перерисовывает удалённые; после полного
|
||||
|
||||
Reference in New Issue
Block a user