Summary:
anchor the layouts of config dialogs to left
this way they will look the same normally (they
are positioned at x 0 normally) but will be
anchored to right instead if layout mirroring is enabled
CCBUG:372721
Test Plan: opened all config dialogs both in ltr and ltr layouts
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3456
Summary:
In the change to the new system tray one of the old manual tests to run
SNIs got lost. This restores the version that was in Plasma 5.5.
Test Plan: Ran test. SNI appeared
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3421
Summary:
it's very rare that the icon list in the hidden area
of the systray is long enough to get a scrollbar, but
when it does it had a couple of issues:
sometimes it gets an horizontal scrollbar too and
the wheel events gets eaten:
always disable the horizontal scrollbar and
ignore wheel events over the label.
wheel events over the icon are still managed by
the applet (so still possible to for instance
adjusting the volume on pa applet)
BUG:372050
Test Plan:
hidden all the cions to enable scrollbar: wheel over
the text scrolls the view, over the icon adjusts the volume
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3263
Summary:
it's very rare that the icon list in the hidden area
of the systray is long enough to get a scrollbar, but
when it does it had a couple of issues:
sometimes it gets an horizontal scrollbar too and
the wheel events gets eaten:
always disable the horizontal scrollbar and
ignore wheel events over the label.
wheel events over the icon are still managed by
the applet (so still possible to for instance
adjusting the volume on pa applet)
BUG:372050
Test Plan:
hidden all the cions to enable scrollbar: wheel over
the text scrolls the view, over the icon adjusts the volume
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3263
Test Plan:
Had text in text edit
pressed escape twice.
First pressed cleared, second closed as before (but from the external handling)
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3259
Summary:
A lot of applets have independent handling making escape close the
expanded representation. However not all of them do.
This leads to both duplicated code and inconsistencies, so we should
tackle this at the source.
If an applet was already using escape internally it will be accepting
the event, and so this code will not cause any regressions.
This patch also removes the stackview forwarding events to the active
child as this doesn't make sense - the active child will already have
focus and get the key event first, so this just created a recursive
chain (which Qt was thankfully fixing for us). Removing it is needed for
this to work.
BUG: 362657
Test Plan:
Pressed escape on various applets (e.g plasma-pa)
Pressed escape on the expander applet list view
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3257
Summary:
Some users complain that applets do not behave like applets in the
system tray, this is because they're not adding them in the system tray.
This makes it a bit more intuitive to add applets to the system tray by
allowing drag and drop of applets with NotificationArea=true into the
system tray.
CCBUG: 358283
Test Plan:
Dragged digital clock over system tray
system tray moved and the clock was added to the side
Dragged kate sessions over system tray
on drop, kate sessions applet was added to the tray
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3212
Summary:
Changes triggered by investigation into a long-running high CPU usage bug with system tray animations. The systray itself had icon name to icon resolution code, which was being triggered (twice) for every icon, every time any icon in the systray was updated. This code was spinning up a KIconLoader on each of these instances, and throwing it directly away. Each one triggered a large quantity of memory allocations and disk scans.
This patch moves the extra bit of "appName" logic from the native part of the system tray to the statusnotifieritem datasource, which already had a stored 'customIconLoader' to handle icon theme paths, and removes the special lookup from the sytemtray applet completely. It also prefers icons provided by the dataengine to doing another lookup (contentious?). This removes all the extra CPU usage outside of the QML scene graph and graphics drivers locally.
This is very much a looking for feedback item - there are things about the icon loading paths I almost certainly haven't appreciated yet, and perhaps preferring loading by icon name in the applet has a another purpose.
BUG: 356479
Test Plan: Have tested locally with kgpg and steam, the two apps I have that trigger the old code path. In neither case, however, did the appName logic produce a different result to the code with just the icon search path in statusnotifieritem.
Reviewers: #plasma, davidedmundson, mart
Reviewed By: #plasma, davidedmundson, mart
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2986
Summary:
on Qt 5.6/5.7 changed signal was emitted at startup as well,
triggering plasmoid.configuration.onSelectedTimeZonesChanged
in Qt 5.8 this doesn't happen, giving an empty clock at startup
this makes sure allTimezones gets built
Test Plan: with Qt 5.8 the clock is shown correctly
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2946
Summary:
on Qt 5.6/5.7 changed signal was emitted at startup as well,
triggering plasmoid.configuration.onSelectedTimeZonesChanged
in Qt 5.8 this doesn't happen, giving an empty clock at startup
this makes sure allTimezones gets built
Test Plan: with Qt 5.8 the clock is shown correctly
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2946
Summary:
Commit 8e1339887a in Plasma 5.8 removed a
minimum size on the panel spacer, which is what we want, however if no
minimum size is set on an applet in a panel the panel's AppletContainer
sets the minmimum width to be the same as the height.
This was preventing people having tiny panel spacers.
BUG: 369823
Test Plan: Reporter tested the patch
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2938
Summary:
We need Local to be *always* present, even if not disaplayed as
it's used for formatting in ToolTip.dateTimeChanged()
this makes sure local is always in the connected sources, even if
it's not explicitly shown to the user
Test Plan:
tested, local timezone is not shown in clock/tooltip when
selected, and no warnings from dateTimeChanged()
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2936
Summary:
We need Local to be *always* present, even if not disaplayed as
it's used for formatting in ToolTip.dateTimeChanged()
this makes sure local is always in the connected sources, even if
it's not explicitly shown to the user
Test Plan:
tested, local timezone is not shown in clock/tooltip when
selected, and no warnings from dateTimeChanged()
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2936
When a device notification arrives, such as "you can now safely unmount" or "failed to unmount"
device notifier would unconditionally open showing an empty list.
Since we now show device notifications only connected to the device they're about, it makes no
sense to expand it for invisible devices. Applications where mounting or unmounting can fail
for non-removable devices, like Dolphin, already show the error message within the UI anyway,
making the popup redundant.
BUG: 368894
FIXED-IN: 5.8.0
Differential Revision: https://phabricator.kde.org/D2823
When there is already a config for a given plasmoid, reuse it
instead of creating a brand new plasmoid (having config groups
endlessy accumulating in the config file)
https://phabricator.kde.org/D2817
BUG:365618
BUG:365569
be able to destroy applets even when locked: delete their config
by hand.
Except in one case: when the applet gets automatically destroyed
by dbus activation do *not* clear the config, it should be
reused next time.
BUG:365618
BUG:365569
Summary:
An expanding spacer had it's minimum size set to the config.length
Allowing the panel to go from config size to infinite.
The problem is the panel length effectively defaults to the size the
spacer starts at (it gets set when we drag it into the right place)
meaning it starts off huge and can never shrink. This then leads to
applets being pushed off the panel.
We want it to be in expanding mode from 0 to config.length
and non expanding to ideally be a fixed width - though still probably
compress if it would otherwise mean the applets would overflow.
Setting the preferred size does all that implicitly; and also sets the
appropriate hint so you can have a spacer in a flexible width panel
correctly.
BUG: 352651
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2785
Summary:
Plasma::PluginLoader::self()->listAppletInfo(QString() is expensive, it
loads and parses every .desktop file individually. Twice.
The main offender is the defaultApplets property, which gets requested
multiple times from JS space, and we reparse the files every time.
Moving the work to the constructor solves that. This saves loading (on
my machine) ~900 desktop files.
Test Plan:
- wiped config, defaults appeared
- DBus activated still worked
- restore works as before
Running "time plasmashell" shows:
BEFORE:
plasmashell 4.01s user 0.46s system 87% cpu 5.116 total
plasmashell 4.01s user 0.54s system 74% cpu 6.124 total
AFTER:
plasmashell 3.17s user 0.42s system 68% cpu 5.259 total
plasmashell 3.18s user 0.46s system 81% cpu 4.475 total
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: mart, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2756
I slapped a console.time in there and it would show 1ms even on some
of the subsequent invocations, so while QML engine should do some
caching magic, calling it once is better anway.
Differential Revision: https://phabricator.kde.org/D2719
This limits the size of the notifications in the popup to 10 lines of text.
The limit was removed when it was changed to a TextEdit so text could be copied from it.
BUG: 361389
FIXED-IN: 5.8.0
This adds an entry to clear all notifications in the history.
The entry is only shown if there's actually notifications currently in the history.
BUG: 343686
FIXED-IN: 5.8.0
Differential Revision: https://phabricator.kde.org/D2383
This works around a bug or strange behavior in QtQuick Controls Slider where when
reducing the maximumValue, the value is clamped to it (ie. reduced to it) but when
increasing it again, it gets its old value back up until maximumValue.
Differential Revision: https://phabricator.kde.org/D2647
Summary:
Applet::destroy doesn't delete the applet from Containment::applets in
the same event. Potentially a dbus activated service being restarted can
be added in this time, causing us to try adding a new applet with the
same ID before the first object is deleted.
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2703
Summary:
Applet::destroy doesn't delete the applet from Containment::applets in
the same event. Potentially a dbus activated service being restarted can
be added in this time, causing us to try adding a new applet with the
same ID before the first object is deleted.
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2703
Summary:
on vertical panels the systray could get
stretched to a size taller than it should, getting
a lot of empty space
BUG:368146
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2645
Summary:
The clock in the vertical panel can't fit, it won't word wrap as the
clock is only one word long - so it needs to have a horizontalFit size
mode (without a minimum size) so that the text always fits without being
clipped.
This brings the vertical state in line with the horizontalSmall state
which also sets a minimumPointSize of 0.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2644
internalSystray is (for some reason) only set in Component.onCompleted.
This fixes the warning this causes.
Differential Revision: https://phabricator.kde.org/D2608