From d66dd0f16bf45b3cd46e3a084409513eaa1c9af5 Mon Sep 17 00:00:00 2001 From: Sophie Herold Date: Wed, 15 May 2024 15:33:59 +0200 Subject: [PATCH] NEWS: Generate from news.d to avoid merge conflicts --- NEWS | 14 ++ build-aux/generate-news.py | 141 +++++++++++++ news.d/47.alpha/added-error-detail-dialog | 1 + news.d/47.alpha/changed-error-messages-nicer | 1 + news.d/47.alpha/changed-follow-style-guide | 1 + news.d/47.alpha/changed-print-api | 1 + news.d/47.alpha/changed-rework-shortcuts | 1 + news.d/47.alpha/changed-use-adw-about-dialog | 1 + news.d/README.md | 7 + news.d/previous | 204 +++++++++++++++++++ 10 files changed, 372 insertions(+) create mode 100755 build-aux/generate-news.py create mode 100644 news.d/47.alpha/added-error-detail-dialog create mode 100644 news.d/47.alpha/changed-error-messages-nicer create mode 100644 news.d/47.alpha/changed-follow-style-guide create mode 100644 news.d/47.alpha/changed-print-api create mode 100644 news.d/47.alpha/changed-rework-shortcuts create mode 100644 news.d/47.alpha/changed-use-adw-about-dialog create mode 100644 news.d/README.md create mode 100644 news.d/previous diff --git a/NEWS b/NEWS index 28717df..a109269 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,17 @@ +## 47.alpha (Unreleased) + +### Added + +- New dialog to show and copy error details + +### Changed + +- Follow the Rust Style Guide for Cargo.toml and .rs filenames +- Make error messages translatable and look nicer +- Move many shortcuts to window level instead of using app accels +- Replace AdwAboutWindow with AdwAboutDialog !376 +- Use new GtkPrintDialog API #144 + 46.2 ==== diff --git a/build-aux/generate-news.py b/build-aux/generate-news.py new file mode 100755 index 0000000..3da9f3a --- /dev/null +++ b/build-aux/generate-news.py @@ -0,0 +1,141 @@ +#!/usr/bin/env python3 + +import os +import os.path +import sys + +release_names = [] + +BASE_DIR = 'news.d' +OUT_FILE = 'NEWS' +HEADING = '' + +def main(): + changelog = Changelog(BASE_DIR, HEADING) + changelog.load() + + with open(OUT_FILE, 'w') as f: + f.write(changelog.format()) + +class Release: + def __init__(self, name): + self.name = name + + self.released = "Unreleased" + self.security = [] + self.added = [] + self.fixed = [] + self.changed = [] + self.removed = [] + self.deprecated = [] + + def add(self, entry: os.DirEntry): + with open(entry) as f: + content = f.read().strip() + + if entry.name == "released": + self.released = content + return + + entry_type = entry.name.split('-')[0] + + match entry_type: + case 'security': + store = self.security + case 'added': + store = self.added + case 'fixed': + store = self.fixed + case 'changed': + store = self.changed + case 'removed': + store = self.removed + case 'deprecated': + store = self.deprecated + case _: + print(f'WARNING: Unknown entry type "{entry_type}" in "{self.name}"', file=sys.stderr) + return; + + with open(entry) as f: + store.append(content) + + def sections(self): + categories = [] + + if self.security: + categories.append(("Security", self.security)) + if self.added: + categories.append(("Added", self.added)) + if self.fixed: + categories.append(("Fixed", self.fixed)) + if self.changed: + categories.append(("Changed", self.changed)) + if self.removed: + categories.append(("Removed", self.removed)) + if self.deprecated: + categories.append(("Deprecated", self.deprecated)) + + return categories + + def format(self): + heading =f"{self.name} ({self.released})" + + s = f"## {heading}\n" + + for (section, items) in self.sections(): + s += f"\n### {section}\n\n" + + for item in sorted(items): + s += f"- {item}\n" + + return s + + def __lt__(self, other): + return self.name < other.name + +class Changelog: + def __init__(self, path, heading): + self.path = path + self.heading = heading + self.previous = "" + self.releases = [] + + def load(self): + with os.scandir(BASE_DIR) as it: + for entry in it: + if entry.is_dir(): + release_names.append(entry.name) + elif entry.is_file() and entry.name == "previous": + with open(entry.path) as f: + self.previous = f.read() + + for release_name in release_names: + release = Release(release_name) + self.add(release) + with os.scandir(os.path.join(BASE_DIR, release_name)) as it: + for entry in it: + if entry.is_file(): + release.add(entry) + + def add(self, release: Release): + self.releases.append(release) + + def format(self): + s = "" + + if self.heading: + s += f'# {self.heading}\n' + + for release in reversed(sorted(self.releases)): + if s != "": + s += "\n" + s += release.format() + + if self.previous: + s += '\n' + s += self.previous + + + return s + +main() diff --git a/news.d/47.alpha/added-error-detail-dialog b/news.d/47.alpha/added-error-detail-dialog new file mode 100644 index 0000000..53072b5 --- /dev/null +++ b/news.d/47.alpha/added-error-detail-dialog @@ -0,0 +1 @@ +New dialog to show and copy error details diff --git a/news.d/47.alpha/changed-error-messages-nicer b/news.d/47.alpha/changed-error-messages-nicer new file mode 100644 index 0000000..476fe94 --- /dev/null +++ b/news.d/47.alpha/changed-error-messages-nicer @@ -0,0 +1 @@ +Make error messages translatable and look nicer diff --git a/news.d/47.alpha/changed-follow-style-guide b/news.d/47.alpha/changed-follow-style-guide new file mode 100644 index 0000000..5b59340 --- /dev/null +++ b/news.d/47.alpha/changed-follow-style-guide @@ -0,0 +1 @@ +Follow the Rust Style Guide for Cargo.toml and .rs filenames diff --git a/news.d/47.alpha/changed-print-api b/news.d/47.alpha/changed-print-api new file mode 100644 index 0000000..be80366 --- /dev/null +++ b/news.d/47.alpha/changed-print-api @@ -0,0 +1 @@ +Use new GtkPrintDialog API #144 diff --git a/news.d/47.alpha/changed-rework-shortcuts b/news.d/47.alpha/changed-rework-shortcuts new file mode 100644 index 0000000..dc75bb8 --- /dev/null +++ b/news.d/47.alpha/changed-rework-shortcuts @@ -0,0 +1 @@ +Move many shortcuts to window level instead of using app accels diff --git a/news.d/47.alpha/changed-use-adw-about-dialog b/news.d/47.alpha/changed-use-adw-about-dialog new file mode 100644 index 0000000..916f31c --- /dev/null +++ b/news.d/47.alpha/changed-use-adw-about-dialog @@ -0,0 +1 @@ +Replace AdwAboutWindow with AdwAboutDialog !376 diff --git a/news.d/README.md b/news.d/README.md new file mode 100644 index 0000000..1430255 --- /dev/null +++ b/news.d/README.md @@ -0,0 +1,7 @@ +# NEWS + +The [`NEWS`](../NEWS) file is automatically generated from this directory. + +Please add a file for each changelog entry to the subolder corresponding to the version. Usually, this will be the latest version that has a folder. The files begin with a category prefix like `changed-` or `fixed-`. The prefixes follow the categories from [keepachangelog.com](https://keepachangelog.com/en/1.1.0/). + +The NEWS files needs to be generated via `./build-aux/generate-news.py` and commited before releases. diff --git a/news.d/previous b/news.d/previous new file mode 100644 index 0000000..28717df --- /dev/null +++ b/news.d/previous @@ -0,0 +1,204 @@ +46.2 +==== + +- Fix fractional scaling beeing blury by setting GDK_DEBUG=gl-no-fractional as default +- Fix exposure times above 0.5 seconds not being displayed correctly in properties +- Fix page orientation from print preview dialog is not honored for actual print + +46.1 +==== + +- Fix fill-space option not being applied when changing the orientation in print preview +- Fix PNGs not being available when browsing images on SMB shares +- Don't animate switching between images with the mouse fwd/back buttons + +46.0 +==== + +- Change to stable dependencies + +46.rc +===== + +- Fix background color detection ignoring small lines in large images +- Change to "gl" as GSK default renderer instead of "ngl" due to performance reasons +- Change to sticking to the first error delivered during image loading + +46.beta.2 +========= + +- Change metainfo to include GNOME group +- Change metainfo to use reversed name for the developer id +- Change to use latest glycin beta for better metadata performance + +46.beta.1 +========= + +- Change .desktop file to not include "Slideshow" as keyword +- Change help by regenerating pages +- Change help to correctly represent zoom +- Change to use zbus 4.0 + +46.beta +======= + +- Fix not reliably returning to restored image when undoing trash operation +- Added Shift+Delete as shortcut for permanent image deletion +- Added build option that makes X11 an optional dependency +- Added button to copy coordinates for location in properties +- Change to not using animation when changing images via keyboard shortcuts +- Change to opening image in new window, occupy 40% of the screen instead of 30% +- Change to using "stacked cards" animation when changing images via buttons +- Changed to show city if it's less than 15km away instead of 100km before + +46.alpha +======== + +- Fix "Ctrl + C" copies image instead of metadata if text is selected +- Fix "g_object_weak_unref" warnings +- Fix changing image resets timeout for hiding controls if still visible +- Fix long file names can newly opened window larger than required for image +- Fix not always zooming into center when using overlay buttons on touchscreen +- Fix opening image in different folder ends fullscreen mode +- Fix scrollbars disappearing under certain conditions +- Add zooming via touchpad scrolling while Ctrl button is pressed +- Follow G_MESSAGES_DEBUG variable for logging +- In print preview, base 100% image scale on physical dimensions of SVGs if specified +- In print preview, fix wrong upper input limit in height +- In print preview, scale SVGs correctly +- More reliably zoom into image position below cursor +- Pre-select current image's folder in file-chooser dialog +- Remember image properties visibility state +- Use GdkSurface:scale instead of scale factor, in theory supporting fractional scaling +- Use glycin 1.0 + +45.3 +==== + +- Fix horizontal scrollbar sometimes jumping to center while zooming in + +45.2 +==== + +- Fix order of images gets confused after deleting image +- Fix image is not shown when sucessfully reloaded after error +- Fix keyboard shortcuts shows the swipe gestures the wrong way round + +45.1 +======= + +- Fix sandbox for image decoding not enabled by default +- Fix printing on different printer than selected +- Fix print dialog crashes on confirmation +- Fix print dialog needs second confirmation inside Flatpaks +- Fix SVGs sometimes not re-rendering for zoom level +- Fix animated image formats with variable frame length using only one length +- Fix rotation getting applied twice to HEIF images + +45.0 +======= + +- Always ask which program to use for "Open With…" +- SVG: Force minimum tile size of 1000x1000 +- SVG: Don't render first tiles with zoom=1 +- Empty state: Use flat headerbar +- Fix non-native files with path cannot be deleted +- Update screenshots +- Drag and Drop: Only expect sources of type FileList +- Update SlidingView after removing unsupported image + +45.beta.1 +======= + +- Reload images when the file is replaced by moving another file at it's place +- Update dependencies + +45.beta +======= +- Newly designed print dialog +- Added sandboxing for SVG rendering by using glycin +- Use RaisedBorder for HeaderBar to avoid shadow over images +- Fix browsing images on SMB shares not working +- Fix touchscreen gestures not working when zoomed in +- Fix touchscreen swipe only working on second attempt +- Added JpegXL support via new glycin version +- Added overshoot for swipe gesture +- New custom style for drop targets +- Changed name to Image Viewer + +45.alpha +======= +- Add help +- Disable trashing for non-native files +- Give toast for latest deleted file priority over the others +- Only list supported image formats in file chooser +- Do not guess a potentially different background color for opaque images +- Fix incorrect updates when deleting or changing images +- Fix SVG zooming with high-res scroll-wheels +- Use glycin for sandboxed extendable image loading expect for SVG +- Remove backspace as a trash shortcut +- Change command line to open all given images in one window +- Do not show "Set as Background" if operation was aborted +- Let the user select multiple files to open in file chooser +- Support forward and back mouse buttons +- Correctly align right-click menu + +44.3 +======= +- Hide cursor together with controls when fullscreened +- Remove ctrl+x shortcut for deleting images +- Fix 'delete' action appearing too long in help overlay +- Split rotate actions making it possible to use them in help overlay +- Cancel GFile loading when decoder is dropped +- Make crossfade from spinner page to image work +- Don't make activatable row subtitles selectable in properties view +- Disable "open folder" action for non-native files (GTK doesn't support it) +- Leave fullscreen when status page is shown +- Skip unsupported formats when sliding through images +- Show window after 2 seconds if dimension are not yet known +- Cancel scroll deceleration on gesture use +- Hide headerbar on idle in fullscreen +- Show controls on mouse click +- Better solution for not registering swipes as cursor motion +- Use AdwBreakpoint to move properties below the image for narrow windows +- Fix vertical minimum size in measure for LpImageView +- Ignore EXIF rotation info for now in HEIF formats + +44.2 +======= +- Use GFile instead of direct file access +- Do not crash when monitor info is not available +- Get rid of many unwraps and report issues to UI instead, just to be safe +- #130 Fix displayed times are wrong because they do not respect timezones +- Add basic support for ICC color profiles +- Support opening multiple files via drag and drop +- Fix textures and background color not updating when image data changed +- #124 Fix not defaulting to light background color in light theme +- Fix thumbnail is broken for auto-rotated (EXIF) images +- #120 Fix high-res scroll wheel issues +- #134 Fix 100%/200% shortcuts ending up at best-fit when window size close to 100%/200% +- Add printing support +- Center new tilings in the viewport, making the first rendered tile cover the viewport already +- Allow dragging (panning) the image with middle button +- Generate list of mime types in meson and fix list of formats +- Set actions enabled state based on UI property status, not manually everywhere +- Add and update license headers with script based on commit info +- Hide overlay controls after inactivity +- Remove OSD from HeaderBar in fullscreen +- Drop AdwFlap for HeaderBar +- Make properties button insensitive if no image shown/loading +- Move 'toggle fullscreen' button from inner to outer position +- Add 'all files' filter option to file chooser + +44.1 +======= +Bugfix release after initial feedback: + - Bump GTK dependency to 4.11.1 because of required fixes for scaled texture + - Drop gtk-macros (crate) dependency since it is not needed and lacking a LICENSE files + - #115 Fix WebP support for still images + - #115 Fix not detecting HEIC files + +44.0 +======= + +Initial release