The basic design of Plasma is that scripts and and the shell (in theory)
manipulate a tree of basic applet geometry and configs.
Plasmashell then reacts to those changes and displays them visually with
a distinct separation between the layout and UI.
Panel's scriptengine seemed to do away with all, and try and manipulate
the graphic object directly..which might not exist and that leads to
complex code.
This changes it to read/write from the same config object as
PanelView will use. More akin to how the script engine for applet and
contiainment works.
If there's a view for this panel, we update immediately, otherwise it'll
just get loaded when it's needed. PanelView::reload() has the error
checking/bounds management so no point duplicating that.
BUG: 355918
REVIEW: 125921
Plasmashell was incorrectly listing update scripts from
XDG_DATA_DIRS/plasma/shells/<package>/updates when it should have been
listing from XDG_DATA_DIRS/plasma/shells/<package>/contents/updates.
This needed to be corrected because Plasma 5.5 is now bundling a
migration script for Kickoff favorites and installs it into the
correct location.
Distros may have to adjust the install location for their custom
update scripts for their Plasma 5.5 packages, if they haveany. Fedora
is known to be affected.
CCMAIL:rdieter@math.unl.edu
CCMAIL:kde-packager@kde.org
If containment plugin is provided in the shell package's defaults file
then use it instead of defaulting to desktopcontainment
BUG: 348617
FIXED-IN: 5.4
REVIEW: 123990
at startup the panelviews can't exist yet: panelviews have to be created
after desktopviews and the script has to be executed before the desktopviews
exist.
it's a bit hackish, but use temporary dynamic properties to store those
values that will be then used as soon the panelviews are created
The backing class ConfigGroup opens config files in KConfig::FullConfig
by default, which prevents syncs when a desktop init script tries to
adapt the shell's appletsrc file, as Corona opens in SimpleConfig mode.
This reuses Corona's instance when the appletsrc is opened, fixing the
script and making the shell behave consistently around its config file.
all scripts in the folder
$prefix/share/org.kde.plasma.desktop/updates will
be correctly executed now
(other shell packages will have their name instead of
org.kde.plasma.desktop)
even when they are created in the standaloneappcorona, create the containment
so when the same appletsrc is loaded in the full shell mode it works as expected
no warning message about unknown service anymore
panel can be loaded from a template again, so the
"add default panel" option can get reimplemented now