From 5920f7a9408a76ce053c35c10b26979295a8718f Mon Sep 17 00:00:00 2001 From: Leonid Pershin Date: Sat, 8 Aug 2026 12:52:59 +0300 Subject: [PATCH] Refactor PLib video library manager's UI to implement a side panel for settings, enhancing accessibility and layout. Update MainWindow and SettingsView to accommodate the new design, ensuring the settings panel integrates seamlessly without overlaying the main content. Revise styles for app bars and status bars for consistency across the application. Update README.md to reflect these UI changes. --- README.md | 13 ++- src/PLib.Desktop/Themes/LibraryStyles.axaml | 79 +++++++-------- src/PLib.Desktop/Themes/Palette.axaml | 102 ++++++++++---------- src/PLib.Desktop/Views/MainWindow.axaml | 49 +++++----- src/PLib.Desktop/Views/SettingsView.axaml | 12 +-- 5 files changed, 125 insertions(+), 130 deletions(-) diff --git a/README.md b/README.md index b4d86fd..64564e9 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ - Метаданные (длительность, разрешение, кодек) через ffprobe. - Постеры кадром из видео через ffmpeg, с кэшем на диске. - Виртуализированная сетка карточек, ленивая загрузка превью, поиск и сортировка. -- Настройки — выдвижной панелью в том же окне: папки библиотеки (с удалением), параметры - превью и сканирования, тема, очистка кэша. Всё пишется в `settings.json` и подхватывается - без перезапуска. +- Настройки — боковой панелью в том же окне (сетка сдвигается, а не перекрывается): папки + библиотеки с удалением, параметры превью и сканирования, тема, очистка кэша. Всё пишется + в `settings.json` и подхватывается без перезапуска. - Светлая, тёмная и системная темы; выбор запоминается. - Клик или Enter по карточке — открыть в системном плеере, правая кнопка — контекстное меню. @@ -63,9 +63,12 @@ dotnet test декодированием в нужную ширину. Память зависит от размера окна, а не от размера библиотеки. - **Scope на операцию.** `DbContext` живёт ровно одну операцию — ViewModel берёт `IServiceScopeFactory` и создаёт scope на каждый вызов. -- **Одно окно.** Настройки — панель поверх сетки, а не второе окно: библиотека остаётся - видна, в alt-tab ничего не добавляется, и приложение остаётся переносимым на +- **Одно окно.** Настройки — колонка макета, а не второе окно и не оверлей: открываясь, она + сдвигает сетку, и та переливается в меньшее число столбцов, оставаясь целиком доступной. + В alt-tab ничего не добавляется, и приложение остаётся переносимым на `ISingleViewApplicationLifetime`, где `ShowDialog` попросту не существует. + Верхняя и нижняя полосы обеих половин заданы одной парой стилей, поэтому разделители + читаются как сплошные линии через всё окно. - **Настройки — рабочая копия.** Панель правит снимок `AppSettings` и записывает его целиком только по «Сохранить», так что отмена не оставляет следов. Пересканирование запускается только если изменилось то, что влияет на состав библиотеки, — смена темы или ширины кадра diff --git a/src/PLib.Desktop/Themes/LibraryStyles.axaml b/src/PLib.Desktop/Themes/LibraryStyles.axaml index f293078..704e87f 100644 --- a/src/PLib.Desktop/Themes/LibraryStyles.axaml +++ b/src/PLib.Desktop/Themes/LibraryStyles.axaml @@ -104,56 +104,57 @@ - + - - - - - - - - + + + + + + + - diff --git a/src/PLib.Desktop/Themes/Palette.axaml b/src/PLib.Desktop/Themes/Palette.axaml index 5e0629c..dff86aa 100644 --- a/src/PLib.Desktop/Themes/Palette.axaml +++ b/src/PLib.Desktop/Themes/Palette.axaml @@ -1,49 +1,53 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/PLib.Desktop/Views/MainWindow.axaml b/src/PLib.Desktop/Views/MainWindow.axaml index 5a47ed0..718bd19 100644 --- a/src/PLib.Desktop/Views/MainWindow.axaml +++ b/src/PLib.Desktop/Views/MainWindow.axaml @@ -9,7 +9,7 @@ Title="PLib — видеотека" Width="1180" Height="760" - MinWidth="640" + MinWidth="1000" MinHeight="420" Background="{DynamicResource PageBackgroundBrush}" WindowStartupLocation="CenterScreen"> @@ -95,24 +95,22 @@ - + + + - + - @@ -122,6 +120,7 @@ -