You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
L-MPV v2.5.0 — Большое обновление: Real-Time AI Upscaling, Улучшенный Дизайн
🎨 Редизайн настроек и эргономики интерфейса
Унифицированный дизайн селекторов: Все активные элементы (чипы хоткеев, плитки моделей нейросетей, пресеты, вкладки, темы, кнопки визуализатора) приведены к единому стандарту. Добавлена рамка 1.5px solid var(--accent), внутреннее и внешнее свечение box-shadow inset 1.5px, фоновая тонировка rgba(var(--accent-rgb), 0.16) и контрастный текст
Глубина и объем: Карточкам внешнего вида, палитрам и сворачиваемым аккордеонам добавлена парящая тень (box-shadow: 0 4px 14px) и полупрозрачная тематическая подложка rgba(255, 255, 255, 0.025), просвечивающая цвет выбранной темы. Раскрытые заголовки секций получили выразительную тень и аккуратный нижний разделитель
Эргономика сетки: Блок настроек интерфейса разделен на 3 колонки (Скругление, Масштаб, Шрифты) со строгим стандартом высоты заголовков — 22px. Карточки выбора стиля панели управления избавлены от круглых радио-индикаторов, а интерактивное мини-превью плеера увеличено до 148x64 px.
Премиальные ползунки:
Внедрен тонкий слайдер прозрачности (ui-premium-slider) с высотой трека 3px, свечением и динамической заливкой акцентным цветом. Отступы (от надписи до слайдера и до процентов) идеально отцентрированы — строго по 14px.
Разработан кастомный компонент VerticalSlider для масштаба и скругления. Он предотвращает вылезание бегунка за границы, изолирован в центрированном flex-контейнере 20px и имеет плавную интерактивную анимацию (scale 1.25 с неоновым акцентом), синхронизированную с горизонтальными слайдерами. Текущие числовые значения теперь вынесены прямо в шапку карточек.
Zero Layout Shift: Полностью устранен сдвиг макета при выборе опций в настройках. Появление и скрытие кнопок сброса переведено на плавную CSS-анимацию (opacity, scale, visibility) без пересборки DOM. Под кнопку сброса зарезервировано постоянное место (26x22px).
🖱️ Продвинутый редактор контекстного меню (ПКМ)
Drag-and-Drop конфигуратор (ContextMenuSettingsTab): Внедрен стек @dnd-kit (core, sortable, utilities) для создания визуального двухколоночного редактора меню с поддержкой тач-событий, добавлением/удалением разделителей и сбросом к дефолту.
Новые разделы в меню:
Пресеты: динамический список пользовательских и встроенных пресетов с переключением в реальном времени.
Апскейлинг: список доступных моделей с переключением режимов и слотов.
Кнопки панели: быстрое управление видимостью отдельных кнопок нижней панели.
Портативность бэкенда: Конфигурация меню (contextMenuLayout) сохраняется строго локально в config/context_menu.json без использования системного реестра. Добавлены команды get_context_menu_layout и save_context_menu_layout в Tauri.
Архитектура: Создан модульный реестр MENU_ITEM_REGISTRY, добавлена валидация схемы раскладки. Динамическая сборка меню теперь работает за O(1) благодаря поиску через структуру Map.
⏱️ Элементы управления и вкладка «Общие»
Новые позиции времени воспроизведения: Добавлены 3 новых стиля позиционирования (оформлены в компактную сетку 3x2 в настройках):
Плавающий стеклянный бейдж по центру над таймлайном (timeline_floating_center).
Справа в тулбаре перед служебными кнопками (toolbar_right).
В верхнем заголовке окна (Titlebar) слева от кнопок окна (titlebar)
Фича: При выборе позиций вне полосы, таймлайн автоматически раскрывается на 100% ширины.
Генеральная уборка вкладки «Общие» (GeneralSettingsTab): 7 мелких разрозненных аккордеонов заменены на 3 крупные логические категории, которые теперь стилизованы под единый дизайн карточек и открыты по умолчанию:
Воспроизведение и окна: сегментный селектор окончания видео, Multi-instance, авто-скрытие UI сверху в полном экране.
Аудиодорожки и субтитры: автоподхват из папки, авто-переключение, Drag & Drop загрузка (хотлоад), сохранение извлеченных дорожек.
Скриншоты и медиатека: выбор папки сохранения через проводник, подсказки по горячим клавишам (S / Shift+S), сброс к дефолту.
⚙️ Глубокая оптимизация и багфиксы
Тотальный аудит утечек памяти: Обеспечена строгая очистка всех таймеров (clearTimeout), слушателей событий (removeEventListener), IPC-подписок Tauri (unlisten), а также циклов cancelAnimationFrame Canvas и ResizeObserver. Константа SETTINGS_TABS вынесена на уровень модуля, наборы данных мемоизированы через useMemo.
Безопасность VerticalSlider: Компонент обернут в React.memo с useCallback. Добавлена защита от деления на ноль, точный расчет дробного шага (0.05) и поддержка клавиатурной навигации стрелками (a11y).
Защита localStorage: В слайдерах добавлена фильтрация избыточных вызовов onChange при микро-движениях курсора, что предотвращает лавину сохранений в локальное хранилище.
Исправление багов Drag-and-Drop: Внедрен компонент ScrollSync для мгновенного обновления геометрии dnd-kit через requestAnimationFrame при автоскролле вверх/вниз. Разработана прецизионная 1D-стратегия коллизий на базе getClientRect (ignoreTransform: true) для исключения искажений от временных CSS-анимаций.