7bd9bea072 started using Prison
unconditionally via QML import. So if Prison isn't installed the
clipboard applet stops working, complaining that "org.kde.prison is
not installed".
While it would certainly be possible to add another call to
"find_package(KF5Prison)" with TYPE RUNTIME, the result in
feature_summary would be very confusing, because OPTIONAL has a higher
priority and the runtime hint would vanish if you build with e.g.
-DCMAKE_DISABLE_FIND_PACKAGE_KF5Prison=TRUE.
Summary:
Wayland has an entire new protocol for getting and setting clipboard
when we don't have focus. Unfortunately this means reinventing
QClipboard from the QPA.
Not mergable as-is, especially the hardcoded line in CMakeLists but
uploaded to show direction.
It uses the newly agreed approach of using QtWayland generated classes
in clients directly rather than writing full pimpl API-fixed wrappers
first,
as ultimately that didn't really help do anything.
Code is written so that it can be moved to KWindowSystem if needed by
KDEConnect or others.
Test Plan: Copying and pasting all over the place
Summary:
kde4_add_app_icon is fairly deprecated. additionally the call itself
was madness because it actually pulls the icon out of oxygen in the install
location. that is assuming the icon theme is even installed at build time
(which is probably always not true in our binary factorization
environments). lastly the app_icon helper is only useful to pick up
icons for osx and windows, neither are target platforms for plasma.
remove the app_icon call entirely until a use for it arises, which should
be... never... unless we decide that we want to replace explorer.exe ;)
Reviewers: davidedmundson
Reviewed By: davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21766
Launching .desktop files using KProcess skips handling that should be done
when launching apps. E.g. opening an URL with Firefox will make the new window
open in background if Firefox is already running, because startup notification
hasn't been handled at all. And KProcess is useless in this case anyway,
as Klipper doesn't care about stdout of Firefox.
Summary:
...for more consistency and also drop the comment, which has become
obsolete. Prison has been released with KDE Frameworks 5.29.0.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4568
Summary:
Klipper shows a notification when the shortcuts next/prev history item
gets triggered. This notification used to be implemented in the class
KlipperTray. With the switch from SNI based clipper to a Plasmoid the
notification got lost as the Plasmoid doesn't use the KlipperTray class
at all.
This change moves the notification handling from KlipperTray to Klipper
so that it gets emitted for both SNI and Plasmoid based klipper.
BUG: 368808
FIXED-IN: 5.8.1
Test Plan: Set the shortcuts, triggered them and verified the notification gets shown.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2942
By invoking saveHistory after each change we ensure that the clipboard
doesn't lose data in case klipper (or in dataengine mode plasmashell)
crashes.
To not cause stalls, the saving is performed in a thread using
QtConcurrentRun. As klipper itself is not thread save a Mutex is
used to lock changes in the HistoryModel.
To not overload the system the save operations are delayed and queued.
Each save is delayed by five seconds since the last clipboard change.
So if the clipboard is changed multiple times in a short interval it
doesn't get synced to the disk till the interaction has settled.
BUG: 343333
FIXED-IN: 5.3.0
REVIEW: 122382
When clicking the barcode button, the view is changed to just show
the barcode instead of opening a dialog. By default a QR Code is
displayed.
A tool button is added which allows to change the barcode type, with
the following barcodes being supported:
* QR
* Data Matrix
* Code 39
* Code 93
REVIEW: 122402
As Prison no longer provides a QWidget based API, we need to do the
mapping to a QWidget ourself.
Note: for the plasmoid I'm considering switching to a non-widget based
solution.
REVIEW: 122386
The ClipboardEngine provides a service which in turn starts a
ClipboardJob. The following operations are globally supported:
* configureKlipper
* clearHistory
And the following operations are supported on uuid (base64):
* select
* remove
* edit
* barcode
* action
barcode is only supported if klipper gets compiled with prison support,
this is announced as data element "supportsBarcodes" in the "clipboard"
source of the DataEngine.
The HistoryModel provides the needed functionality to be hooked into
History. It's not setting up the chaining (that's implicit in a model)
and uses shared pointer. Both needs further adjustments in Klipper.
This ports the workarounds using query pointer from XLib to XCB. At the
same time the build system is adjusted to only link against XCB and
Qt5::X11Extras if we are building for X11 and the define is taken from
config-X11.h instead of setting a define through CMakeLists.txt.
REVIEW: 118637