1. Use Kirigami, not PlasmaCore, since this is a config window
2. Remoce PlasmaCore import now that it's no longer used
3. Set implicitWidth/height on Kirigami.Icon, not width/height
4. Use SmallMedium icon sizes, which is typical for list items like this
Today on master, the system tray menu *always* shows a back button, regardless of the context.
But when all items are visible, the back button simply acts as a "close" button, since we are
only "one layer" deep and there is nowhere to go back to. This commit fixes that issue by only
displaying the back button hen the hidden items view has any items in it such that you could go
back to it.
After much much much VDG discussion, it turned out that we don't
actually want to make the System Tray icons scale with the panel. We
returned to that with 31c7ebe319, but one
element remained: to make the icons automatically become a
two/row/column layout for thick panels, as we had for Plasma 5.19 and
earlier. This commit does that, and in the process simplifies the
configuration UI to show only the two options that we decided make sense:
1. Small icons that become two-row/column for thick panels
2. Auto-sizing icons that match the size of other panel widgets
Number one returns to being the default as it was before, and number two
is available for people/themes that want all icons to match in size.
After many many many VDG discussions, we decided to shelve the idea of
making system tray icons scale with the panel thickness by default. Too
many people didn't consider it a visual improvement. People who do like
this setting can still enable it here if they want, but it's no longer
the default.
QDBusConnectionInterface::serviceOwnerChanged is obsolete. It was used
because there was no support for watchin on serviwes usign wildcard.
Starting from Qt 5.14 it is possible, so that using obsolete function is
no longer necessary.
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
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.
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.
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.
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.
It is possible to assign default values in main.xml, but these are not
used for extraItems and knownItems. Add support for default values.
BUG: 423561
FIXED-IN: 5.19.3
Without this, the only way to show the config window for the System Tray
itself is by right-clicking, and as we all know, this is a no-no because
many users don't right-click on stuff and you can't right-click at all on
touch and we want our stuff to work on convertible devices with
touchscreens. So let's add a big beautiful button that people can click
on and touch.
This makes sure that the text doesn't touch the edges of the highlight
rect with languages that have very long words, like German and Brazilian
Portuguese.
--systemtray items are now using a rectangular form
in order to specify their hit area. So they take into
account the panel thickness in order to calculate
properly their cell length and thickness to
respect Fitt's Law. Items that are nearer to the
screen edge can now trigger all their events when
the user uses its mouse at the farest of the screen edge.
If a service was registered between us requesting a list of names from
the daemon and us processing the reply we would miss it. An event
somewhat likely given plasmashell is very busy during startup.
DBus does guarantee preserved message order, so the correct thing to do
is:
- create a match rule for new servies on DBus daemon
- start fetching a list of names
- ignore all changes that happen in the meantime
- handle the list of all names
This will be race free
This improves the applet in a variety of ways:
- Much more touch friendly than the current skinny list view
- Many more items can be displayed without needing to scroll
- Substantial code simplification
- UI improvement from no longer sometimes showing an awkward vertical
strip of icons that was invisibly scrollable but some of whose items
ate scroll events, and which pushed the header over to the left in a
somewhat random-looking way
BUG: 402681
FIXED-IN: 5.20
Add configuration UI for setting maximum icon size. This utilizes existing configuration parameter. It is a maximum allowed icon size, if panel is smaller, icon will fit to closest smaller size.
BUG: 360333
BUG: 355587
FIXED-IN: 5.20.0