Previously, clicking the Edit button opened a dialog to edit it in. Now
it is done inside the applet itself. This makes it much less disruptive
and jarring, and makes the editing action feel smoother.
- 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
This action generates a QR code, but refers to it as a barcode in the UI
strings. In English at least, this is confusing; barcodes and QR codes
are different things, rather than one being a subset of the other. So
let's change the base English text to call the generated image a QR
code rather than a barcode. Any other language where the translation
for "barcode" is appropriate can substitute that in the translated text.
Pressing the delete key will now delete the highlighted list item under
any of the following circumstances:
1. A list item is selected and has focus
2. A list item is selected and the search field has focus but it is
empty or the insertion point is at the end of the string (in either
case, pressing the delete key would otherwise do nothing)
This allows quickly and easily deleting clipboard items using only the
keyboard, including after using the search field to filter it down.
BUG: 439174
FIXED-IN: 5.78
All applets for placing a group of buttons use a Layout items (RowLayout or ColumnLayout) that has a non-zero spacing by default, while delegate buttons use a Row that has a zero spacing by default. This MR makes the delegate buttons use a RowLayout, which makes them look similar to the rest of the button groups.
This commit fixes the alignment of the delegate buttons, which is sometimes
broken. As stated in the Qt docs, we should use AnchorChanges instead of
conditional bindings.
BUG: 437044
FIXED-IN: 5.22.4
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
We ported units to use the PlasmaCore.Units singleton earlier; now it's
time to do the same thing for PlasmaCore.Theme.
There are no UI changes or regressions detected.
When you delete multiple items individually, you can keep clicking
without moving your mouse because the delete button doesn't change its
position (except for when the scrollbar hides, but this is inevitable).
However this ceases to be true for tall entries containing files,
images, URLs, or previews, because the buttons are always centered
vertically in the item. So you have to re-position your mouse to click
on the delete button in its new position, and then do so again to
account for the height of the next item, and so forth.
This commit fixed that problem by top-aligning the row of hover buttons,
but only for tall items. For default-height items, they remain
vertically centered.
Currently, the Clear History action remains visible even if the clipboard
history is empty. This patch changes this so the behavior of the Clear History
action will be the same as in the Notifications widget.
The context property version is slower to access and won't be supported
in Qt6. Let's port away from it and use the singleton version instead.
Here was my full process for making this change:
1. Made the change with `find . -name '*.qml' | xargs perl -pi -e 's/units\./PlasmaCore\.Units\./g'`
2. Verified no more occurrences with `grep -r " units."`
3. Made sure this didn't change any comments in a silly way by inspecting the output of `git diff | grep "+ " | grep "//"`
4. Manually inspected the full git diff to make sure there were no other unintentional or silly changes (there were none)
5. verified that all changed files have the PlasmaCore import with the correct name with `for FILE in `git status | grep modified | cut -d ":" -f 3`; do grep -q "as PlasmaCore" $FILE || echo "$FILE needs the PlasmaCore import"; done`
This yields several benefits:
- The action automatically goes into the header in the system tray
representation, which improves the presentation
- We get a context menu action for it for free, which is a nice
accelerator for experts
the comboboix of a very rarely used feature right
in the header area is super noisy, looks misaligned and puts the feature
in a too much prominent role.
Put everything under a popup menu, mustually exclusive actions will be
shown as radiobuttons
Most of our other applets do this so their configuration window can be
reached without having to right-click anything, which is especially
important for touch. The Clipboard applet should too.
There's no point in keeping the search text if you're clearing all
entries, since doing that removes all data that the search field would
be searching through.
Otherwise if you search for some text and it produces no results, the
search field becomes disabled so you can't change or clear your search
and use the applet again!
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