Summary:
restore the missing panel properties:
alignment
minimum length
maximum length
offset
also, allow non integer values for the measures (height, min/max, offset)
BUG:368074
BUG:367918
Test Plan:
dumped a config with a custom panel, different height/alignment/offset etc
started a new plasma session with that l&f package, restored panel correctly
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3021
when a panel is created it doesn't have a view immediately,
so we have to work around by writing its config instead.
we have to force lastScreen of the newly created containment,
or it won't have a screen yet at that point, breaking JS code
that relies on it
NOTE: if we'll allow setting a panel screen from JS,
it will have to use the following lines as well
Summary:
the panel tamplates are listed with kpackage listing
but were still loaded with kservicetypetrader
this made possible to have templates listed but not possible
to be loaded. This ports the template loading to the same logic
of the template listing, making thisgs consistent here
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, andreaska, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2723
Summary:
The previous approach of having an array of object that
hold information about the current config group and the config keys
and values was not really scalable nor intuitive.
Now, the config is an object that has the group names as keys,
and each group has its own configuration (key, value) pairs.
The config groups are identified as a unix-like path
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2516
Summary:
- Serializing the desktop layout for current activity
- Support for different config groups
- Introducing the mechanism for the future API versioning
- Loading the desktop from the serialized data
- Added debugging output just for comparison with regular layout.js
- Splitting V1 scripting functions into a separate class and file
- Loading the panels
- Disabled the debugging output
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2480
by using the graphicsobject directly, make it
possible to pass a full geometry at the applet creation by script
adapt the config dump in javascript to use it
Summary:
allow for lnf package to override templates, so that
for instance, "default panel" can be overriden, so in a
distribution adding a "default panel" would add what is the
"default panel" of that distribution.
switching lnf package would get back a normal panel
Reviewers: garg, ivan, #plasma
Reviewed By: ivan, #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2298
Summary:
check first i the lnf package if
we have a default containment for the current shell
then fallback to the one specified by the shell package
Reviewers: ivan, #plasma
Reviewed By: ivan, #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2286
Summary:
We used to append them, but that didn't work well and was crashing plasmashell
on fresh start.
A default desktop would be created alongside with the one provided by the
layout instead of replacing it.
If a layout wants to provide an additional screen for a desktop in the secondary
screen, it should specify the screen.
Test Plan:
Now the plasmashell tests pass. In fact I noticed it was broken due to an e-mail
Jonathan sent me that the test on neon was timing out. The test in neon will
freeze when the test crashes. Probably something to look into.
It can be reproduced by running:
```
xvfb-run -a --server-args="-screen 0 1024x768x24" dbus-launch --exit-with-session <exec>
```
Where `exec` is the process we need to run.
Now the test passes.
It's a crash that I had reproduced locally in the past. I can't now.
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: sitter, jriddell, plasma-devel, #neon
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2117
Summary:
We have a method to add an activity in plasma script, but
not to remove it. This patch fixes this situation.
Reviewers: garg, davidedmundson, mart
Reviewed By: davidedmundson, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2251
Summary:
There is a small time-window when Plasma's internal data
regarding activities is not synchronized with the internal
data of the KActivities library.
This leads to Plasma reporting a different list of activities
than the list of activities it has containments for.
This patch changes the activity list that the ScriptEngine reports
to be the one that Plasma knows about.
See: https://bugs.kde.org/show_bug.cgi?id=365606
Reviewers: #plasma, davidedmundson, sebas, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2187
Summary:
After the previous patch which removed the unused
Activity class related events, it started becoming clear that
said class is only really used to store the name of the
containment plugin that should be loaded for an activity.
Instead of keeping a map of these objects (QObjects) with
all their baggage, the shells now only keep the map of
activity IDs and corresponding plugin names.
Reviewers: mart, bshah, davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2176
that was a bad idea.
the idea was "is there an activity that doesn't
have a containment"? use that
but if an activity oesn't have a containment something else
went already wrong
Summary:
There is a small time-window when Plasma's internal data
regarding activities is not synchronized with the internal
data of the KActivities library.
This leads to Plasma reporting a different list of activities
than the list of activities it has containments for.
This patch changes the activity list that the ScriptEngine reports
to be the one that Plasma knows about.
See: https://bugs.kde.org/show_bug.cgi?id=365606
Reviewers: #plasma, davidedmundson, sebas, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2187
Summary:
After the previous patch which removed the unused
Activity class related events, it started becoming clear that
said class is only really used to store the name of the
containment plugin that should be loaded for an activity.
Instead of keeping a map of these objects (QObjects) with
all their baggage, the shells now only keep the map of
activity IDs and corresponding plugin names.
Reviewers: mart, bshah, davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2176
that was a bad idea.
the idea was "is there an activity that doesn't
have a containment"? use that
but if an activity oesn't have a containment something else
went already wrong
the api containment.name was incorrect and broken,
(using it it actually breaks the whole layout since
breaks the containment->activity association)
in order to make it coherent with the other activity
related api, add global functions activityName
and setActivityName
it's not very object oriented but is coherent with
the other api already in place
(as there isn't an "Activity" class binding)
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.