flameshot: new package
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Licensed under the GNU General Public License, version 3.
|
||||
# See the file http://www.gnu.org/licenses/gpl.txt
|
||||
|
||||
from pisi.actionsapi import cmaketools
|
||||
from pisi.actionsapi import pisitools
|
||||
from pisi.actionsapi import get
|
||||
|
||||
def setup():
|
||||
cmaketools.configure("-DUSE_WAYLAND_CLIPBOARD=ON")
|
||||
|
||||
def build():
|
||||
cmaketools.make()
|
||||
|
||||
def install():
|
||||
cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
|
||||
|
||||
pisitools.dodoc("CODE_OF_CONDUCT.md", "LICENSE", "README.md")
|
||||
@@ -0,0 +1,154 @@
|
||||
From 27961143dd8d73cb9a5cfda8f79f7890e20bf4f5 Mon Sep 17 00:00:00 2001
|
||||
From: Jeremy Borgman <borgman.jeremy@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");
|
||||
@@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE PISI SYSTEM "http://www.pisilinux.org/projeler/pisi/pisi-spec.dtd">
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>flameshot</Name>
|
||||
<Homepage>https://flameshot.org/</Homepage>
|
||||
<Packager>
|
||||
<Name>Idris Kalp</Name>
|
||||
<Email>idriskalp@gmail.com</Email>
|
||||
</Packager>
|
||||
<License>GPLv3</License>
|
||||
<IsA>app:gui</IsA>
|
||||
<Summary>Powerful yet simple to use screenshot software.</Summary>
|
||||
<Description>Flameshot is a free and open-source, cross-platform tool to take screenshots with many built-in features to save you time. </Description>
|
||||
<Archive sha1sum="2f6f70197564a23a2c2e5fca32b64320a630d975" type="targz">https://github.com/flameshot-org/flameshot/archive/refs/tags/v11.0.0.tar.gz</Archive>
|
||||
<BuildDependencies>
|
||||
<Dependency>cmake</Dependency>
|
||||
<Dependency>qt5-linguist</Dependency>
|
||||
<Dependency>qt5-svg-devel</Dependency>
|
||||
<Dependency>qt5-base-devel</Dependency>
|
||||
<Dependency>kguiaddons-devel</Dependency>
|
||||
</BuildDependencies>
|
||||
<Patches>
|
||||
<Patch level="1">flameshot-wayland-clipboard.patch</Patch>
|
||||
</Patches>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>flameshot</Name>
|
||||
<RuntimeDependencies>
|
||||
<Dependency>grim</Dependency>
|
||||
<Dependency>libgcc</Dependency>
|
||||
<Dependency>qt5-svg</Dependency>
|
||||
<Dependency>qt5-base</Dependency>
|
||||
<Dependency>kguiaddons</Dependency>
|
||||
<Dependency>icon-theme-hicolor</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="executable">/usr/bin</Path>
|
||||
<Path fileType="data">/usr/share</Path>
|
||||
<Path fileType="man">/usr/share/man</Path>
|
||||
<Path fileType="doc">/usr/share/doc</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
|
||||
<History>
|
||||
<Update release="1">
|
||||
<Date>2022-02-21</Date>
|
||||
<Version>11.0.0</Version>
|
||||
<Comment>First release</Comment>
|
||||
<Name>Idris Kalp</Name>
|
||||
<Email>idriskalp@gmail.com</Email>
|
||||
</Update>
|
||||
</History>
|
||||
</PISI>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" ?>
|
||||
<PISI>
|
||||
<Source>
|
||||
<Name>flameshot</Name>
|
||||
<Summary xml:lang="tr">Powerful yet simple to use screenshot software.</Summary>
|
||||
<Description xml:lang="tr">Flameshot is a free and open-source, cross-platform tool to take screenshots with many built-in features to save you time. </Description>
|
||||
</Source>
|
||||
</PISI>
|
||||
+26711
-26653
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
ea2e28f7b8cc52aa937d6d1a26a00333daed0573
|
||||
aca07326f1ebde2499a9754e0ce4abdf55d4107a
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
4a77a8c03b7a508ec02e6f0e467d21cc7ccd4ce8
|
||||
6056531669ddfe752015990014a5ea3cd964ab6f
|
||||
Reference in New Issue
Block a user