diff --git a/data/appdata/org.flameshot.Flameshot.metainfo.xml b/data/appdata/org.flameshot.Flameshot.metainfo.xml index 7ff7585725..31d439ec3e 100644 --- a/data/appdata/org.flameshot.Flameshot.metainfo.xml +++ b/data/appdata/org.flameshot.Flameshot.metainfo.xml @@ -91,6 +91,7 @@ SPDX-License-Identifier: CC0-1.0 + diff --git a/packaging/debian/changelog b/packaging/debian/changelog index 136e8cfddc..df5c1bcfe2 100644 --- a/packaging/debian/changelog +++ b/packaging/debian/changelog @@ -1,3 +1,9 @@ +flameshot (14.0.rc3-1) unstable; urgency=medium + + * Release for v14.0.rc3 + + -- Jeremy Borgman Thu, 28 May 2026 16:51:50 -0500 + flameshot (14.0.rc2-1) unstable; urgency=medium * Release for v14.0.rc2 diff --git a/packaging/rpm/flameshot.spec b/packaging/rpm/flameshot.spec index aaba82f02a..9d0394b061 100644 --- a/packaging/rpm/flameshot.spec +++ b/packaging/rpm/flameshot.spec @@ -1,5 +1,5 @@ Name: flameshot -Version: 14.0.rc2 +Version: 14.0.rc3 Release: 1%{?dist} Summary: Powerful yet simple to use screenshot software diff --git a/snapcraft.yaml b/snapcraft.yaml index aa9e728407..edcc0160ae 100644 --- a/snapcraft.yaml +++ b/snapcraft.yaml @@ -1,5 +1,5 @@ name: flameshot -version: '14.0.rc2' +version: '14.0.rc3' base: core24 summary: Powerful yet simple to use screenshot software description: | diff --git a/src/config/generalconf.cpp b/src/config/generalconf.cpp index 3597b6e520..5f687901f4 100644 --- a/src/config/generalconf.cpp +++ b/src/config/generalconf.cpp @@ -60,7 +60,7 @@ GeneralConf::GeneralConf(QWidget* parent) #if defined(Q_OS_MACOS) initUseNativeFullscreen(); #endif -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) initUseX11LegacyScreenshot(); #endif #ifdef ENABLE_IMGUR @@ -133,7 +133,7 @@ void GeneralConf::_updateComponents(bool allowEmptySavePath) #if defined(Q_OS_MACOS) m_useNativeFullscreen->setChecked(config.useNativeFullscreen()); #endif -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) m_useX11LegacyScreenshot->setChecked(config.useX11LegacyScreenshot()); #endif } @@ -966,7 +966,7 @@ void GeneralConf::useNativeFullscreenChanged(bool checked) } #endif -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) void GeneralConf::initUseX11LegacyScreenshot() { m_useX11LegacyScreenshot = diff --git a/src/config/generalconf.h b/src/config/generalconf.h index 9510cd2ea7..2d861fb79e 100644 --- a/src/config/generalconf.h +++ b/src/config/generalconf.h @@ -67,7 +67,7 @@ private slots: #if defined(Q_OS_MACOS) void useNativeFullscreenChanged(bool checked); #endif -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) void useX11LegacyScreenshotChanged(bool checked); #endif @@ -114,7 +114,7 @@ private slots: #if defined(Q_OS_MACOS) void initUseNativeFullscreen(); #endif -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) void initUseX11LegacyScreenshot(); #endif @@ -171,7 +171,7 @@ private slots: #if defined(Q_OS_MACOS) QCheckBox* m_useNativeFullscreen; #endif -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) QCheckBox* m_useX11LegacyScreenshot; #endif }; diff --git a/src/tools/pin/pinwidget.cpp b/src/tools/pin/pinwidget.cpp index f7e0997bdd..fc04befe8b 100644 --- a/src/tools/pin/pinwidget.cpp +++ b/src/tools/pin/pinwidget.cpp @@ -102,7 +102,7 @@ bool PinWidget::scrollEvent(QWheelEvent* event) { const auto phase = event->phase(); if (phase == Qt::ScrollPhase::ScrollUpdate -#if defined(Q_OS_LINUX) || defined(Q_OS_WINDOWS) || defined(Q_OS_MACOS) +#if defined(Q_OS_UNIX) || defined(Q_OS_WINDOWS) || phase == Qt::ScrollPhase::NoScrollPhase #endif ) { diff --git a/src/utils/confighandler.cpp b/src/utils/confighandler.cpp index 370d18af02..fd01171762 100644 --- a/src/utils/confighandler.cpp +++ b/src/utils/confighandler.cpp @@ -26,7 +26,7 @@ bool verifyLaunchFile() { -#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) QString path = QStandardPaths::locate(QStandardPaths::GenericConfigLocation, "autostart/", QStandardPaths::LocateDirectory) + @@ -146,7 +146,7 @@ static QMap> // the monitor selection UI. Not supported on Wayland. OPTION("captureActiveMonitor" ,Bool ( false )), #endif -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) // Bypass freedesktop portal and use Qt's native X11 // screenshot method. Intended for WMs without xdg-desktop-portal. OPTION("useX11LegacyScreenshot" ,Bool ( false )), @@ -306,7 +306,7 @@ void ConfigHandler::setStartupLaunch(const bool start) qWarning() << "Unable to change login items, error:" << process.readAll(); } -#elif defined(Q_OS_LINUX) || defined(Q_OS_UNIX) +#elif defined(Q_OS_UNIX) QString path = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/autostart/"; diff --git a/src/utils/confighandler.h b/src/utils/confighandler.h index adc5d1e05e..ea3742cb8d 100644 --- a/src/utils/confighandler.h +++ b/src/utils/confighandler.h @@ -151,7 +151,7 @@ class ConfigHandler : public QObject #if !defined(Q_OS_MACOS) CONFIG_GETTER_SETTER(captureActiveMonitor, setCaptureActiveMonitor, bool) #endif -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) CONFIG_GETTER_SETTER(useX11LegacyScreenshot, setUseX11LegacyScreenshot, bool) diff --git a/src/utils/pathinfo.cpp b/src/utils/pathinfo.cpp index b6279fbe41..5d10028251 100644 --- a/src/utils/pathinfo.cpp +++ b/src/utils/pathinfo.cpp @@ -22,7 +22,7 @@ QStringList PathInfo::translationsPaths() QString binaryPath = QFileInfo(qApp->applicationDirPath()).absoluteFilePath(); QString trPath = QDir::toNativeSeparators(binaryPath + "/translations"); -#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) return QStringList() << QStringLiteral(APP_PREFIX) + "/share/flameshot/translations" << trPath << QStringLiteral("/usr/share/flameshot/translations") diff --git a/src/utils/screengrabber.cpp b/src/utils/screengrabber.cpp index 0abc60b5be..d47e40bd82 100644 --- a/src/utils/screengrabber.cpp +++ b/src/utils/screengrabber.cpp @@ -244,7 +244,7 @@ QPixmap ScreenGrabber::grabEntireDesktop(bool& ok, int preSelectedMonitor) screenshot.setDevicePixelRatio(currentScreen->devicePixelRatio()); return screenshot; -#elif defined(Q_OS_LINUX) +#elif defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) if (!m_info.waylandDetected() && ConfigHandler().useX11LegacyScreenshot()) { qWarning() << "Using deprecated legacy X11 screenshot method. " "Consider installing xdg-desktop-portal for your " @@ -307,7 +307,7 @@ QPixmap ScreenGrabber::grabFullDesktop(bool& ok) painter.drawPixmap(offset, p); } painter.end(); -#elif defined(Q_OS_LINUX) +#elif defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) if (!m_info.waylandDetected() && ConfigHandler().useX11LegacyScreenshot()) { qWarning() << "Using deprecated legacy X11 screenshot method. " "Consider installing xdg-desktop-portal for your " @@ -344,7 +344,7 @@ QPixmap ScreenGrabber::grabScreen(QScreen* screen, bool& ok) { QPixmap p; QRect geometry = screenGeometry(screen); -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) const QList screens = QGuiApplication::screens(); int screenIndex = screens.indexOf(screen); @@ -516,7 +516,7 @@ QPixmap ScreenGrabber::cropToMonitor(const QPixmap& fullScreenshot, int cropX, cropY, cropWidth, cropHeight; -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) // Linux (both X11 and Wayland via freedesktop portal): // Use logical coordinate-based cropping since portal returns full // desktop @@ -593,7 +593,7 @@ QPixmap ScreenGrabber::cropToMonitor(const QPixmap& fullScreenshot, QPixmap cropped = fullScreenshot.copy(cropRect); -#if defined(Q_OS_LINUX) +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) // Linux: May need rescaling if scale factors don't match if (qAbs(screenshotScaleX - targetDpr) > 0.01) { int targetPhysicalWidth = qRound(targetGeometry.width() * targetDpr); diff --git a/src/utils/screenshotsaver.cpp b/src/utils/screenshotsaver.cpp index 29fb9d28ce..ae5a14c3e0 100644 --- a/src/utils/screenshotsaver.cpp +++ b/src/utils/screenshotsaver.cpp @@ -182,7 +182,7 @@ void saveToClipboard(const QPixmap& capture) if (ConfigHandler().useJpgForClipboard()) { saveToClipboardMime(capture, "jpeg"); } else { -#if defined(Q_OS_LINUX) || defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) if (DesktopInfo().waylandDetected()) { saveToClipboardMime(capture, "png"); } else {