Instead use iterators. Could be changed to using keyBegin or something like that potentially.
The destructor is called 400 times on plasmashell startup for me.
Before: 250,000ns
After: 110,000ns
Differential Revision: https://phabricator.kde.org/D4350
Summary:
unfortunately hiddenvisibility is the "biggest" status
that makes computing the proper status tricky.
if an applet in the containment is hidden, we must not mark as
hidden the whole containment, because it's as if hidden was
(as it should be) the smallest in the enum
BUG:372062
Test Plan: touchpad plasmoid no longer hides the systray
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D4174
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
there is a single difference between command line
parameters of plasmapkg2 and kpackagetool5: plasmapkg2
had some hardcoded names like "theme", "plasmoid" etc.
kpackagetool5 requires the servicetype name to be
passed instead. in order to stay compatible convert
those parameter with the proper servicetype name.
it's parsing parameters by hand in order to just
pass anything else without further parsing
BUG:374463
REVIEW:129753
Change-Id: I6adece9b3dd351331d747505c455e0f79cd0ecf7
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
if a panel doesn't ahve applets, it can't have a "currently
loading" as the status of its applets.
this fixes panels sometimes not showing up when reconnecting screens
CCBUG:373836
Test Plan: less warnings when compiling plasma-workspace
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3679
settingsFileChanged is called if the plugin metadata file changes, and
reloads the theme if the version changes.
However, if the metadata file now doesn't exist we need to check before
calling .version() otherwise it will assert.
If it doesn't exist, we want to reload the theme so that it will load
the correct thing.
BUG: 372651
REVIEW: 129436
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
And only enable it in the contextMenuAboutToShow connection.
We currently enable/disable the menu in this slot, but we default to it
on. This meant other users of actions() that can't correctly emit
contextMenuAboutToShow gain an extra entry which might not be relevant.
REVIEW: 129263
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
use plasmashell interface for moving the dialog,
use kwayland as well for shadows.
this is supposed to replace the waylanddialogfilter
hack in plasmashell.
REVIEW:129148
This reverts commit 2ed819f37dd44cc6c4a24624f76938347ceb8e95.
panel loading was completely broken, the patch idea was fine,
but has to be redone and tested better.
CCMAIL:aleixpol@kde.org
We were not looking into the plugin directory when figuring out the applet
path when it's load from an absolute path.
Fixes configmodeltest
REVIEW: 129101
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
Commit 752626ad550552232d73d8b009db62b0f8e86113 left a code path through
the switch statement where defaultActionsCfg would be an invalid group.
This is semantically correct as there is no relevant actions config for
this type of containment, however we then call methods on it which leads
to an assert in kconfig - and a failing unit test.
REVIEW: 129096
It's reasnoble to expect people to download an applet just before trying
to change an existing applet using the alternatives system.
Therefore doing the check at applet initialisation time is semantically
wrong. Especially as it doesn't just disable the action but also skips
creating it.
Finally this gives a startup performance boost; loading all the applets
metadata takes a small amount of time (~20 milliseconds) not really
noticable when you're doing it once, but it adds up if you're doing it
over multiple applets sequentially.
Show times where 0 is the beginning of the process
Use QDebug to get QVariant's values
Delay constructor print so that we know which class is being constructed
Use QJsonObject instead of going back and forth with QVariantMap
Reviewed by David Edmundson
The svg elements cache isn't really a "configuration" and it's not
something that should be overridden by global config settings.
Loading it as a simple config skips the cascading and saves reparsing
kdeglobals.
REVIEW: 128966