plasma-framework/src/plasma
Bhushan Shah 7ae271987c pluginloader: Change behavior of X-KDE-ParentApp
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
2019-06-23 20:39:41 +05:30
..
data SVN_SILENT made messages (.desktop file) - always resolve ours 2018-10-10 06:27:59 +02:00
design The Big Move 2013-02-14 17:17:12 +01:00
packagestructure SVN_SILENT made messages (.desktop file) - always resolve ours 2019-01-06 05:32:12 +01:00
private Make Plasma::Svg::elementRect a bit leaner 2019-06-21 15:25:42 +02:00
scripting Remove ComponentInstaller 2018-11-19 12:53:31 +01:00
.krazy The Big Move 2013-02-14 17:17:12 +01:00
applet.cpp Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
applet.h Use override 2018-05-23 08:05:40 +02:00
CMakeLists.txt Use more https in links (& update a few urls) 2019-01-19 16:36:59 +01:00
config-plasma.h.cmake Remove PLASMA_NO_KIO option 2018-10-18 16:44:27 +02:00
containment.cpp Make it compiles without deprecated method 2019-02-28 23:01:43 +01:00
containment.h Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
containmentactions.cpp Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
containmentactions.h Use nullptr + add explicit 2017-12-13 07:36:22 +01:00
corona.cpp Make it compiles without deprecated method 2019-02-28 23:01:43 +01:00
corona.h Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
datacontainer.cpp Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
datacontainer.h Revert "Pass fully-qualified arguments and return values to moc" 2019-05-30 16:05:36 +02:00
dataengine.cpp Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
dataengine.h Revert "Pass fully-qualified arguments and return values to moc" 2019-05-30 16:05:36 +02:00
dataengineconsumer.cpp Remove unused variables 2018-11-03 01:34:40 +01:00
dataengineconsumer.h Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
framesvg.cpp FrameSvg: also clear mask cache on clearCache() 2019-05-14 17:08:29 +02:00
framesvg.h FrameSvg: make hasElementPrefix() also handle prefix with trailing - 2019-05-14 17:08:00 +02:00
Mainpage.dox API dox: point to Plasma5 versions on techbase if avail 2019-05-13 01:09:26 +02:00
package.cpp Warning-- 2018-04-13 13:58:44 +02:00
package.h Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
packagestructure.cpp Warning-- 2018-04-13 13:58:44 +02:00
packagestructure.h Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
plasma.cpp Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
plasma.h Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
pluginloader.cpp pluginloader: Change behavior of X-KDE-ParentApp 2019-06-23 20:39:41 +05:30
pluginloader.h pluginloader: Change behavior of X-KDE-ParentApp 2019-06-23 20:39:41 +05:30
README Use more https in links (& update a few urls) 2019-01-19 16:36:59 +01:00
service.cpp Warning-- 2018-04-13 13:58:44 +02:00
service.h Revert "Pass fully-qualified arguments and return values to moc" 2019-05-30 16:05:36 +02:00
servicejob.cpp Apply the astyle-kdelibs script 2014-04-26 01:48:37 +02:00
servicejob.h Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
svg.cpp Make Plasma::Svg::elementRect a bit leaner 2019-06-21 15:25:42 +02:00
svg.h Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
theme.cpp Add Theme::blurBehindEnabled() 2019-03-21 19:33:41 +01:00
theme.h Add Theme::blurBehindEnabled() 2019-03-21 19:33:41 +01:00
version.cpp [libplasma] Add categorized debug output 2015-12-15 16:56:40 -05:00
version.h Unbreak build of code using plasma-framework 2014-03-18 12:01:36 +01:00

libplasma

This directory contains the classes making up libplasma, which provides the
core framework used by Plasma applications, such as the Plasma desktop shell
and its components. This includes applet and extension definitions and loading,
common GUI elements, data and service interaction, search system, etc.

Domain specific sets of functionality, e.g. for network awareness or sensors,
are not found here but as DataEngine, Service, Applet, Package, Wallpaper,
ContainmentActions, Containment and other plugins.

Commit Guidelines:
* If your patch is not an obvious or trivial bug fix, have it peer reviewed
  by another Plasma developer; https://phabricator.kde.org is your friend :)

* All code MUST follow the KDE Frameworks coding style, as found at:
        https://techbase.kde.org/Policies/Frameworks_Coding_Style

* All new public API MUST have apidox written before committing and must go
  through an API review with another Plasma developer. We have to maintain
  binary compatibility, remember!

Unit tests are next to godliness. (Though as you can see, right now libplasma
is hellbound.)

Please refer to the Plasma website (https://plasma.kde.org) and Plasma wiki
(https://community.kde.org/Plasma) for API documentation and design
documents regarding this library.