If you navigate to "desktop:" (without a / at the end) then create a new
folder, you'll end up with "/home/user/DesktopNew Folder", that's because
the path part of the url is empty. Change the code to always add / to the
beginning of the path when needed.
Drive-by change: silence a compiler warning about an unused parameter.
If no runners are explicitly specified the RunnerManager will read the enabled plugins from the krunnerrc file. This way enabled plugins are configurable and consistent with KRunner.
This caused a lot of CPU load, because the applets were listed and filtered for each letter typed. Now they are only listed when the match() method is called for the first time and reused for the rest of the match session.
DesktopView's constructor calls PlasmaQuick::ContainmentView(corona,
nullptr), to initialise the parent class. nullptr being the parent.
In this case it makes sense as QWindow's overload of setParent must be a
QWindow, but memory management has to happen somewhere.
The current code is broken as the course of events is:
- we delete the containment
- an existing connect to containment deleted goes to
panelContainmentDestroyed
- this updates m_panelViews and calls deleteLater
- this deleteLater isn't run before other exit handlers
The system actions model recently changed behavior to always present all
possible actions, with `AbstractEntry::isValid` driving the model role
`Kicker::DisabledRole` so that views can e.g. grey out unavailable
actions.
This was perceived as a regression by users who are annoyed at e.g.
`Hibernate` being visible when their system setup precludes it more or
less permanently.
This patch reverts this behavior.
Note that the dynamic approach we had permanently wasn't very great
anyway, as the associated favorites models would remove entries when
they became invalid, and they wouldn't come back automatically when the
entry were to become valid again. In effect that means when you added one
of these actions to e.g. the Kicker sidebar and it became unavailable
it would disappear until re-added anyways.
I can imagine use cases where dynamic behavior would be useful to have -
let's say disabling Shutdown/Reboot while a critical system update is
being performed. But in that case we'd need to fix the favorites
behavior and add some way to inform the user why the action is disabled
for a good user experienced anyhow.
BUG:426645
CCBUG: 353026
This introduces a method to toggle the display of KRunner.
With the exception that if KRunner is visible, but not focused it will
get focused again. This is required for the pin feature.
This method is then used for the default invocation using the shortcut.
Plasma core is moved away from being a template. This makes it easier
for others to mark themselves as being after. A new readme is added to
explain the design.
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.
They work, but they weren't marked as such. Now you can drad-and-drop
images of these types onto the desktop to get the correct drop menu.
BUG: 426379
FIXED-IN: 5.20
Because the content is manufactured from scratch, we need to set the
height manually, or else everything will get scrunched together.
BUG: 427281
FIXED-IN: 5.20
The LauncherTasksModel tried to avoid a model reset by making certain
assumptions to save a few cycles. Ultimately this was misguided, in-
correctly not evicting the internal app data cache as well as causing
a lot more work in the view trying to compute layout deltas and some-
times causing a few frames of ugly animations.
There likely _is_ some optimization potential here, but it needs to
be done smarter later on.
When computing the delta between the visible and the last saved launcher
order state, following the reordering of launchers, the code was incorrectly
comparing resolved and unresolved (i.e., for config storage) launcher URLs.
This lead to an incorrect result and therefore pinned tasks jumping around
in the Task Manager applet.
BUG:426880
1. Use Kirigami, not PlasmaCore, since this is a config window
2. Remoce PlasmaCore import now that it's no longer used
3. Set implicitWidth/height on Kirigami.Icon, not width/height
4. Use SmallMedium icon sizes, which is typical for list items like this
The old applet only opened the popup when a new device was attached
after the applet was loaded, not if there was already a device attached
when the applet was loaded. This commit brings back the old behavior by
re-using the approach taken in the old applet.
BUG: 426990
FIXED-IN: 5.20
A popup needs to grab the keyboard and the pointer in order to dismiss
itself when another window is clicked. It works perfectly on X11.
On Wayland though, the compositor is responsible for dismissing popups
if some surface of another application has been clicked. Note that I
said "of another application." If user clicks some surface of the same
application, the compositor won't dismiss the popup.
If the application uses only QtWidgets, then the popup will be closed
as expected in both cases. But if the application uses both Qt Quick and
Qt Widgets, e.g. plasmashell, then the popup won't be dismissed if a
QQuickItem has been clicked.
It is a Qt bug, but for the time being, this change introduces an event
filter that monitors Qt::MouseButtonPress events and when needed closes
the active popup widget. This is a workaround.
CCBUG: 379635
This also makes use of ksmserver a lot more optional. Requests to logout
go directly to org.plasma.Shutdown.
Effort has been put into keeping the QML context property usage API
compatiable even though the current code is really a mess.