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
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
Many applets shouldn't actually appear on the phone, like
devicenotifier, the battery applet, the systray and so on
Populate all desktop files of the plasmoids with the proper
formfactors. on the desktop we keep showing everything.
on the phone most of those applets will be filtered out
Also take into account of the formfactors when populating the available
categories, wo we don't have the risk of seeing empty categories
Image takes a string and loads the relevant package at a given path
wallpapers+packageName
pluginId typically is the same as the package name on disk, but not
always, either due to bad metadata or it being deliberately mangled
during install to avoid escaped characters.
Returning the package path has the same desired effect for saving
chosen images by package names, but avoids the complexity above.
metaData presence is still queried to separate real packages from the
fake packages generated internally which represent just one image.
BUG: 423987
the source model is set asyncronously so onComponentcomplete count is 0, and when the proper source is set the notify is not emitted. furthermore the source canchange at runtime, so count needs to be reevaluated every time this happens
Currently in git master there are three options for Tray icon sizing/arrangement:
1. Scale to fit + automatic number of rows/columns
2. One auto-scaling row/column
3. Two auto-scaling rows/columns
After consultation with VDG folks and many discussions, we discovered that the
latter two settings are kind of useless and are unlikely to satisfy anyone.
Instead, what some people will actually want is a way to return to the pre-Plasma
5.20 style, with one or two rows/columns of small-ish, fixed size icons.
This commit changes those two options to provide exactly that, allowing people who
don't like auto-scaling icons to return to the way their System Tray looked before
Plasma 5.20, and can also be used for global themes which are trying to emulate
Windows or Cinnamon, which have tray icons like this.
This reverts commit edc64d04a1.
This commit unfortunately caused a serious regression. Another approach
will be needed to solve 176650 and 417070.
BUG: 423995
FIXED-IN: 5.19.4
CCMAIL: alexander.lohnau@gmx.de
Right now we handle the "plugged in but not charging" state but not the
state where you're plugged in but the power supply doesn't supply enough
power to prevent discharging anyway. We can wiggle the logic around to
catch this case with the existing one for the "plugged in and not
charging" state.
Summary:
Port the Device Notifier to use an ExpandibleListItem.
Tested with:
- Removable flash drive
- Removable LUKS-encrypted hard disk drive
- Android phone
- iOS phone
- Internal disks
No regressions or departures from the current behavior were found.
The only major UI change is the loss of the progress bar, which is difficult
to display properly with an ExpandableListItem. It is replaced with a textual
display of free space and total space in the subtitle, which is more consistent with the
appearance of other ExpandableListItem-using applets, and IMO is more useful anyway.
This is a more generic term that's less likely to be inappropriate
(every document is a file, but not every file is a document) and using
"Recent Files" brings Plasma into consistency with what KIO and Dolphin
call it.
CCBUG: 424007
After !125 allowed plasmoid are not correctly stored in config. As a
result, for new installs all plasmoids is system tray settings are shown
as disabled, even if these are enabled by default.
On the lockscreen or on a single user system you can currently move the user
item horizontally across the screen without it doing anything. If the list only
contains one entry, disable interacting with it.
Before Plasma 5.20, the system tray icons were always 22px in size and became
multi-row/multi column as the panel increased in thickness.
So far in the Plasma 5.20 development cycle, we have exposed the existing
`iconSize` setting to the user to allow them to determine for themselves how
big they want the icon to be, or whether to be multi-row/column.
However this is not exposed very intuitively, as you have to already know that
the icon size determines the number of rows/columns, or that the largest "Enormous"
size produces an auto-scaling icon behavior. In other words, the UI reflects the
implementation, rather than the user's expectation.
This commit changes around the UI to more closely approximate what the user is
likely to want to configure: the number of rows/columns. The new default setting
is an "automatic" mode, which approximates the 5.19 and earlier behavior whereby
the system tray switches to a two-row/column view when the panel becomes thick
enough. In addition, users can now force it to always display one or two rows/
columns.
A major difference is that no matter which setting is set, icons now always
expand to fill the available space, which brings them in line with the margins
used for other Panel widgets.
We've now made it easier to increase the maximum volume to 150% for
those who need it due to quiet speakers. However since this could
potentially lead to excessive volume or damage to loud speakers with
long-term use, let's colorize the text to subtly indicate that this is
not a normal state.
Currently updating the DesktopView geometry and emitting signals notifying of changes to screen geometry are connected independently to QScreen::geometryChanged(), while screenGeometry() as well as availableScreenRect() and availableScreenRegion() depend on the DesktopView geometry. The incorrect order of slots being called causes the task manager to behave incorrectly on screen configuration changes, displaying either no windows or windows from a wrong screen. This also affects the desktop pager widget when configured to show the current desktop only.
BUG: 373075
Currently the applet count is filtered by activity. But for every activity all
applets in all known screens/containments are counted. If a user switches
screens regularly they will see for example that there are 7 instances of the
clock applet even though they have less screens and only one instance in their
current panel(s). This information is not useful to the user because they cannot
interact with the not visible applets in any way.
If a user selects a wallpaper from a package we want to save the package
name, not a path.
This means we continue to load the correct resolution image if a screen
size (or scale) changes at runtime.
The volume setting in plasma-pa can exceed 100%. Currently the display is limited to 100%, which can result in a mismatch between what is shown in the applet and in the OSD.
This adds an overload to volumeChanged to keep the old one compatible given it is used by e.g. kmix