Otherwise the positioner will get completely confused.
When a notification is closed, the popup will already be closed in response to sourceRemoved.
Also, when triggering an action, call closePopup instead of hiding the popup.
(cherry picked from commit b97fdfa293)
Differential Revision: https://phabricator.kde.org/D4632
This belongs in a header only (where it already is) and my IDE complains about it.
Since the macro expands to nothing anyway this doesn't change anything.
Differential Revision: https://phabricator.kde.org/D4456
This is the same Plasma ContainmentInterface does. Otherwise QtQuick gets confused about mouse state.
Differential Revision: https://phabricator.kde.org/D4455
Also don't try to call SetPosition when position didn't change.
Fixes sometimes reseting position to 0 after expanding applet.
Differential Revision: https://phabricator.kde.org/D3904
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
when an applet is deleted, remove its fullrep from stackview before
the applet actaully goes away, as QQC1 StackView remains in an inconsistent
styate if one of its pages is deleted without having been fully removed
reviewed-by: kbroulik
BUG:373812
When opening the calendar popup of the digital clock plasmoid, the
selection is on the day the popup was last opened -- possibly days or
weeks ago. This patch fixes that.
REVIEW: 129308
Scrolling over empty space or applet that doesn't handle
wheel events no longer activates desktop containment actions.
Differential Revision: https://phabricator.kde.org/D3572
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:
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:
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
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