Summary:
Remember the autostart path instead of looking it up over and over.
Depends on D22387
Test Plan: Plasma starts normally for me
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22390
This allows new startup procedures to use a session manager and also
allows us to slowly replace the session manager without breaking plasma.
Following on from the previous refactor, Startup and Shutdown are moved
from kmserver and the previous calls into KSMserver are replaced with
DBus calls.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21995
Summary:
The inhibition was dysfunctional, as powerdevil delays the inhibition
by 5 seconds (and is already stopped when the delay times out). Also
powerdevil handles concurrent user session shutdowns and sleep requests
itself, so the code is obsolete.
As KDELibs4Support pulled in a number of Frameworks, we have to
explicitly add these now.
Reviewers: #plasma, broulik, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: apol, sitter, anthonyfieroni, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22296
Summary:
Ejecting e.g. a USB stick removes it from the bus (bus power is removed),
but the last notification should be kept, otherwise a message like
"The device can be savely removed" immediately disappears.
Unfortunately it is almost impossible to tell when a device has been
physically removed (only indirectly, when a new device is plugged into
the same port), so allow some small leakage - in case the same device is
later replugged, no leakage happens.
Test Plan:
Card reader:
1.insert medium, mount, unmount
-> message "Device can be savely removed" is shown in device notifier
for 5 seconds
2. eject medium, reinsert
-> device appears without message and with default label
Reviewers: #plasma, broulik, ngraham
Reviewed By: ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22312
Summary:
We're currently using a custom tyle for song titles and artist info in the lock screen's media controls.
This patch applies common KDE title & subtitle style as seen in e.g. Kickoff or plasma-nm applet-
Because the lock screen has increased font sizes, corrections for the title and subtitle have also been made.
Test Plan:
Before:
{F6960714}
After:
{F6960717}
Reviewers: #plasma, #vdg, ngraham
Reviewed By: #vdg, ngraham
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22231
Summary:
It saves us from going through the deprecated (slower) path and will leverage the PluginLoader lookup cache.
Depends on D22267.
Test Plan: Started plasma, containment actions are still found
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22268
This makes Klipper identify as org.kde.klipper to the notification service even when running inside of Plasma and installs a rule
to disable it from history by default.
BUG: 408989
FIXED-IN: 5.16.3
Differential Revision: https://phabricator.kde.org/D21963
Previously, it would ask ksmserver to show the logout prompt and otherwise directly initate a logout through libSM.
The latter got removed, which is a good thing, but now we need to always know ksmserver which should know what to do.
Differential Revision: https://phabricator.kde.org/D22264
ScreenScaleFactors is a list of scales per output. We want to read the ScaleFactor number for GTK instead.
Also, floor the number so that when you use e.g. 2.5x scaling you still get some scaling out of GTK apps still.
Differential Revision: https://phabricator.kde.org/D22236
Summary:
The old code path is old and even sometimes uses the ICE protocol to
start a logout from ksmserver. It's quite archaic and unreadable,
KDisplayManager is even worse.
The new code consists of two parts.
A QML friendly front end QObject that we can register in a plugin that
can trigger actions such as prompting a logout or suspending the system
and a singleton that talks to the relevant backend.
Backends are:
* Any logind interface
* Consolekit2
* Consolekit0.4 + UPower
New API loading is also entirely asyncronous.
There are some behavioural changes:
* Creating a logout prompt is called directly instead of going via
ksmserver. The prompt then calls into ksmserver when accepted
* Suspend is called directly instead of going via powerdevil through
some kdelibs4support solid code.
All DBus calls use generated XML files, instead of big QDBusMessage
commands. It's a bit overkill in terms of what we generate, but that's
ready for moving SessionModel in here and killing KDisplayManager.
Patch looks huge because of all the XML files, but is otherwise very
simple.
It is not currently an API break.
Test Plan:
Ran sessionstest on my logind machine
A BSD user tested CK1
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: pino, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D19389
Summary:
Don't do queries on unknown values.
Don't create a KDesktopFile until we know we're going to need it
Test Plan: Ran plasma with debugs, didn't see any regressions.
Reviewers: #plasma, hein
Reviewed By: #plasma, hein
Subscribers: hein, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22162
Summary:
it was the only remaining user of that dialog helper.
the connection between the two was fairly meh. the engine would invoke the
kded module over dbus, the module would then process the request, find that
only one desktop entry is specified, resulting in one action being found
and then running that action on behalf of the engine. this is overly
complicated for no additional gain. the engine is the sole user of this
functionality AND it already had knowledge of the service system, so
soliduiserver in this case doesn't actually add anything. it's just a more
involved call chain.
the useful code of soliduiserver is now in the hotplug dataengine directly
and the soliduiserver no longer supports the actions dialog. hotplug is now
the sole authority for hotplugging.
soliduiserver:
- include cleanup
- all classes no longer in use have been removed
- kdelibs4support is no longer a link target
- new link targets i18n + widgetsaddons (previously pulled in by
kdelibs4support)
hotplug:
- hotplugjob now directly executes service actions using classes imported
from soliduiserver
- no longer links qtdbus
- new translation domain plasma_engine_hotplug (for i18n call in imported
service classes)
- new link against ki18n for that reason
Test Plan: running an action works same as before, internally it no longer relies on dbus/kded
Reviewers: broulik
Reviewed By: broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21761
When multiple identical notifications are sent in quick succession, discard the request and let it fail.
Previously it would always replace the last notification if identical, now it discards the request and only does so if it happened
within 1 second of the last notification to avoid discarding genuine identical notifications like when deleting two plasmoids of
the same type.
BUG: 409157
FIXED-IN: 5.16.3
Differential Revision: https://phabricator.kde.org/D22088
This makes it consistent with the configure button of the items in the list below.
BUG: 409140
FIXED-IN: 5.16.2
Differential Revision: https://phabricator.kde.org/D22075
Summary:
Instead of loading the image size of the scaled window, use the actual resolution of the display.
This way no scaling will be needed on high dpi displays.
Test Plan: Added debug statements that load the wallpaper that matches my monitor size.
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22078
Summary:
this was implemented using a nested loop, which is simply not viable
because nested looping may work on inconsistent object states and cause
crashes all over the place. furthermore sleeping probably has no real use
case as there isn't anything you could be sleeping for
prevent any future problems by making the API method do nothing and instead
print a warning about it being deprecated.
should be removed when moving over to kf6
Test Plan: prints warning when sleeping
Reviewers: davidedmundson, mart
Reviewed By: davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22070
Summary:
the sleep is implemented with a nested event loop which may result in
segfaults when something in the new loop stack accesses objects from the
original loop stack that are presently in a bad state because they were
not meant to be accessed (and only can because of the nesting).
to aid in debugging let's leave a trace of the fact that sleep was used
when in fact, using sleep is super risky.
Test Plan: warning gets printed when sleeping
Reviewers: mart
Reviewed By: mart
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21895
Test Plan: system tray build with -DQT_NO_FOREACH, still does system tray things
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22066
If a notification isn't configurable (e.g. because the application doesn't set a desktop-entry hint),
there's no way for the user to keep it out of the history if they so desire, causing excess history spam.
Differential Revision: https://phabricator.kde.org/D22048
The popup width is fixed, so don't rely on the actual dialog window width which might be bollocks.
More importantly, place the popups immediately and before they are shown so they show up
correctly and don't fly all over the place.
It can happen that the popup contents aren't readily laid out when we enter positionPopups() after
object creation, so don't reserve any space for the popup until it
Differential Revision: https://phabricator.kde.org/D22045
Register notification and job tracker services with "allow replacement" flag if not plasmashell,
so when it eventually comes up, it can claim the service and then cling on to it.
BUG: 408250
FIXED-IN: 5.16.2
Differential Revision: https://phabricator.kde.org/D22017
Summary:
Fixes regression from the startkde C++ re-write which made ksmserver
start the kscreenlocker in wayland session, resulting in the double
lockscreeens.
Test Plan: after applying patch I only get one lockscreen
Reviewers: apol
Reviewed By: apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D22021