The intention of this code appears to be finding system tray applets, since the systemtray is a containment within another applet/containment
However the code causes an infinit recursion since we are calling addContainment on the same containment again
The recursion also is unnecessary since corona->containments() already lists the system tray containment, so we don't need to find it by recursing through the panel's children
This fixes that the titlebar does not update its accent color when
switching from transparent to another color.
Test: choose From current color scheme, apply and then choose From
wallpaper, apply.
Use the proper DBus signal to notify the change of
accentColorFromWallpaper.
applyScheme needs the latest accentColor but when it's called from `KCMColors::saveColors()`,
the accent color in kdeglobals is still old, that's why the hack works
by saving the value before `ManagedConfigModule::save()`. Therefore we
can pass the latest accent color value to applyScheme to fix it and
remove the ugly hack.
The current wallpaper image can be set by a Plasma script. In that case,
the wallpaper is not added to the list, so also check the current image
is already added after opening the config dialog.
BUG: 458364
FIXED-IN: 5.26
This avoids showing paths like /tmp/somefile as "500 GiB Internal
Hard Drive/tmp/somefile", or "Root/tmp/somefile".
It's more sensible to show the actual path in this case.
It still look far too alien comparing to a native PlasmaDialog style due
to the positioning, fractional scaling sizing issues and background
differences. This commit brings them somehow closer to each other.
ba44b69abf added logic to handle apps that
use an absolute path in their .desktop file to define their icon, which
works. However in the process it introduced a subtle bug: if the icon is
not an absolute path and it's just a normal icon name, when
QFileInfo::exists() checks for the existence of that string, it will
treat it as a relative file path and therefore look for it in the
current working directory, which is typically the user's homedir. If it
finds something, it will go down the wrong code path and end up
returning a blank QIcon. This can be verified by adding a folder with
the name of an app icon into ~ and restarting plasmashell; that app in
Kickoff will have a blank icon.
To fix this, the icon loading code now first checks whether the icon
returned by m_service->icon() is actually an absolute path. If not, it
skips the logic to look for it on disk and goes straight to the
codepath that looks for an icon with that name in the icon theme.
To minimize disk reads, it checks for absolute-file-path-ness by
inspecting the string returned by m_service->icon() rather than using
QFileInfo::isAbsolute(), because this is a hot code path and most icons
will not have relative paths, so checking the disk for every one of
them would be a waste of resources.
BUG: 457965
FIXED-IN: 5.24.7
Press-and-hold is fairly common on touch UIs, but click-and-hold is a
very rare interaction. As a result, the user is much more likely to
enter Edit Mode accidentally while trying to drag something on the
desktop than they are to know that click-and-hold works here and do
it intentionally.
Let's disable click-and-hold and only enter Edit Mode with a
press-and-hold using a touch device. For pointing device users, there
are already multiple context menus items that will let them enter Edit
Mode.
BUG: 457979
FIXED-IN: 5.26
This adds `m_blockRestorePreviousWindow` to avoid restoring focus to the
panel, and replace QHash with QMap to save panel orders.
CCBUG: 453166
CCBUG: 352476
Those files may be executable and the user wants them to execute. For
example:
- Shell scripts the user has written to perform commonly-used actions
- Windows executables opened with WINE
For this reason, we should stop explicitly blocking running executable
files when accessed with KRunner runners or Kicker/Kickoff/Application
Dashboard, and instead show the typical "open or execute?" dialog that
respects the user's setting for what to do in this case.
BUG: 455924
FIXED-IN: 5.26
Otherwise clicking it would show an "invalid URL" error and
trying to open the properties dialog would trigger an assert.
This can normally not happen but you can get here with e.g. plasmoidviewer
BUG: 455433