Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,20 @@ Bump `AppSettings.CurrentSchemaVersion` and add a step to `SettingsMigrations` w
stay left to right. Light/dark surface colours are theme dictionaries in `Styles/Soft.axaml`; a user's
`theme.json` (`CustomTheme`, see [CUSTOM-THEMES.md](CUSTOM-THEMES.md)) overrides them with theme dictionaries in
application resources, which are searched first.
- Window zoom (`Services/UiZoom`): Theme → *Window size* (− / + and *Reset*), and in any tracked window the
platform's command key (`HotkeyConfiguration.CommandModifiers`: Ctrl, Cmd on macOS) with the mouse wheel, plus /
minus (Shift allowed, Alt not: AltGr is Ctrl + Alt) or 0 for 100 %. 70–180 % in 10 % steps, every window at once.
`UiZoom.Track(window)` wraps the window's content in a `LayoutTransformControl`, so layouts see the room they really
have. Small wheel deltas (touchpads, smooth wheels, pinching on a Windows touchpad) add up to one step per whole notch.
Windows that can't be resized grow with the zoom (their designed width × the zoom) up to their screen, cap their
height to it and scroll; the engine setup keeps itself on screen and scrolls its own list (`fitsItself`).
Tracked: the main window, the preset, group, rename and merge-order editors, the engine setup, LibreOffice options,
close, sponsor, what's new and update-progress windows and `WindowService`'s message dialog. Not tracked, so at
100 %: the donut (it has its own size), the toast and the corner notices (update, engine update, feedback, format
request, elevation), which are placed in a screen corner like system notifications, and the crop overlay, whose
wheel zooms the crop. Drop-down lists, context menus and tooltips open in their own popup windows outside the
transform and stay at 100 % too. The size is `UiScale` in settings.json (1 when missing, so no schema step); it is
written by `UserDataStore.SaveUiScale` 0.6 s after the last change (and on exit), without raising `SettingsChanged`.

## "What's new" slides

Expand Down
14 changes: 14 additions & 0 deletions src/Filee.App/App.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,19 @@ private void Start(IClassicDesktopStyleApplicationLifetime desktop)
var loc = AppHost.Get<LocalizationService>();
loc.Attach(this);
ApplySettings(store.Settings);
// Window zoom: set once here, not with the other settings, since the zoom saves itself (UiZoom) without
// raising SettingsChanged.
UiZoom.Configure(store.Settings.UiScale, scale =>
{
try
{
store.SaveUiScale(scale);
}
catch (Exception ex) when (ex is IOException or UnauthorizedAccessException)
{
log.LogWarning(ex, "Could not remember the window zoom");
}
});
// Every engine's availability, checked once off the UI thread: the first donut or drop otherwise starts
// every engine's check (FFmpeg -version, folder searches) on the UI thread and freezes it meanwhile.
_ = AppHost.Get<ConverterCatalog>().CheckInBackgroundAsync();
Expand Down Expand Up @@ -150,6 +163,7 @@ private void Start(IClassicDesktopStyleApplicationLifetime desktop)

desktop.Exit += (_, _) =>
{
UiZoom.Flush();
watchdog.Dispose();
AppHost.Get<MemoryTrimmer>().Dispose();
AppHost.Get<TriggerService>().Dispose();
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -665,6 +665,11 @@
"theme.donut_opacity": "شفافية شريط الأدوات الدائري",
"theme.reduce_motion": "تقليل الرسوم المتحركة",
"theme.reduce_motion_hint": "موصى به للحواسيب القديمة. يعطّل الانتقالات وحركة ارتداد الشريط الدائري.",
"theme.window_size": "حجم النوافذ",
"theme.window_size_smaller": "أصغر",
"theme.window_size_larger": "أكبر",
"theme.window_size_reset": "إعادة تعيين",
"theme.window_size_hint": "يكبّر كل ما في نوافذ Filee أو يصغّره. في أي نافذة، يؤدي {0} + عجلة الفأرة و{0} + زائد / ناقص الأمر نفسه، ويعيد {0} + 0 الحجم إلى 100%.",
"theme.preview": "معاينة",
"engines.title": "محركات التحويل",
"engines.description": "يختار Filee أفضل محرك متاح لكل تحويل.\nإذا أمكن لعدة محركات تنفيذ المهمة نفسها، تكون الأولوية للأعلى في القائمة.",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,11 @@
"theme.donut_opacity": "Donut toolbar opacity",
"theme.reduce_motion": "Reduce animations",
"theme.reduce_motion_hint": "Recommended for older PCs. Turns off transitions and the donut's bounce.",
"theme.window_size": "Window size",
"theme.window_size_smaller": "Smaller",
"theme.window_size_larger": "Larger",
"theme.window_size_reset": "Reset",
"theme.window_size_hint": "Makes everything in Filee's windows larger or smaller. In any window, {0} + mouse wheel and {0} + plus / minus do the same, and {0} + 0 goes back to 100%.",
"theme.preview": "Preview",

"engines.title": "Conversion engines",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -665,6 +665,11 @@
"theme.donut_opacity": "Opacidad del menú circular",
"theme.reduce_motion": "Reducir las animaciones",
"theme.reduce_motion_hint": "Recomendado para PC antiguos. Desactiva las transiciones y el rebote del menú circular.",
"theme.window_size": "Tamaño de las ventanas",
"theme.window_size_smaller": "Más pequeño",
"theme.window_size_larger": "Más grande",
"theme.window_size_reset": "Restablecer",
"theme.window_size_hint": "Agranda o reduce todo en las ventanas de Filee. En cualquier ventana, {0} + rueda del ratón y {0} + más / menos hacen lo mismo, y {0} + 0 vuelve al 100 %.",
"theme.preview": "Vista previa",
"engines.title": "Motores de conversión",
"engines.description": "Filee elige el mejor motor disponible para cada conversión.\nCuando varios pueden hacer el mismo trabajo, gana el que está más arriba.",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,11 @@
"theme.donut_opacity": "Opacité du menu circulaire",
"theme.reduce_motion": "Réduire les animations",
"theme.reduce_motion_hint": "Recommandé pour les PC anciens. Désactive les transitions et le rebond du menu circulaire.",
"theme.window_size": "Taille des fenêtres",
"theme.window_size_smaller": "Plus petit",
"theme.window_size_larger": "Plus grand",
"theme.window_size_reset": "Réinitialiser",
"theme.window_size_hint": "Agrandit ou réduit tout le contenu des fenêtres de Filee. Dans n'importe quelle fenêtre, {0} + molette de la souris et {0} + plus / moins font de même, et {0} + 0 revient à 100 %.",
"theme.preview": "Aperçu",

"engines.title": "Moteurs de conversion",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/hi.json
Original file line number Diff line number Diff line change
Expand Up @@ -665,6 +665,11 @@
"theme.donut_opacity": "डोनट टूलबार की अपारदर्शिता",
"theme.reduce_motion": "एनिमेशन कम करें",
"theme.reduce_motion_hint": "पुराने PC के लिए अनुशंसित। ट्रांज़िशन और डोनट की उछाल बंद कर देता है।",
"theme.window_size": "विंडो का आकार",
"theme.window_size_smaller": "छोटा",
"theme.window_size_larger": "बड़ा",
"theme.window_size_reset": "रीसेट करें",
"theme.window_size_hint": "Filee की विंडो में सब कुछ बड़ा या छोटा दिखाता है। किसी भी विंडो में {0} + माउस व्हील और {0} + प्लस / माइनस से भी यही होता है, और {0} + 0 से वापस 100% हो जाता है।",
"theme.preview": "प्रीव्यू",
"engines.title": "कन्वर्ज़न इंजन",
"engines.description": "Filee हर कन्वर्ज़न के लिए उपलब्ध सबसे अच्छा इंजन चुनता है।\nजब कई इंजन एक ही काम कर सकते हैं, तो ऊपर वाला चुना जाता है।",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -665,6 +665,11 @@
"theme.donut_opacity": "ドーナツメニューの不透明度",
"theme.reduce_motion": "アニメーションを減らす",
"theme.reduce_motion_hint": "古いPCにおすすめです。画面切り替え時のアニメーションと、ドーナツメニューの弾む動きを無効にします。",
"theme.window_size": "ウィンドウのサイズ",
"theme.window_size_smaller": "小さく",
"theme.window_size_larger": "大きく",
"theme.window_size_reset": "リセット",
"theme.window_size_hint": "Filee のウィンドウ内のすべてを大きく、または小さく表示します。どのウィンドウでも {0} + マウスホイール、{0} + プラス / マイナスで同じ操作ができ、{0} + 0 で 100% に戻ります。",
"theme.preview": "プレビュー",
"engines.title": "変換エンジン",
"engines.description": "Fileeは変換ごとに、利用可能な最適なエンジンを選びます。\n同じ変換ができるエンジンが複数ある場合は、一覧で上にあるものが優先されます。",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,11 @@
"theme.donut_opacity": "원형 툴바 불투명도",
"theme.reduce_motion": "애니메이션 줄이기",
"theme.reduce_motion_hint": "저사양 PC에 권장해요. 전환 효과와 도넛의 튕김 효과를 꺼요.",
"theme.window_size": "창 크기",
"theme.window_size_smaller": "작게",
"theme.window_size_larger": "크게",
"theme.window_size_reset": "초기화",
"theme.window_size_hint": "Filee 창의 모든 것을 크게 또는 작게 보여 줘요. 어느 창에서든 {0} + 마우스 휠, {0} + 더하기 / 빼기로도 바꿀 수 있고, {0} + 0을 누르면 100%로 돌아가요.",
"theme.preview": "미리보기",

"engines.title": "변환 엔진",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/ne.json
Original file line number Diff line number Diff line change
Expand Up @@ -665,6 +665,11 @@
"theme.donut_opacity": "डोनट टुलबार अपारदर्शिता",
"theme.reduce_motion": "एनिमेसन कम गर्नुहोस्",
"theme.reduce_motion_hint": "पुराना कम्प्युटरहरूका लागि सिफारिस गरिन्छ। ट्रान्जिसन र डोनटको बाउन्स बन्द गर्दछ।",
"theme.window_size": "विन्डोको आकार",
"theme.window_size_smaller": "सानो",
"theme.window_size_larger": "ठूलो",
"theme.window_size_reset": "रिसेट गर्नुहोस्",
"theme.window_size_hint": "Filee का विन्डोहरूमा सबै कुरा ठूलो वा सानो देखाउँछ। जुनसुकै विन्डोमा {0} + माउस ह्वील र {0} + प्लस / माइनसले पनि यही गर्छ, र {0} + 0 ले 100% मा फर्काउँछ।",
"theme.preview": "पूर्वावलोकन",
"engines.title": "रूपान्तरण इन्जिनहरू",
"engines.description": "Filee ले प्रत्येक रूपान्तरणका लागि उपलब्ध उत्तम इन्जिन छान्दछ।\nजब धेरैले उही काम गर्न सक्छन्, माथि भएको इन्जिनले प्राथमिकता पाउँछ।",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,11 @@
"theme.donut_opacity": "Krycie paska-pierścienia",
"theme.reduce_motion": "Ogranicz animacje",
"theme.reduce_motion_hint": "Zalecane na starszych komputerach. Wyłącza przejścia i odbijanie pierścienia.",
"theme.window_size": "Rozmiar okien",
"theme.window_size_smaller": "Mniejsze",
"theme.window_size_larger": "Większe",
"theme.window_size_reset": "Resetuj",
"theme.window_size_hint": "Powiększa lub pomniejsza całą zawartość okien Filee. W każdym oknie to samo robią {0} + kółko myszy i {0} + plus / minus, a {0} + 0 przywraca 100%.",
"theme.preview": "Podgląd",

"engines.title": "Silniki konwersji",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,11 @@
"theme.donut_opacity": "Opacidade do menu circular",
"theme.reduce_motion": "Reduzir animações",
"theme.reduce_motion_hint": "Recomendado para PCs mais antigos. Desliga as transições e o salto do menu.",
"theme.window_size": "Tamanho das janelas",
"theme.window_size_smaller": "Menor",
"theme.window_size_larger": "Maior",
"theme.window_size_reset": "Redefinir",
"theme.window_size_hint": "Deixa tudo nas janelas do Filee maior ou menor. Em qualquer janela, {0} + roda do mouse e {0} + mais / menos fazem o mesmo, e {0} + 0 volta para 100%.",
"theme.preview": "Prévia",

"engines.title": "Motores de conversão",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,11 @@
"theme.donut_opacity": "Непрозрачность кругового меню",
"theme.reduce_motion": "Меньше анимации",
"theme.reduce_motion_hint": "Рекомендуется для старых компьютеров. Отключает переходы и подпрыгивание кругового меню.",
"theme.window_size": "Размер окон",
"theme.window_size_smaller": "Меньше",
"theme.window_size_larger": "Больше",
"theme.window_size_reset": "Сбросить",
"theme.window_size_hint": "Увеличивает или уменьшает всё в окнах Filee. В любом окне то же делают {0} + колесо мыши и {0} + плюс / минус, а {0} + 0 возвращает 100%.",
"theme.preview": "Предпросмотр",

"engines.title": "Движки конвертации",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/th.json
Original file line number Diff line number Diff line change
Expand Up @@ -665,6 +665,11 @@
"theme.donut_opacity": "ความทึบแสงของแถบโดนัท",
"theme.reduce_motion": "ลดการเคลื่อนไหว (แอนิเมชัน)",
"theme.reduce_motion_hint": "แนะนำสำหรับคอมพิวเตอร์รุ่นเก่า จะปิดเอฟเฟกต์การเปลี่ยนผ่านและการเด้งของโดนัท",
"theme.window_size": "ขนาดหน้าต่าง",
"theme.window_size_smaller": "เล็กลง",
"theme.window_size_larger": "ใหญ่ขึ้น",
"theme.window_size_reset": "รีเซ็ต",
"theme.window_size_hint": "ขยายหรือย่อทุกอย่างในหน้าต่างของ Filee ในหน้าต่างใดก็ได้ {0} + ล้อเมาส์ และ {0} + บวก / ลบ ก็ทำได้เหมือนกัน ส่วน {0} + 0 จะกลับไปที่ 100%",
"theme.preview": "ตัวอย่าง",
"engines.title": "เครื่องมือแปลงไฟล์",
"engines.description": "Filee จะเลือกเครื่องมือที่ดีที่สุดที่พร้อมใช้งานสำหรับการแปลงแต่ละครั้ง\nหากมีหลายเครื่องมือที่ทำหน้าที่เดียวกันได้ เครื่องมือที่อยู่อันดับสูงกว่าจะถูกนำมาใช้",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,11 @@
"theme.donut_opacity": "环形工具栏不透明度",
"theme.reduce_motion": "减少动画",
"theme.reduce_motion_hint": "适合配置较低的电脑。关闭过渡效果和圆环的弹跳效果。",
"theme.window_size": "窗口大小",
"theme.window_size_smaller": "缩小",
"theme.window_size_larger": "放大",
"theme.window_size_reset": "重置",
"theme.window_size_hint": "放大或缩小 Filee 窗口中的所有内容。在任意窗口中,{0} + 鼠标滚轮和 {0} + 加号 / 减号也能调整,{0} + 0 恢复为 100%。",
"theme.preview": "预览",

"engines.title": "转换引擎",
Expand Down
5 changes: 5 additions & 0 deletions src/Filee.App/Assets/i18n/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,11 @@
"theme.donut_opacity": "環形工具列不透明度",
"theme.reduce_motion": "減少動畫",
"theme.reduce_motion_hint": "適合效能較低的電腦。關閉轉場效果和圓環的彈跳效果。",
"theme.window_size": "視窗大小",
"theme.window_size_smaller": "縮小",
"theme.window_size_larger": "放大",
"theme.window_size_reset": "重設",
"theme.window_size_hint": "放大或縮小 Filee 視窗中的所有內容。在任何視窗中,{0} + 滑鼠滾輪和 {0} + 加號 / 減號也能調整,{0} + 0 會恢復為 100%。",
"theme.preview": "預覽",

"engines.title": "轉換引擎",
Expand Down
Loading
Loading