if KDeclarative::runtimePlatform() is set, then filter applets
that have formfactors set and don't match, in order to not
show on the phone applets that are desktop only
in desktop case, list all applets, for maximum retrocompatibility,
to be reconsidered for kf6
Summary:
Allows
* projects linking to Plasma to hide deprecated API up to a
given version or silence deprecation warnings after a given version,
using
* -DPLASMA_DISABLE_DEPRECATED_BEFORE_AND_AT
* -DPLASMA_NO_DEPRECATED
* -DPLASMA_DEPRECATED_WARNINGS_SINCE
* -DPLASMA_NO_DEPRECATED_WARNINGS
* -DPLASMAQUICK_DISABLE_DEPRECATED_BEFORE_AND_AT
* -DPLASMAQUICK_NO_DEPRECATED
* -DPLASMAQUICK_DEPRECATED_WARNINGS_SINCE
* -DPLASMAQUICK_NO_DEPRECATED_WARNINGS
or
* -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT
* -DKF_NO_DEPRECATED
* -DKF_DEPRECATED_WARNINGS_SINCE
* -DKF_NO_DEPRECATED_WARNINGS
Reviewers: #plasma, mart, davidedmundson, apol, mlaurent
Reviewed By: #plasma, mart, mlaurent
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D24678
Summary:
Some applets use completely the code of another one with the key
X-Plasma-RootPath.
At the moment it doesn't work on applets that have a binary plugin portion
This makes pluginloader load the plugin of the original applet we're using
Test Plan:
an applet that falls back to one that has a binary plugin now works.
ones that fall back to applets without binary plugin still work
normal applets as well
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D22675
Summary:
Extend the plasmoid startup cache to DataEngines and ContaimentActions.
Include a cache for script engines. In practice it's always the same, we don't
need to check the file system every time.
Reviewers: #plasma, davidedmundson, mart
Reviewed By: #plasma, davidedmundson, mart
Subscribers: davidedmundson, mart, broulik, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D22258
Summary: At the moment it was enabled in the PluginLoader but we were not using it anywhere.
Test Plan: See patch in plasma-workspace.
Reviewers: #plasma, #frameworks, mart
Reviewed By: #plasma, mart
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D22267
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: 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
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
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
Summary:
to minimize metadata lookups, pass the kpackage created in pluginloader
to the applet itself as args. the args structure will be used only by the
internal constructor and applet sublasses will get their args unaltered
Test Plan:
plasma loads correctly, from 3 kpackage instantiation per applet to 2
(last is in the access manager)
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9123
Test Plan:
Installed battery monitor locally with kpackagetool5 -i
moved x-test .po file from being installed systemwide to only being
inside the bundle
still get xx everywhere
BUG: 374825
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D5209
Summary: Ported away some classes, removes many unneeded casts that happen when starting.
Test Plan: Tests still pass, plasma starts properly
Reviewers: #frameworks, #plasma, mart
Reviewed By: #plasma, mart
Subscribers: davidedmundson, mart, plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6041
Summary:
replace the last remaining place in pluginloader
where a string list was read as a normal string
Change-Id: I66e7f563745466e31cfb23492fdb081806b1e406
Test Plan:
related to D3902
dropping of files on containment still works
Reviewers: broulik, #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D3936
They are supposed to be lists. This fixes dropping folders on desktops to create a FolderView.
Dropping trash:/ also offers to create a trash applet again.
BUG: 374418
Differential Revision: https://phabricator.kde.org/D3902
Summary:
As Plasma::Package is deprecated API using Plasma::Package should also
be deprecated.
Reviewers: #plasma, #frameworks
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3812
Summary: Depends on D3299.
Test Plan: plasma still starts with all plasmoids
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3311
When appending a list to an existing list using append or operator<< each item in the list
is added individually whereas with initializer list it just adds the entire list as one entry.
This caused the applet args to never be empty usually and resulted in externalData being
emitted in init() with a QVariantList as argument.
While this didn't do much for most applets it did break FolderView (and potentially others)
which updates its URL in response to this signal and stored the "data" it got in
plasmoid.configuration.url. FolderView's model did not accept this broken data [1] so the
folder would still work initially. On next startup, however, it loaded said value from
config and just went blank.
[1] "file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderViewLayer.qml:202:14: Unable to assign QJSValue to QString"
REVIEW: 129158
Makes it possible to use plugins that offer a metadata.json file.
Define the service type when falling back to the desktop file parser, so
the type system is proper.
Don't destroy a KPluginMetadata tuple to instanciate it right away.
REVIEW: 129102
Summary:
The notifications applet installs the .so into the toplevel plugins dir,
and my earlier code removal broke the loading of that applet.
Reviewers: lbeltrame, mart
Reviewed By: mart
Differential Revision: https://phabricator.kde.org/D1851
Summary:
The name of the actual plugin was missing, making the warning rather useless.
Since this is only used within PluginLoader, I added a private function
isPluginVersionCompatible(KPluginLoader), taking code from
Plasma::isPluginVersionCompatible(uint). That one could probably be deprecated,
although no public replacement would be available, just "use PluginLoader".
Test Plan: plasmoidviewer -a org.kde.plasma.digitalclock
Reviewers: mart
Reviewed By: mart
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D1825
Summary:
This code was passing PREFIX/share/plasma/plasmoids/org.kde.desktopcontainment/metadata.desktop
to KPluginLoader (which expects a .so!), which led to warning noise
"Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability"
(since that code tries to find a version symbol in the .so).
The reason why KPluginInfo::libraryPath() returns the .desktop file seems
to be a KPluginMetaData misuse, but this is compat code marked as "to be removed"
so I didn't fully debug the KPluginMetaData misuse.
Test Plan: plasmoidviewer -a org.kde.plasma.digitalclock
Reviewers: mart
Reviewed By: mart
Differential Revision: https://phabricator.kde.org/D1827
PluginLoader::loadApplet works both by passing a simple plugin
name and a full path of a plasmoid package.
However, when loading the optional C++ plugin, we have to look
in the standard plasmoid plugin path, so only consider the
tail of the path name, as is guaranteed that part is equal to
the plugin name.
BUG:359902
Change-Id: Ic7300b7c12d7693bcb5590e29de780109a8ff81c