diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 1eddf2c12..b62b60c44 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -32,7 +32,7 @@ body:
attributes:
label: Filee version
description: Settings → About
- placeholder: "2.1.0"
+ placeholder: "2.2.0"
validations:
required: true
- type: input
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 56864a4c4..26708b2c4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,297 @@ change, a language may repeat; a language without lines shows the English ones):
- `recommended`: bug fixes. The card shows once per version.
- `optional`: new features only. No card, the sidebar button only.
+## 2.2.0
+
+
+
+### New
+
+- **Edit pictures** (issue #584). A new slice on the front of the images donut, after Half size, opens the pictures you
+ drop on it in a small window: **Convert to** (the same format, PNG, JPG, WEBP, AVIF, HEIC once FFmpeg is downloaded,
+ GIF, BMP, TIFF or ICO), **Resize** (original size, percent, long edge or width, with the first picture's size before
+ and after), **Rotate**, **Flip**, **Grayscale**, and **Quality** for JPG, WEBP, AVIF and HEIC. Enter converts, Esc
+ closes. The results are ordinary conversions named `{name}_edited`, and the window opens with your last choices next
+ time. Kept in the same format, a picture Filee can only read (camera RAW, DICOM …) is written as PNG. The window
+ doesn't offer the new exact width × height or minimum short edge; those are in the preset editor. An updated library
+ gets the slice after Half size when that slice is still on the front and the front has room.
+- **Pixelate / blur.** The slice after Edit pictures covers parts of a picture (names, faces, phone numbers in a
+ screenshot) before you share it. Drag on the picture to draw a frame, as many as you need, and move or size them as
+ in the Crop window. Choose **Pixelate** or **Blur** and a strength. **Enter** saves, **Esc** closes, **Delete**
+ removes the selected frame, **R** clears them all, **P** / **B** switch the cover, **+** / **−** change the strength,
+ and Ctrl+Z / Ctrl+Y undo and redo. With several pictures, **Hide & Next** and **Skip** go through them, and the
+ frames carry on to the next picture. Each picture is saved as `{name}_hidden` in its own format (PNG for one Filee can
+ only read). The covered parts can't be brought back from the result: pixelate averages squares and blur averages
+ before it blurs, both at least 2 % of the picture's shorter side, and the small previews a file keeps of the original
+ (EXIF thumbnail, Photoshop and XMP previews) are removed. Animated and multi-page pictures can't be opened. An
+ updated library gets it on the front when there's room, else at the end of the back face.
+- **Merge images** (issue #645). Several pictures become one, one under another or side by side: the front and back of
+ an ID card as one JPG to upload. Drop two or more pictures on the slice and the merge order window opens with a
+ layout card: **Top to bottom** or **Side by side**, **Same width** (**Same height**) so the edges line up, a **Gap**
+ in pixels, and a **Background** colour or **Transparent** (white for JPG). Your choices are kept in the preset. The
+ result is named after the first picture, `{name}_merged`, in its format (PNG when Filee can only read it), and the
+ preset's resize, quality and size limit apply to it. A merge over 200 megapixels is refused with its size. The slice
+ is on the back of the images donut before Merge PDF, in GIF's place; GIF stays in the preset list and on the video
+ donut. An updated library gets it in a free slot of that face, else in GIF's place, unless you laid the face out
+ without GIF.
+- **Crop** (issue #542, by @cre8ive-marketing). The aspect dial has a **5:4** slice, which is **4:5** (Instagram's
+ portrait size) on an upright picture, and a **custom** slice after 16:9: type W and H beside the ratio button
+ (`1080` × `1350` shows as 4:5; only the ratio counts, not the pixels). The ratio you pick now carries on to the next
+ pictures of the batch, as large as it fits and centred; **R** goes back to Free.
+- **Exact size and minimum short edge.** The resize list in the preset editor has two more choices:
+ - **Set width and height** (issue #576, by @choksi2212), 16 to 16384 px each. Without *Keep aspect ratio* the picture
+ is stretched to exactly that size; with it, each picture keeps its shape and is scaled up or down to the largest
+ size that fits.
+ - **Set a minimum short edge** (issue #652): a picture whose shorter side is under the number (1080 by default) is
+ enlarged in proportion until it reaches it. Larger pictures are left as they are; it never shrinks anything.
+- **Size limit and ready-made presets** (issue #553, by @cre8ive-marketing). Presets have a **Size limit (MB)** for
+ pictures (next to Quality) and for videos. A picture over it is saved again at a lower quality, then with fewer
+ pixels; a video is encoded again at the bitrate its length allows (with FFmpeg). When it can't fit, the file fails
+ with the sizes instead of breaking the limit. Settings → Presets → **New** is now a menu: an empty preset, or a copy
+ of a ready-made one: *Video for email* (MP4, under 18 MB), *Video for Discord* (under 10 MB), *Video for WhatsApp*
+ (720p, under 16 MB) and *Photo for Instagram* (JPG, 1080 px wide). They aren't on a donut; add them in Settings →
+ Donut toolbar.
+- **Undo** (issue #553, by @cre8ive-marketing). A recent conversion on Home has an **Undo** button that moves its
+ results to the Recycle Bin / Trash. It shows only while the results are as the conversion left them, so a file
+ edited or overwritten since is never moved. With *Replace the original*, the originals are already in the Recycle
+ Bin / Trash and stay there. Conversions from before 2.2.0, and results that are a folder, have no Undo.
+- **Ask every time** (issue #521, by @cre8ive-marketing). A preset's **Save to** can be *Ask every time*. From the
+ donut, Filee then asks for a file name (one result) or a folder (several results, once for the whole batch),
+ starting in the source's folder; Cancel converts nothing. Watch folders and the command line save next to the source,
+ and files dragged from a browser still go to the download folder.
+- **Profile order** (issue #522). Settings → Donut toolbar has **Move up** / **Move down** arrows under the profile
+ list (Alt+↑ / Alt+↓ in the list). When two profiles take the same extension, the higher one opens, so a profile of
+ your own with `.jpg` can now come before Images. *Reset to default* keeps a profile's place.
+- **More formats**, 268 in all.
+ - **Split archives** (`.001`, `.7z.001`, `.zip.001`, `.tar.001`; issue #653, by @Armone0): drop the first part on the
+ archives donut, with the other parts next to it, and 7-Zip joins them to extract or repack what's inside.
+ - **Dahua DVR recordings** (`.dav`; issue #594) to MP4 and the other video and audio formats, with FFmpeg.
+ - **Fragmented MP4** (`.m4s`; issue #354) that carries its own start, with FFmpeg. A piece of a streamed video that
+ needs a separate init segment stops with a message saying so.
+ - **Windows bitmap fonts** (`.fon`; issue #177, by @SeoJCalive) to TTF, OTF, WOFF, WOFF2 and EOT with their pixel
+ look. A file with several sizes gives a font per size (`Name-13px.ttf`). Vector `.fon` and Chinese, Japanese or
+ Korean bitmap fonts are refused with the reason.
+ - **Garmin FIT** activities (`.fit`; issue #451, by @SeoJCalive) from a watch or bike computer, on the geospatial
+ donut: to GPX, KML / KMZ, GeoJSON, Shapefile and CSV (a row per record, with heart rate, cadence, power, speed and
+ distance), and through CSV to XLSX and JSON. The points keep their time and height. An activity without positions
+ converts to the table formats only; other FIT files (courses, settings …) are refused.
+ - **AutoHotkey, INI, MikroTik and batch files** (`.ahk`, `.ini`, `.rsc`, `.cmd`; issues #536, #660, #661) and **SQL**
+ (`.sql`; issue #607, by @adnan-bhaldar) become text like the other scripts: read, never run.
+
+ Your donuts learn the new extensions, unless one of your own donuts already takes them.
+- **CAD drawings in black and white** (issue #411). Presets that make a PDF, SVG or picture have a **CAD drawing** card
+ with **Colours**: *As drawn* (as before), *Black and white*, like a monochrome plot, or *Grayscale*. In black and
+ white every line and text is black, and filled areas become the grey of their brightness, so a light fill doesn't
+ turn into a black block. Grayscale darkens light lines, such as yellow, enough to read. PDF and SVG stay vector.
+- **What a preset takes** (issue #548, by @SeoJCalive). In Settings → Donut toolbar, hovering a chip under *Available
+ presets* shows what it makes and which formats it takes, by kind; hold Shift for the whole list.
+- **German** (by @deinzooshop). Filee and Setup speak German, and pick it when Windows, macOS or Linux is set to German
+ (Germany, Austria, Switzerland …). A language picked in Settings stays as it is.
+
+### Improved
+
+- **The window keeps its place** (issue #586, by @cre8ive-marketing). The main window opens at the size and position
+ it had when it closed, maximized or not, also after closing to the tray, quitting or signing out. It always fits the
+ screen, and opens centred when the screen it was on is gone.
+- **Keyboard and screen readers** (issue #524, by @cre8ive-marketing). Icon buttons and the fields of the preset
+ editor and the settings pages have names a screen reader reads. The chips under *Available presets* in Settings →
+ Donut toolbar can be reached with Tab: Enter adds one to the donut, Shift+F10 or the menu key edits it. Plain buttons
+ (Browse…, Revert …) are drawn on the card's colour with a border, so they no longer look like a disabled box.
+- **File Pilot** (issue #633). With the default scope, *File managers and desktop*, a Ctrl + drag out of File Pilot
+ opens the donut, as in Explorer (Windows).
+- **Lists and dropdowns** (by @adnan-bhaldar). The highlight of a selected or hovered row stops before the scrollbar,
+ and dropdown rows stay inside their rounded corners.
+- **European Portuguese** (by @Blackspirits) reads more naturally in a few places.
+
+### Fixed
+
+- Chinese and Japanese text recognized with OCR had a space between most words ("本 书 是 作者") in the DOCX, TXT or
+ other text made from it (issue #691). The words of Chinese or Japanese text read from a PDF now join without a
+ space; spaces next to Latin letters and digits stay, and Korean keeps its spaces.
+- A long calibre conversion (a 300 MB CHM → PDF) was stopped after 10 minutes (issue #651). calibre now runs as long as
+ it shows progress, and is stopped only after 10 minutes without any, with a message saying so.
+- On Windows, the mouse could stutter or freeze while Filee converted, and Filee could crash when quitting (issues
+ #511, #528, by @cre8ive-marketing). The gesture hook now answers first, and every engine runs at a lower priority.
+- LibreOffice and calibre failed to install when a folder on the way, such as `AppData\Local`, was moved to another
+ drive through a link (Windows Installer error 1620; issue #527, by @cre8ive-marketing). When Windows Installer still
+ refuses, or another installation is running, the Engines card says why.
+- Black-and-white and 16-bit pictures (scans, fax TIFFs, 1-bit PNGs) failed to go into a PDF with "Unsupported image
+ format", also as comic pages and in Apple Vision OCR (issue #605).
+- Uncompressed DDS textures stored as R, G, B, A, common in games, came out with red and blue swapped (issue #621, by
+ @SeoJCalive).
+- Half size, Grayscale, Trim transparent borders and Compress image were offered for MP3, ZIP and other files that
+ aren't pictures (issue #565, by @SeoJCalive). They're greyed out with "Works on images only"; in a mixed selection the
+ pictures count.
+- A picture resized small and saved as ICO held larger sizes blown up from it. It now holds that size and the smaller
+ ones.
+- A Setup file cut short by an unfinished download said "Filee is not installed in …" as if it were the uninstaller
+ (issue #599). It now says the file is incomplete and to download it again from filee.sh.
+- On Windows, apps that cover the desktop with their own icon layer hid the desktop from Filee, so the drag gesture
+ and the selection shortcut did nothing there (by @Cafunw). Windows that belong to the desktop now count as the
+ desktop.
+- On macOS, a Finder alias dropped on the donut or selected in Finder was refused; Filee converts the file it points
+ to, as it does with Windows shortcuts (by @mendax-iitm).
+- On macOS, the donut didn't show when dragging over a full-screen window, such as full-screen Finder (issue #251, by
+ @mendax-iitm).
+- On Linux, Filee crashed at start with `FILEE_USE_WAYLAND=1` (native Wayland) (by @mahaveergurjar).
+- On KDE Plasma with Wayland, the donut opened from the file manager's menu could appear on another Activity or
+ virtual desktop and switch to it (issue #557, by @cre8ive-marketing). After updating Filee, upgrade the KWin script
+ as installer/linux/INSTALL.txt says (`--upgrade` instead of `--install`), then turn "Filee donut" off and on again in
+ System Settings → Window Management → KWin Scripts.
+- On Linux, the flip arrow in the donut's hub hint showed as a box. The donut draws it now, the same on every system
+ (issue #554, by @cre8ive-marketing).
+- iCalendar: an event given by a start and a duration that crossed a daylight saving change ended an hour off, and a
+ calendar whose time zones have offsets in seconds failed to convert (by @Stamina9).
+- vCard: a name with a long run of combining accents was written with a line over the 75-byte limit (by @Stamina9).
+- In Watch folders, a rule that was off read "On Off" beside its switch (issue #524, by @cre8ive-marketing).
+- `filee watch --help` gave 2 seconds as the default settle time everywhere; on Linux and macOS it's 5 (by
+ @Blackspirits).
+
## 2.1.0
$(NoWarn);CS1591;CS1573
- 2.1.0
+ 2.2.0
Filee
Filee contributors
Copyright (c) Filee contributors