Instead just set the right focus properties so that we are actually
declaring what we want instead of bypassing all the focus mechanisms.
This also uses Plasmoid.expanded to ensure we reevalute the focus
binding when the applet is reshown so it is in a known state.
This was removed in 88e9433e19 but probaly
should not have been, as doing so causes a binring loop on the width
property, even though there is no visual effect from the change.
This makes it not be too wide due to the contentItem's margins, which
was an issue that went unnoticed because it was masked by always
disabling the horizontal scrollbar. Should we ever remove that override,
there won't be any regressions now.
For these delegates, the width is computed automatically and correctly
from the parent ListView's width, taking into accounts margins and
scrollbar visibility.
- Up/Down now ensures item is completely in view
- Ctrl+F works
- Tab/Shift+Tab events are no longer eaten by the search field
- Tab/Shift+Tab now resolve to actions on the selected item first
- Can use Escape key to go back from from QR code page
In most cases the port is trivial and can even simplify the code like in
the case of the system tray applet. In the case of notifications applet,
this is causing a bigger refactor and it's now also using a TextArea
that provides the automatic scrolling when selecting behavior.
CCBUG: 437155
Now it will say "No matches" when there are no search results, and
"Clipboard is empty" when the clipboard actually is empty.
BUG: 437386
FIXED-IN: 5.23
This begins the process of porting plasma-workspace to PlasmaComponents3. At
this point, only the relatively easy work is done. Every file not ported
now has been given the reason for still using PC2 in a comment on the import
line so you can see at a glance what the blocker is by running
`grep -r "org.kde.plasma.components 2.0"` in the repo.
Everything is tested and there are no breakages or functional regressions. In
the process, a few unused imports are removed.
Here are the remaining PC3 omissions blocking what's left from getting easily
ported:
- No Highlight
- No ListItem
- No PageStack
- No ContextMenu
- No QueryDialog
- No ModelContextMenu
- TabBar has no left and right tab states
- ToolButton has no built-in method to show a menu when clicked
Which does the rendering and proper sizing for us, e.g. ensure integer scaling so the barcode remains scannable.
While at it, fix supportsBarcode (wasn't routed through to the delegate component when it was split out)
and add Code 128 which is in Prison now.
Also, show a label when the barcode would become too large to display (mostly for the 1D barcodes).
The Prison item does not use a thread for generating the barcode like the dataengine does but it's super fast.
Differential Revision: https://phabricator.kde.org/D29478
Summary:
The Clipboard and Notifications applets live in plasma-workspace; port them to use
Kirigami.PlaceholderMessage
Test Plan:
Clipboard: {F8253980}
Notifications: {F8253981}
Reviewers: #vdg, #plasma, broulik, niccolove, cblack
Reviewed By: #vdg, #plasma, niccolove, cblack
Subscribers: plasma-devel
Tags: #plasma
Maniphest Tasks: T13021
Differential Revision: https://phabricator.kde.org/D29109
Adds a hint when the clipboard history is empty to be consistent with all the
other plasmoids, it's not pixel-perfect but good enough. Also improve alignment
of the search and highlight
BUG: 344159
This patch simplifies the new Klipper plasmoid by removing the custom highlight
implementation and using ListView's highlight property similar to Kickoff.
This also gets rid of the annoying lagging-behind selection rectangle and it
not properly repositioning when scrolling the list.
I also implemented keyboard navigation similar to Kickoff.
Open the plasmoid and start typing and your input will be forwarded to
the filter input. Use arrow up and down to navigate between entries and
Return to select them.
Not yet reachable via keyboard only are the action keys.
REVIEW: 119772
The Plasmoid is designed to go into the notification area. It's
populated with data from the clipboard data engine and supports all
actions on the items in the same way as the good old klipper.
Feedback appreciated!
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.