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
Instead use KRuntimePlatform::runtimePlatform from KCoreAddons.
The defunct code to set the runtime platform was removed. This value gets set using ENV variables.
Task: https://phabricator.kde.org/T15492
This allows for better searches that just the name and description.
This also takes the original keywords into account and not just the translated ones.
This is a bit more elaborate than a straightforward port, as the old code
already was prone to using dangling string references due to values from
the English language block being out of scope when the reference were used
in the final loop.
Give context though i18nc for the use of "uninstallable" so that it won't be misinterpreted as "not installable" by translators, as has happened in some cases (e.g. sv & zh_TW).
consider an applet acceptable for the formfactor if at least one
of its formfactors are contained in KDeclarative::runtimePlatform
or if either KDeclarative::runtimePlatform or applet formfactors
are empty.
(before informFactor failed if even one of the applet supported
formfactors was not in runtimePlatform
BUG:433983
A new instance WidgetExplorer is created everytime we open get new
applets window. Each and every instance of WidgetExplorer has its own
newStuffDialog. This means that downloadWidgets method will always
create new instance of QtQuickDialogWrapper due to the default value of
newStuffDialog is null.
Change newStuffDialog to static so that it will be shared to every
instances of WidgetExplorer. This prevents another get new applets
window to be opened.
BUG: 412765
The QWidgets components are about to be deprecated
and the QtQuick dialog has a bunch of visual improvements.
Considering that most KCMs already use the QtQuick components
this MR improves the consistency.
See https://invent.kde.org/frameworks/knewstuff/-/merge_requests/80
for the MR which introduced the non-deprecated dialog class.
We do this sometimes, but not consistenly.
The benefit is twofold.
First it improves the diff when adding new values since no existing line needs to be touched.
Second it prevents clang-format from collapsing the definition into a single line, which is undesired for large enums.
And use KPluginMetaData instead. It's what we get from the PackageLoader anyway.
Unlike KPluginInfo KPluginMetaData supports multiple authors. To keep the current behaviour of the model the code picks the first one and ignores the potential others.
Instead of using KPluginTrader's contraint system pass a filter function to KPackage::PackageLoader.
Also move the later filtering into said filter function.