Summary:
libdbusmenu-qt had a quirkin it that meant it would spawn a nested
event loop when updating a menu.
In order to fix StatusNotifierItem I ended up making a fork of the 3
small classes that we needed and applying a fix, whilst we waited for
upstream.
We also were including a complicated library+plugin that handled import
and exporting, just to do importing which is rather pointless.
When appmenu support was restored, we ended up re-linking the original
dbusmenu-qt library. The original still had the same bug, manifesting in
a whole new way of Kate's bookmarks menu automatically closing when you
click on it.
This patch shares the same libdbusmenu-qt lib we have for the SNI
dataengine with the one for appmenu.
Test Plan:
Everything compiles after removing the find package for old libdbusmenu-
qt
Menu in the Plasma applet works a lot better, and doesn't have the bug
of menus randomly closing.
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3926
Massively cleanup KAppMenu by removing outdated and unused code.
The global menu has been removed as it will eventually be provided by a plasmoid (famous last words).
The biggest change, however, is that instead of relying on Windows IDs (which won't work on Wayland)
we always speak of DBus service name and object path which will be added as properties to the respective
windows. To support 3rd party applications, we also set the property in the RegisterWindow function.
This way KWin doesn't need any fallback code and can just rely on those properties.
Differential Revision: https://phabricator.kde.org/D3086
There is no need to decode the whole image and load it into memory
when we are only interested in the dimensions.
Differential Revision: https://phabricator.kde.org/D3973
I don't know how this ever worked but I recall it showing correct results but it only
showed the applet id which makes no sense to show to the user
Differential Revision: https://phabricator.kde.org/D3960
QDBusArgument MapType fits all kinds of maps but when we try to stream a map of type
other than a{sv} (which the MRPIS spec requires) into a QVariantMap we would crash.
Explicitly check signature to avoid this.
BUG: 374531
FIXED-IN: 5.8.6
Summary:
It's not used, and it doesn't even have any docs saying what it's
supposedly for.
Removing.
Test Plan: Compiles and checked it's not exported.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3945
Test Plan:
Now get a populated Panel's menu
(this doesn't answer why Marco and Kai said it worked for them though?)
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3944
Summary:
- Fixed timezone size and alignment in vertical mode
- Instead of `Flow` use `Grid` for labels as it's simpler and gives better
control over alignment
- Seperator in small horizontal mode centered between date and time and in
height now dependent on label size
- Less empty space around time in small horizontal mode
- Binding loop and initlializting anchor errors fixed
- Elements now size completely down and have always the same ratio to each other
with the time label being the largest
- Round functions removed since they disrupted the resizing for small sizes
- Introduce max font size values for text elements in panel mode
BUG: 367585
BUG: 360059
BUG: 373396
Reviewers: #plasma, mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3630
Summary:
It's in case klauncher fails to return from autostart, however autostart
is now handled by ksmserver in process - so this will always be called.
I failed to notice it when I did the initial move
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3054
When applying KPropertiesDialog of a Link desktop file, the URL might have changed.
In this case nuke the local file and start afresh.
Differential Revision: https://phabricator.kde.org/D3906
Summary:
bc1324ceeb in startkde had a change
Don't try to set $qdbus to a path to qdbus... it wasn't used
conherently, without issue don't really need it
this wasn't synced with startplasma.
BUG: 374402
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3915
Both CanRaise and CanQuit are required only for the context menu whose actions
are updated before it is shown. Avoids some needless binding re-evaluations.
Previously, we would show "paused" only when explicitly paused, not when there isn't even
media loaded. "Paused" should always be the icon when nothing's playing, obviously.
This also avoids a weird sequence of "paused - playing - hidden" when stopping a paused track.
Depending on the kind of media, e.g. network stream, or slow player with huge
collection, it can take a considerable amount of time for it to start playing.
Avoid having panel contents jumping around because of this.
BUG: 367807
FIXED-IN: 5.9.0
When playing a song, it's either the artist or empty. However, when nothing's playing
we would have a main text of "No media playing" with the applet description as
subtext "allows to control media" which is out of place
This will eventually allow the notification applet to show a better finished notification.
Currently, it just uses whatever was set as second info label last.
While this works for when copying a single file, it's utterly wrong when copying folders
as this will be a random file that was copied last.
Differential Revision: https://phabricator.kde.org/D3819
Ensures our job data engine will get notified about the dest url which otherwise
are just announced in a jobUrlsChanged signal which makes it inconsistent with
the other properties and cumbersome to use.
Differential Revision: https://phabricator.kde.org/D3818
NativeRendering often utterly breaks at large font sizes. We had this in the previous lock screen design.
Differential Revision: https://phabricator.kde.org/D3823
The label is typically wider than the icon, so allow for 1.5x icon width as default
and also assume the label will be two lines of text which is the more common case imho.
This keeps a newly created icon applet from being cramped and tiny
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:
Both when exporting and importing plasma layout to json
consider the panel visibility as well together the other
properties
BUG:374226
Test Plan: tried an exported layout with autohide panel
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3852
Summary:
this replaces the approach with the expose event in
20b439a4f4 by directly monitoring the xcb screen change
notify native event
Test Plan:
attaching and detaching the external screen on a laptop
configured to deactivate the internal screen upon connection
same behavior as D3777
Reviewers: sebas, davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: pmuralidharan, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3822
Summary:
this replaces the approach with the expose event in
20b439a4f4 by directly monitoring the xcb screen change
notify native event
Test Plan:
attaching and detaching the external screen on a laptop
configured to deactivate the internal screen upon connection
same behavior as D3777
Reviewers: sebas, davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: pmuralidharan, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3822
Brings it in line with the Leave overlay.
Reviewers: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3033
Summary:
in a corner case that is used a lot, the internal laptop screen
gets automatically disabled when an external screen is connected.
the only QScreen* available from the QGuiApp gets recycled for the
new screen and there is no signal this switch occurred.
To work around this, as all the view get an expose event when this happen,
monitor the rename of the desktopview's qscreen and manage this separatedly
in the shell.
BUG:373880
Test Plan:
connection and disconnecting an external screen to the laptop
both in the case of internal screen enabled or disabled
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3777
Summary:
in a corner case that is used a lot, the internal laptop screen
gets automatically disabled when an external screen is connected.
the only QScreen* available from the QGuiApp gets recycled for the
new screen and there is no signal this switch occurred.
To work around this, as all the view get an expose event when this happen,
monitor the rename of the desktopview's qscreen and manage this separatedly
in the shell.
BUG:373880
Test Plan:
connection and disconnecting an external screen to the laptop
both in the case of internal screen enabled or disabled
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3777
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