This PR adds the ability to close the selection using the Ctrl + Backspace
key combination, addressing issue #3319. The new shortcut
allows users to quickly exit the selection mode without relying on mouse
interactions.
* Bypass the Qt GNOME/Wayland workaround on fixed Qt versions
We implement code on GNOME desktops to force the
QT_QPA_PLATFORM to be 'xcb'; this works around a
clipboard-related bug on GNOME+Wayland+Qt.
This bug was fixed (or worked around) in Qt 5.15.2,
so we implement a version check; if the runtime Qt
version is < 5.15.2, still force the workaround;
otherwise, we don't need the workaround so we skip
it.
* Reformat with clang-format
* fix screenshot's size not match with the screen when applying fractional scaling in KDE plasma desktop in wayland.
* Fix: Really fix wayland dpr is not correct and that causes our screenshot preview is wrongly scaled issue. This fix supports that we will use dpr in xcb platform because it is correct in that case.
* Chore: Use more concise variable names. Add comments to explain context.
* Chore: Fix a typo(physcal -> physical). Change code style to meet the .clang-format requirement.
Commit updates appstream data to pass strict validation, which is necessary to build new Flatpak versions.
Flatpak builder added strict validation and requires "developer" information [1] to be provided.
Build error:
```
Run docker run --rm --privileged \
+ flatpak-builder-lint --exceptions repo repo
{
"errors": [
"appstream-missing-developer-name"
],
"warnings": [
"appstream-screenshot-missing-caption"
],
"info": [
"appstream-screenshot-missing-caption: One or more screenshots
are missing captions in the Metainfo file",
"appstream-missing-developer-name: No developer tag found in
Metainfo file"
],
"message": "Please consult the documentation at
https://docs.flathub.org/docs/for-app-authors/linter"
}
error: Recipe `validate-build` failed with exit code 1
```
For good measure, captions for the provided screenshots are added.
After changes made, `appstreamcli validate` only mentions issue with uppercase cid component which should be kept as is:
```sh
$ appstreamcli validate --pedantic data/appdata/org.flameshot.Flameshot.metainfo.xml
P: org.flameshot.Flameshot:7: cid-contains-uppercase-letter org.flameshot.Flameshot
✔ Validation was successful: pedantic: 1
```
[1]: https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines#developer-name
* Bumped minimum Cmake version to fix build issues on Cmake 4.0. 3.22 was chosen since that is the version on Ubuntu 22.04
* lowered cmake version to 3.18 for debian bullseye
* ci: update linux pack distribution matrix
- drop debian 10, fedora 39, opensuse 15.5 build
- add fedora 41 build
* ci: simplify docker buildx and qemu setup
* ci: segmented ci artifact
- remove third party upload scripts
* ci: add version details info into artifact name
`jurplel/install-qt-action` provides a fix to Windows 2019 runners in commit `fc214ccc2dadadaebf48e8e5ed6ff4297dfbb732`, which is in `v4`.
This fix will prevent our CI runs from failing, as they attempt to run with python 3.13 and that causes issues.
The QEMU package is now a dummy package. Installing qemu-user-static should be sufficient.
See https://packages.debian.org/buster/qemu for official mention of it being a dummy package.
When specifying the preferred language on Linux, the $LANGUAGE env var
is used. https://www.gnu.org/software/gettext/manual/html_node/The-LANGUAGE-variable.html
Example:
$ LANGUAGE=en:nl flameshot
Expected:
flameshot should be in English as this is a localization that flameshot provides.
If English would not be supported, it should fall back to using Dutch (nl).
Actual:
flameshot uses Dutch translations.
Cause:
If an empty translation file for "en" is not provided, English is only
used as a fallback.
See https://bugreports.qt.io/browse/QTBUG-69196
* ci: update transferwee from upstream
* chore: separate RPM spec into two files
* ci: enhancements and updates
- move to quay from dockerhub due to pull rate limit
- add debian 12, ubuntu 24.04, fedora 39/40, opensue leap 15.5/15.6
- the building envrinments of appimage/snap/flatpak update to ubuntu 22.04
* Give pins a different window title
Workaround for a KDE issue where the capture window can't be
differentiated from the pin window in any way, making the multi-monitor
workaround in #3073 also break pins.
* reformat window title
Flameshot Pin => flameshot-pin
* Add kguiaddons to shell.nix
This package is needed to compile flameshot with USE_WAYLAND_CLIPBOARD
* Add .direnv to gitignore
This directory is automatically created by direnv when evaluating the
.envrc file
---------
Co-authored-by: mae <git@badat.dev>