Summary:
X-KDE-ParentApp is the key in desktop file to display that given service
or application is part of the another application or extension of other
application. In KDE4 this key was used to mark applets to be used in the
specific application like plasma-desktop, kdevelop, amarok etc.
In KF5 world, none of this applications have applet loading mechanism
apart from plasma*, and there are likely only Plasma applet, containment
or dataengines.
Previous API, when no/empty parentApp was passed would filter out every
application which had something as parentApp. This was to ensure only
compatible plugins are loaded in Plasma. This resulted in applets
getting excluded if they suggested that org.kde.plasmashell is their
parent application. Refine this API to,
- If no/empty parentApp is provided, provide all applets
- If parentApp is provided, filter by applet
This behavior is more filter like instead of other way around.
CHANGELOG: Applet, DataEngine and containment listing methods in
Plasma::PluginLoader no longer filters the plugins with X-KDE-ParentApp
provided when empty string is passed.
Test Plan:
tested that plasma loads properly, plasmaengineexplorer lists
all engines and plasmawindowed works fine. Neverthless requires more testing
Reviewers: mart, apol
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D22049
Summary:
The object tracker was telling me it's notifying the same value it
already got, and reading the code it seems to be already notifying when it
actually changes.
Test Plan: tests pass, plasma runs fine.
Reviewers: #plasma
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D21481
This could break old-style connects. Let's keep it as it was until KF6
as discussed in the channel. Thanks frinring for pointing it out.
This reverts commit f631aec33faf14a13b71e8be0a3fd8525345bcd1.
Summary: Instead copy the object, operate it and update it into the object.
Test Plan:
just used plasma shell and ran the tests. I'm not sure who uses this.
Issue found with clazy.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D21483
Don't pass objects to lambdas that get unused.
Don't connect to lambdas without specifying the target object, if an object
reference is passed to the lambda.
Summary:
It can be unexpected that those are not reset when clearCache() was called.
With the current logic when a theme changes the mask cache not reset also
results in wrong lookups, as the cacheid used as key does not include the
theme name.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D21172
Summary:
there are a few places which potentially pass a prefix with a trailing -,
e.g. if using directly the value of FrameSvg::prefix() or
FrameSvg::actualPrefix(). Support the assumption in such code, unbreaking
its currently not working behaviour.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: apol, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D21174
Summary:
d8a1a9eb084b19e552c789244267f7346e1b27a8 changed the condition from
hasElementPrefix(q->prefix()) to hasElementPrefix(frame->requestedPrefix)
but it is not clear why, as the background is generated from the prefix
data & the requestedPrefix is no-where in effect.
As a result sometimes the background is not rendered for a given
not-existing requestedPrefix which was mapped to an empty prefix instead.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D21175
Summary:
The specification for FrameSvg does not require that all borders exist
or that left & right and top & bottom borders have samples with the same
size in the scalable dimension.
The old assumption in the code broke e.g. themes which had special
variants per screen side for the panel-background and left out elements
for the border side which would not be rendered anyway, but only set a
margin-hint. So e.g. for a panel on the east screen edge, without the
left border element set, leftHeight would be 0 and as result also the
right border not be painted due to an empty size.
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D21106
Summary:
The new icon was just added in D20367. The current icon is semantically and visually incorrect,
and the new one fixes that.
The current text also does not begin with an action verb, and this patch fixes that too.
Test Plan:
Before:
{F6759646, size=full}
After:
{F6759647, size=full}
{F6759649, size=full}
Reviewers: #vdg, #plasma, GB_2, filipf
Reviewed By: #vdg, GB_2, filipf
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20392
Summary:
Allows themes to disable the blurring of what is behind panels,
if they either do not need it (being fully opaque) or by design want
non-blurry transparency.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D19907
Summary: Currently it just fails silently.
Test Plan: Loaded a plasmoid with an incompatible plugin, warning is shown.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: kde-frameworks-devel, plasma-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D19394
When a theme doesn't supply background contrast values, we take an educated guess based on whether it's a dark or light theme.
We didn't update the values when switching only color schemes at runtime (when theme follows it).
This lead to washed out Plasma popup and panel backgrounds. Instead, compute the fallback value at runtime.
Also, while at it, update complimentary colorscheme as well, which was forgotten here.
BUG: 401142
Differential Revision: https://phabricator.kde.org/D18487
Summary:
Leverages QSharedPointer for the reference counting.
Keeps the last value of the cacheId, as it can change sometimes and crash
the system.
Reviewers: #plasma, #frameworks, zzag
Reviewed By: #plasma, zzag
Subscribers: mart, zzag, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D17052
KPackagePrivate::internalPackage already existed, the re-assignment to a
new value causes a memory leak.
Trace:
Indirect leak of 112 byte(s) in 1 object(s) allocated from:
#0 0x544cc0 in operator new(unsigned long) (/home/kfunk/devel/install/kf5/bin/plasmashell+0x544cc0)
#1 0x7f905829163f in KPackage::Package::Package(KPackage::PackageStructure*) /home/kfunk/devel/src/kf5/kpackage/src/kpackage/package.cpp:51:9
#2 0x7f9058fad786 in Plasma::Package::Package(Plasma::PackageStructure*) /home/kfunk/devel/src/kf5/plasma-framework/src/plasma/package.cpp:66:34
#3 0x7f9058f14dee in Plasma::Corona::package() const /home/kfunk/devel/src/kf5/plasma-framework/src/plasma/corona.cpp:78:13
#4 0x5d9eb9 in ShellCorona::ShellCorona(QObject*) /home/kfunk/devel/src/kf5/plasma-workspace/shell/shellcorona.cpp:132:70
#5 0x65c31d in ShellManager::loadHandlers() /home/kfunk/devel/src/kf5/plasma-workspace/shell/shellmanager.cpp:93:21
When a dataengine failed to load it would ask PackageKit to install it but it's generally not how we want to distribute
plasmoid infrastructure these days and didn't work.
Differential Revision: https://phabricator.kde.org/D16301
It is a remnant of the Plasma Active days and didn't even compile.
This patch only removes those ifdefs, it doesn't fix any issues I found during (e.g. double lookups or the fact
that KRun::autoDelete is the default now)
Differential Revision: https://phabricator.kde.org/D16295
Summary:
At the moment we always look at the first fallback and load the original
theme again, rendering moot the fallback look-up.
Reviewers: #plasma, davidedmundson, hein
Reviewed By: #plasma, davidedmundson, hein
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D15970
Summary: This patch makes the text for removal and configuration actions consistent with one another.
Test Plan: {F6191533}
Reviewers: #plasma, #vdg, abetts
Reviewed By: #plasma, #vdg, abetts
Subscribers: abetts, broulik, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D14810
Summary:
mirroring the behavior when the applet is created by restorecontents,
invalid applets get immediately uireadyconstraint.
This solves the problem of panels not appearing when the setup js contains an non existent applet,
as the panel was waiting forever for applets to finish loading, which never happens
Test Plan: now js startup scripts with an invalid applet have panels loading correctly.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D14341
Similar to KPackage's cache this speeds up startup where plugins are repeatedly looked up.
Especially the fallback path of looking in the plugin root directly causes quite some slowdown.
Differential Revision: https://phabricator.kde.org/D14009
Allows disabling all containment actions, such as context menus, middle click paste, wheel desktop switch, etc.
Differential Revision: https://phabricator.kde.org/D14045
Summary:
A FrameSvg can have wrong mask frame if image path has been changed after
the mask frame was generated. Take image path into account when deciding
whether the mask frame should be updated to address that problem.
Depends on D13384
Reviewers: #plasma, #frameworks, mart
Reviewed By: #plasma, mart
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D13496
Summary:
When trying to update the maskFrame, there is a chance that it is already
shared by several instances of FrameSvg. In that case, do not wreck maskFrame
and instead act as follows:
* deref it
* try to lookup a matching frame in the shared frames
* if there is the matching frame, use it
* otherwise create a new one
Reviewers: #plasma, #frameworks, mart
Reviewed By: #plasma, mart
Subscribers: mart, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D13384