Currently the large spacing setting for the System Tray is different from the large
spacing setting for Task Manager icons. So when both are set to large (e.g. in Tablet
mode) they look out of sync.
With the keyboard navigation patch there is the issue that sometimes,
due to sorting by SortFilterModel, the stack order of the items doesn't
correspond to the visual order of the items.
This is a problem wrt the recently introduced keyboard navigation, as
the tab order of items in qml is completely tied to the stack order,
resulting in an erratic tab navigation order (usually happens with
device notifier or bluetooth applets for instance)
All the sizing and positioning code in this SvgItem relies on assumption
that plasmoid's location would we strictly either one of four edge
types. So this patch ensures that this thin separator line is only
visible when this assumption is true. Otherwise its both width and
height get reset (by binding `undefined`), and SVG starts filling up
the whole available area, which leads to a visual glitch that looks
like a as grayed out or faded applet.
See also: https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/576
BUG: 449535
Allow the Panel to get active keyboard focus via a kwyboard shortcut which will cycle between all panels.
When a panel has focus, the active focus can be navigated around either with tab/backtab or arrow keys.
Simple popup applets which only display an icon will work automatically,
Complex applets like the System tray or the taskbar will have focus that can navigate on all their sub-elements, to activate a particular systray applet or activate a particular window
Co-authored with Benjamin Port<benjamin.port@enioka.com>
CCBUG: 352476
Over the years we've changed icon spacing many times. And every time we
do, we get bug reports about it from people who were happier with the
previous value. Typically we close these bug reports as RESOLVED
INTENTIONAL, but it always leaves a sour taste in the mouth. People's
preferences for spacings and paddings are legitimate.
In addition, a larger spacing can be quite useful in Tablet Mode, to
increase the size of the touch targets to be closer to the size of the
user's finger.
This commit adds a simple UI to switch the spacings of the visible items
between three values, with the middle one that matches the current
spacing being the default. While Tablet Mode is activated, the spacing is
automatically set to its highest value and made non-user-adjustable,
just like we already do this for the icon size setting.
Normally we don't use Kirigami in applets, so this might on its face
seem odd, but it's there for a reason, so add a comment explaining why.
GIT_SILENT
The system tray doesn't follow the panel opacity (it's always
transparent even when the setting is set to opaque or dynamic
with a maximised window present)
BUG: 439025
FIXED-IN: 5.23.5
This setting is more appropriate when in tablet mode, as it makes the
System Tray icons scale up to fill the panel's height/width. When tablet
mode exits, it returns to the default icon size setting (unless the user
already set to always be in "scale with panel" mode.
CCBUG: 439922
This makes the expander arrow match the scale of all the other icons
when using the "Scale with panel width" setting. Otherwise it looks too
small and is hard to use in tablet mode, if you're using that setting for
increased touch-friendliness.
BUG: 439922
FIXED-IN: 5.23
Refactor and simply logic of "expanded" state when dialog with active applet or list of hidden applets is shown.
Fixes a problem with keyboard shortcut activation.
It also fixes a bug when dialog closes on "go-back" button click.
BUG: 427685
FIXED-IN: 5.21
CCBUG: 400278
We were using a > when we should have been using a >=, so there was one
panel thickness that would make icons be too large for their panel and
get squeezed together uncomfortably.
BUG: 427690
FIXED-IN: 5.20.1
Right now he system tray displays a two row/column view at 50px, which
makes the two rows or columns feel a bit too squeezed.
This MR increases the threshold by adding some spacing, which changes
the cut-off to a 56px panel. As a result, it doesn't look as squeezed.
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.
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.
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.
--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.
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
Summary: Some `onXyzChanged` signals do not send value - fix connection to use value directly from the sender.
Test Plan: Disable or enable plasmoid in System Tray setting - it should work correctly.
Reviewers: #plasma_workspaces, #plasma, ngraham, apol, broulik, davidedmundson
Reviewed By: apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D29356
Summary:
The previous patch updates the pinned state only for the active applet. For instance, if you open the Networks applet and pin it, then switch to the Clipboard applet and click on the history item, then the Clipboard applet closes. This is because we need to use binding instead of assignment.
See https://phabricator.kde.org/D28408.
Reviewers: ngraham
Reviewed By: ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28483
Summary:
When I pin a Klipper widget and then click on a history item, the Klipper widget closes.
To fix this bug, we need to check if Klipped is pinned, but to be able to do this, we also need to "forward" the pinned state from the SystemTray applet to the Klipper applet.
BUG: 416510
FIXED-IN: 5.19.0
Reviewers: ngraham, #plasma
Reviewed By: ngraham
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28408
Summary: This change simplifies icon size logic - now it is controled only in one place: AbstractItem. This gives additional benefits, like icons perfectly centered.
Test Plan: Highlights should always be centered
Reviewers: #plasma_workspaces, #plasma, ngraham, broulik, davidedmundson, apol
Reviewed By: #plasma_workspaces, #plasma, ngraham, broulik
Subscribers: mart, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28109
Summary:
For very narrow panel item size is too big (item + padding exceed panel size). This adds a check to not exceed panel size.
Before:
{F8167941}
After:
{F8167942}
Test Plan:
* Make panel very narrow - icons should fit into panel
* Repeat for vertical/horizontal
Reviewers: #plasma_workspaces, #plasma, ngraham, broulik
Reviewed By: ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27958
Summary:
Depends on D27465
@ngraham recommended that I split up https://phabricator.kde.org/D27438 into three patches:
1. The foundation code to get landed first so that the other two patches can be done as patches that change two separate lines instead of just one
2. Tablet Mode increases tray icon spacing
3. This patch - Increase tray icon spacing slightly on Non-Tablet Mode (half of the amount it increases by in Tablet Mode)
This patch is for the third patch of the three recommended patches to split the original patch into, and makes the click areas for the System Tray Plasmoid slightly larger in normal Plasma.
Test Plan:
1. Install this patch to the System Tray Plasmoid
BEFORE:
{F8109485}
AFTER:
{F8109489}
Reviewers: #vdg, niccolove, ngraham
Reviewed By: #vdg, niccolove, ngraham
Subscribers: kmaterka, gvgeo, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27466
Summary:
Use the unified data model everywhere, not just in configuration. This simplifies UI code, separetes presentation from data.
This requires the use of ListView and GridView.
This change enables the implementation of more advanced sorting algorithms for systemtray items.
Test Plan: Affects almost all areas of system tray.
Reviewers: #plasma_workspaces, #plasma, davidedmundson, ngraham, broulik
Reviewed By: #plasma_workspaces, #plasma, davidedmundson, ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26992
Summary:
@ngraham recommended that I split up https://phabricator.kde.org/D27438 into three patches:
1. The foundation code to get landed first so that the other two patches can be done as patches that change two separate lines instead of just one
2. Tablet Mode increases tray icon spacing
3. Increase tray icon spacing slightly on Non-Tablet Mode (half of the amount it increases by in Tablet Mode)
This patch integrates both patch 1 and 2 of what ngraham recommended to make system tray icon click areas larger when Kirigami's Tablet Mode setting is true than they normally are.
Test Plan:
1. Test that System Tray still works after these changes have been made
2. Check that when Kirigami.Settings.tabletMode is enabled the system tray icon click areas become slightly larger in size
Reviewers: ngraham, #vdg, #plasma, niccolove
Reviewed By: ngraham, #vdg, niccolove
Subscribers: davidre, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27465