From fdd0f9ed2112f9cfa58ab90c6c4b0b448d87b7b1 Mon Sep 17 00:00:00 2001 From: KnifeLemon Date: Mon, 19 Oct 2026 08:22:59 +0900 Subject: [PATCH 1/3] Filee 1.12.0 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 64 +++++++++++++++++++++++++++++++++++++++++++ Directory.Build.props | 2 +- 2 files changed, 65 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59f5fd79..a49fe705 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,70 @@ one-line summaries in the user's language (`ko`, `en`, `zh`; a line per change, - `recommended`: bug fixes. The card shows once per version. - `optional`: new features only. No card, the sidebar button only. +## 1.12.0 + + + +### New + +- **PDF → PowerPoint** (issue #96). "PPTX (slides)" puts a picture of each PDF page on its own slide, at the page's + size, with the page's text in the speaker notes. The slides look exactly like the PDF but aren't editable; PDF → DOCX + is the editable route. It takes TIFF's place on the PDF donut when you never changed that donut. +- **Compress PDF** (issue #103). The new "Compress PDF" preset, and a *Compress* option on every PDF → PDF preset, make + a PDF smaller while it stays a PDF: pictures shown larger than needed are scaled down (Smallest 72 dpi, Balanced + 150 dpi, High quality 300 dpi), photos are saved again as JPEG, and everything else is compressed losslessly. Text, + fonts, links, bookmarks and forms stay. A PDF that can't be made smaller is left as it was, and the toast says so. + With Ghostscript installed, *Also try Ghostscript* keeps the smaller of the two results. +- **Every frame of a video** (issue #63, by @pleguen). "Extract frames (PNG)" and "Extract frames (JPG)", or *Save + every frame of a video* in a PNG or JPG preset, write each frame (or every Nth) into a folder next to the video. A + video that would give more than 100,000 pictures or fill the disk is refused before it starts. Add the presets to a + donut in Settings → Toolbar. +- **Hardware video encoding** (issue #100). *Use hardware acceleration (graphics chip)* in a video preset encodes + H.264 and HEVC with NVENC, Quick Sync, AMF, VideoToolbox or VA-API: much faster and lighter on power, slightly larger + at the same quality. Without a usable chip, the video is encoded as before. Off by default. +- **Closing the window** (issue #111). The first time you close the main window, Filee asks whether to keep running in + the tray or quit, with "Don't ask again". Settings → General → "When I close the window" changes it later. +- **Request a format** (issue #117). When you bring files Filee can't read to the donut, or a conversion fails for + that reason, *Request this format* opens a GitHub form with the extension filled in (only the extension, never a + file name). Encrypted or copy-protected (DRM) files can't be converted, whatever their format. +- **Ubuntu 22.04** (issue #102). The Linux packages run on Ubuntu 22.04 and newer again, global gestures included. + +### Improved + +- **Memory** (issue #119). Half a minute after the last conversion Filee gives the memory back: Task Manager shows it + at a few tens of MB in the tray instead of several hundred. Closing the main window releases it; it opens again where + and on the page you left it. +- **Running as administrator** (issue #99). Explorer can't drop files on a Filee that runs as administrator or use its + menu. Filee now notices it, says so on Home, and offers *Restart without administrator rights*. A second launch that + can't reach the running Filee says why instead of quitting silently. + +### Fixed + +- SVGs with an unescaped "&" or HTML entities such as ` ` in their text (often from AI tools) failed with "An + error occurred while parsing EntityName" (issue #120). +- Pressing Ctrl+Space twice in a dropdown, or Ctrl+clicking the selected item, showed an error (issue #107). +- calibre couldn't be downloaded on macOS and Linux: it now comes from calibre's own server. + ## 1.11.0 $(NoWarn);CS1591;CS1573 - 1.11.0 + 1.12.0 Filee Filee contributors Copyright (c) Filee contributors From 4c485d3d9ba4e2617215351e0d5ef5cbc841fd35 Mon Sep 17 00:00:00 2001 From: KnifeLemon Date: Mon, 19 Oct 2026 10:13:07 +0900 Subject: [PATCH 2/3] 1.12.0: Polish, other file managers, calibre e-book PDFs, long e-book and gesture retry fixes Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a49fe705..5130148e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,18 +22,21 @@ ko: 동영상의 모든 프레임을 그림으로 저장할 수 있어요 ko: 그래픽 칩으로 동영상을 더 빠르게 인코딩할 수 있어요 ko: 변환이 끝나면 메모리를 돌려줘서 트레이에서 훨씬 가벼워요 ko: 창을 닫을 때 트레이에 둘지 종료할지 고를 수 있어요 +ko: 폴란드어를 지원해요 ko: 일부 SVG가 변환되지 않던 문제와 드롭다운 오류를 고쳤어요 en: Convert PDF to PowerPoint, or to a smaller PDF en: Save every frame of a video as pictures en: Encode video faster on the graphics chip en: Filee gives memory back after conversions and stays light in the tray en: Choose whether closing the window keeps Filee in the tray or quits +en: Polish translation en: Fixed some SVGs that couldn't be converted and an error in dropdowns zh: 可以将 PDF 转为 PowerPoint,或压缩为更小的 PDF zh: 可以将视频的每一帧保存为图片 zh: 可以用显卡更快地编码视频 zh: 转换结束后会释放内存,在托盘中占用更少 zh: 关闭窗口时可以选择保留在托盘或退出 +zh: 新增波兰语界面 zh: 修复了部分 SVG 无法转换的问题和下拉列表的错误 --> @@ -60,6 +63,11 @@ zh: 修复了部分 SVG 无法转换的问题和下拉列表的错误 that reason, *Request this format* opens a GitHub form with the extension filled in (only the extension, never a file name). Encrypted or copy-protected (DRM) files can't be converted, whatever their format. - **Ubuntu 22.04** (issue #102). The Linux packages run on Ubuntu 22.04 and newer again, global gestures included. +- **Polish** (by @rafek1241). Filee speaks Polish, and picks it when Windows, macOS or Linux does. +- **Other file managers** (issue #124). Gestures set to "File managers and desktop" also start over Files, Directory + Opus, Total Commander, XYplorer, OneCommander, Q-Dir and FreeCommander, not only Explorer. +- **calibre for e-book PDFs** (issue #127). With calibre installed and moved above the HWPX writer in Settings → + Engines, EPUB, MOBI, AZW3 and other e-books become PDFs through calibre, much faster for long books. ### Improved @@ -75,6 +83,9 @@ zh: 修复了部分 SVG 无法转换的问题和下拉列表的错误 - SVGs with an unescaped "&" or HTML entities such as ` ` in their text (often from AI tools) failed with "An error occurred while parsing EntityName" (issue #120). - Pressing Ctrl+Space twice in a dropdown, or Ctrl+clicking the selected item, showed an error (issue #107). +- Long e-books to PDF stopped at 95 % after two minutes (issue #127): the time limit now grows with the text, up to + an hour. +- "Retry gestures" could leave gestures dead while Filee said they were running (by @leishifu666). - calibre couldn't be downloaded on macOS and Linux: it now comes from calibre's own server. ## 1.11.0 From 91bbd9e6a895e67a4d2d0bfc2264467ef4fa4dd4 Mon Sep 17 00:00:00 2001 From: KnifeLemon Date: Mon, 19 Oct 2026 10:37:51 +0900 Subject: [PATCH 3/3] Update notices in every UI language, Polish lines for 1.12.0 The notice read only ko/en/zh lines from a release's hidden block. It now takes any language Filee ships (Polish too); other keys are skipped and those languages show the English lines, as before. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 10 +++++++++- src/Filee.App/Services/ReleaseNotes.cs | 11 +++++++++-- tests/Filee.App.Tests/ReleaseNotesTests.cs | 15 +++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5130148e..61fa8798 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,8 @@ Add a `## ` section before tagging a release. Write what someone using find it, what it does and doesn't do. Start the section with an `` block (hidden on GitHub). The app's update notice shows its level and its -one-line summaries in the user's language (`ko`, `en`, `zh`; a line per change, a language may repeat): +one-line summaries in the user's language (`ko`, `en`, `zh`, `pl`; a line per change, a language may repeat; a language +without lines shows the English ones): - `required`: wrong or lost results, security, Filee not starting. The card shows every time Filee starts. - `recommended`: bug fixes. The card shows once per version. @@ -38,6 +39,13 @@ zh: 转换结束后会释放内存,在托盘中占用更少 zh: 关闭窗口时可以选择保留在托盘或退出 zh: 新增波兰语界面 zh: 修复了部分 SVG 无法转换的问题和下拉列表的错误 +pl: Konwersja PDF do PowerPointa lub do mniejszego PDF +pl: Zapis każdej klatki wideo jako obrazów +pl: Szybsze kodowanie wideo na karcie graficznej +pl: Filee oddaje pamięć po konwersjach i mniej obciąża zasobnik +pl: Wybór, czy zamknięcie okna zostawia Filee w zasobniku, czy je zamyka +pl: Język polski +pl: Naprawiono niektóre pliki SVG, których nie dało się przekonwertować, i błąd w listach rozwijanych --> ### New diff --git a/src/Filee.App/Services/ReleaseNotes.cs b/src/Filee.App/Services/ReleaseNotes.cs index edeb0c43..61cd1ff1 100644 --- a/src/Filee.App/Services/ReleaseNotes.cs +++ b/src/Filee.App/Services/ReleaseNotes.cs @@ -65,9 +65,8 @@ public static ReleaseNote Parse(string version, string? body) "optional" => UpdateLevel.Optional, _ => UpdateLevel.Recommended, }; - else if (key is "ko" or "en" or "zh" or "zh-cn") + else if (LanguageOf(key) is { } language) { - var language = key.StartsWith("zh", StringComparison.Ordinal) ? "zh-CN" : key; if (!summary.TryGetValue(language, out var lines)) summary[language] = lines = []; lines.Add(value); @@ -77,6 +76,14 @@ public static ReleaseNote Parse(string version, string? body) return new ReleaseNote(version, level, summary.ToDictionary(p => p.Key, p => (IReadOnlyList)p.Value)); } + /// + /// The UI language a summary line is for: any language Filee ships ("pl"), with "zh" for Chinese. Null for other + /// keys, which a newer Filee may know. + /// + private static string? LanguageOf(string key) => + key is "zh" ? "zh-CN" + : LocalizationService.Languages.FirstOrDefault(l => l.Code.Equals(key, StringComparison.OrdinalIgnoreCase)).Code; + /// The notes of the releases newer than up to , newest first. public static IReadOnlyList Between(IEnumerable<(string Tag, string? Body)> releases, string current, string latest) { diff --git a/tests/Filee.App.Tests/ReleaseNotesTests.cs b/tests/Filee.App.Tests/ReleaseNotesTests.cs index 8c202834..f13bc97a 100644 --- a/tests/Filee.App.Tests/ReleaseNotesTests.cs +++ b/tests/Filee.App.Tests/ReleaseNotesTests.cs @@ -36,6 +36,21 @@ public void The_hidden_block_gives_the_level_and_a_line_per_change_by_language() Assert.Equal(["Excel page breaks carry over to PDF"], note.In("ja")); // no Japanese: English } + [Fact] + public void Every_language_filee_ships_has_its_lines_and_unknown_ones_are_skipped() + { + var note = ReleaseNotes.Parse("1.12.0", """ + + """); + + Assert.Equal(["Język polski"], note.In("pl")); + Assert.Equal(["Polish translation"], note.In("xx")); // not a Filee language: English + } + [Fact] public void Releases_without_the_block_are_recommended_and_say_nothing() {