[arch-commits] Commit in flameshot/trunk (PKGBUILD flameshot-wayland-clipboard.patch)

Jiachen Yang farseerfc at gemini.archlinux.org
Fri Feb 4 16:42:07 UTC 2022


    Date: Friday, February 4, 2022 @ 16:42:07
  Author: farseerfc
Revision: 1125778

upgpkg: flameshot 11.0.0-3 wayland clipboard take 2

Added:
  flameshot/trunk/flameshot-wayland-clipboard.patch
Modified:
  flameshot/trunk/PKGBUILD

-----------------------------------+
 PKGBUILD                          |    9 +-
 flameshot-wayland-clipboard.patch |  154 ++++++++++++++++++++++++++++++++++++
 2 files changed, 160 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2022-02-04 16:40:41 UTC (rev 1125777)
+++ PKGBUILD	2022-02-04 16:42:07 UTC (rev 1125778)
@@ -3,7 +3,7 @@
 
 pkgname=flameshot
 pkgver=11.0.0
-pkgrel=2
+pkgrel=3
 pkgdesc="Powerful yet simple to use screenshot software"
 arch=('x86_64')
 url="https://github.com/flameshot-org/flameshot"
@@ -15,11 +15,14 @@
     'grim: for wlroots wayland support'
     'xdg-desktop-portal: for wayland support, you will need the implementation for your wayland desktop environment'
 )
-source=("${pkgname}-v${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz")
-sha256sums=('SKIP')
+source=("${pkgname}-v${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz"
+"flameshot-wayland-clipboard.patch")
+sha256sums=('4cd158719031e97c97ecb6db1c14dd8ded44bf531c062bce496fc63be18bc2cf'
+            '0ce23f5fe38a11a57c102865ff62d11547fc5b8c0f9551ef6effd3d905f99235')
 
 prepare() {
   cd "${srcdir}/${pkgname}-${pkgver}"
+  patch -Np1 -i $srcdir/flameshot-wayland-clipboard.patch
 }
 
 build() {

Added: flameshot-wayland-clipboard.patch
===================================================================
--- flameshot-wayland-clipboard.patch	                        (rev 0)
+++ flameshot-wayland-clipboard.patch	2022-02-04 16:42:07 UTC (rev 1125778)
@@ -0,0 +1,154 @@
+From 27961143dd8d73cb9a5cfda8f79f7890e20bf4f5 Mon Sep 17 00:00:00 2001
+From: Jeremy Borgman <borgman.jeremy at pm.me>
+Date: Wed, 19 Jan 2022 05:16:36 -0600
+Subject: [PATCH] working on wayland clipboard
+
+---
+ .github/workflows/Linux-pack.yml              |  1 +
+ CMakeLists.txt                                |  2 ++
+ packaging/flatpak/org.flameshot.Flameshot.yml |  5 ++--
+ snapcraft.yaml                                |  2 ++
+ src/CMakeLists.txt                            | 10 +++++++
+ src/utils/screenshotsaver.cpp                 | 26 +++++++++++++++----
+ 6 files changed, 39 insertions(+), 7 deletions(-)
+
+diff --git a/.github/workflows/Linux-pack.yml b/.github/workflows/Linux-pack.yml
+index da5ab0d00..9e714965d 100644
+--- a/.github/workflows/Linux-pack.yml
++++ b/.github/workflows/Linux-pack.yml
+@@ -484,6 +484,7 @@ jobs:
+             fcitx-frontend-qt5 \
+             openssl \
+             ca-certificates
++
+       - name: Get go-appimage tool
+       # Will not use linuxdeployqt anymore, because it suopprts currently still-supported mainstream distribution,
+       # which is glibc 2.23. For more information, please see https://github.com/probonopd/linuxdeployqt/issues/340.
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 66fd0581e..ec6479a7e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -67,6 +67,7 @@ option(USE_MONOCHROME_ICON "Build using monochrome icon as default" OFF)
+ option(GENERATE_TS "Regenerate translation source files" OFF)
+ option(USE_EXTERNAL_SINGLEAPPLICATION "Use external QtSingleApplication library" OFF)
+ option(USE_LAUNCHER_ABSOLUTE_PATH "Use absolute path for the desktop launcher" ON)
++option(USE_WAYLAND_CLIPBOARD "USE KF Gui Wayland Clipboard" OFF)
+ 
+ include(cmake/StandardProjectSettings.cmake)
+ 
+@@ -108,6 +109,7 @@ option(BUILD_STATIC_LIBS ON)
+ option(BUILD_SHARED_LIBS OFF)
+ add_subdirectory(external/Qt-Color-Widgets EXCLUDE_FROM_ALL) 
+ 
++
+ if (APPLE)
+   add_subdirectory(external/QHotkey)
+ endif()
+diff --git a/packaging/flatpak/org.flameshot.Flameshot.yml b/packaging/flatpak/org.flameshot.Flameshot.yml
+index 183a241b5..31a3d8af5 100644
+--- a/packaging/flatpak/org.flameshot.Flameshot.yml
++++ b/packaging/flatpak/org.flameshot.Flameshot.yml
+@@ -26,8 +26,9 @@ modules:
+   - name: flameshot
+     buildsystem: cmake-ninja
+     config-opts:
+-      - -DCMAKE_BUILD_TYPE=Release
++      - -DCMAKE_BUILD_TYPE=Release 
++      - -DUSE_WAYLAND_CLIPBOARD=1
+     sources:
+       - type: git
+         url: https://github.com/flameshot-org/flameshot.git
+-        branch: master
+\ No newline at end of file
++        branch: master
+diff --git a/snapcraft.yaml b/snapcraft.yaml
+index 6714d9f3d..8da86f9a9 100644
+--- a/snapcraft.yaml
++++ b/snapcraft.yaml
+@@ -46,6 +46,8 @@ parts:
+       - kde-frameworks-5-qt-5-15-core20
+     source: https://github.com/flameshot-org/flameshot.git
+     plugin: cmake
++    cmake-parameters:
++      - -DUSE_WAYLAND_CLIPBOARD=1
+     source-type: git
+     override-pull: |
+       snapcraftctl pull
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 4ae982cb7..4adc66a90 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -10,6 +10,10 @@ find_package(
+         DBus
+         LinguistTools)
+ 
++if (USE_WAYLAND_CLIPBOARD)
++    find_package(KF5GuiAddons)
++endif()
++
+ set(CMAKE_AUTOMOC ON)
+ set(CMAKE_AUTORCC ON)
+ set(CMAKE_AUTOUIC ON)
+@@ -190,8 +194,14 @@ target_link_libraries(
+         Qt5::Widgets
+         ${QTSINGLEAPPLICATION_LIBRARY}
+         QtColorWidgets
++
+ )
+ 
++if (USE_WAYLAND_CLIPBOARD)
++  target_compile_definitions(flameshot PRIVATE USE_WAYLAND_CLIPBOARD=1)
++  target_link_libraries(flameshot KF5::GuiAddons)
++endif()
++
+ if (APPLE)
+     set(MACOSX_BUNDLE_IDENTIFIER "org.flameshot")
+     set_target_properties(
+diff --git a/src/utils/screenshotsaver.cpp b/src/utils/screenshotsaver.cpp
+index 317a0d65e..8f0d4d9d9 100644
+--- a/src/utils/screenshotsaver.cpp
++++ b/src/utils/screenshotsaver.cpp
+@@ -9,6 +9,11 @@
+ #include "src/utils/filenamehandler.h"
+ #include "src/utils/globalvalues.h"
+ #include "utils/desktopinfo.h"
++
++#if USE_WAYLAND_CLIPBOARD
++#include <KSystemClipboard>
++#endif
++
+ #include <QApplication>
+ #include <QBuffer>
+ #include <QClipboard>
+@@ -33,15 +38,26 @@ void ScreenshotSaver::saveToClipboardMime(const QPixmap& capture,
+     QImageWriter imageWriter{ &buffer, imageType.toUpper().toUtf8() };
+     imageWriter.write(capture.toImage());
+ 
+-    QPixmap pngPixmap;
++    QPixmap formattedPixmap;
+     bool isLoaded =
+-      pngPixmap.loadFromData(reinterpret_cast<uchar*>(array.data()),
+-                             array.size(),
+-                             imageType.toUpper().toUtf8());
++      formattedPixmap.loadFromData(reinterpret_cast<uchar*>(array.data()),
++                                   array.size(),
++                                   imageType.toUpper().toUtf8());
+     if (isLoaded) {
+-        QMimeData* mimeData = new QMimeData;
++
++        auto mimeData = new QMimeData();
++
++#ifdef USE_WAYLAND_CLIPBOARD
++        mimeData->setImageData(formattedPixmap.toImage());
++        mimeData->setData(QStringLiteral("x-kde-force-image-copy"),
++                          QByteArray());
++        KSystemClipboard::instance()->setMimeData(mimeData,
++                                                  QClipboard::Clipboard);
++#else
+         mimeData->setData("image/" + imageType, array);
+         QApplication::clipboard()->setMimeData(mimeData);
++#endif
++
+     } else {
+         AbstractLogger::error()
+           << QObject::tr("Error while saving to clipboard");



More information about the arch-commits mailing list