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
After feedback from the VDG, use a single config fuile again,
this changes the behavior in the following way:
* layout switch after switching lnf from the kcm is optional
* the swiitch is permanent, the old layout is lost after switch
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
ContainmentView tried to ensure the panel is only shown when it is ready but
the code didn't take into account the fact that UI ready is emitted asynchronously
so the panel would have never shown up leading to this client-side "workaround".
This requires 1d66098 of plasma-framework!
Differential Revision: https://phabricator.kde.org/D2475
Summary:
ShellCorona provides a new DBus method "activateLauncherMenu". If that
is invoked it will look through all panels for an applet which has
X-Plasma-Provides with org.kde.plasma.launchermenu. If that also has
a global shortuct it gets activated and no further applet is searched.
The idea behind this DBus call is to provide a way to KWin to activate
the main appliction launcher when the Meta key is pressed.
Reviewers: #plasma, hein, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2356
don't index m_desktopContainments by screen id
that will change and will break.
also, in createcontainmentForActivity, don't return one
that is already taking another desktop view
BUG:366394
BUG:366395
reviewed-by: Sebastian Kügler <sebas@kde.org>
Summary:
Reduces code duplication and we always opperate on cached value, that
is the platform is only checked once in application life cycle.
Reviewers: #plasma, hein
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2342
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
since now desktop scripting is supposed to modify
containments instead of creating activities,
make sure a desktop containment exists for each screen
by running addoutput
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
make sure the graphics object are already deleted when
deleting the containments. it makes sure there are
no leaks and the containments don't think applets are
being removed so the config file doesn't get damaged
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:
Used to work, then patch f7ef6ee87b
changed it.
Docs above edited code say:
"it is valid for KAMD to not be running."
This fixes that but keeps the objective of patch f7ef6ee, of delaying
load() if we're still loading KAMD.
Test Plan:
Reviewers:
#plasma
Subscribers:
Summary:
Containment creation relies on the current activity, so
we need to change the current activity when creating one
from PlasmaScript in order for the Containment to be created
correctly.
Test Plan:
Tested with:
print(currentActivity());
var id = currentActivity();
var desktops = desktopsForActivity(id);
print(desktops.length);
for (var i = 0; i < desktops.length; ++i) {
print(desktops[i].id);
}
var id = createActivity("Day 4 - Test 1 - " + activities().length);
var desktops = desktopsForActivity(id);
for (var i = 0; i < desktops.length; ++i) {
print(desktops[i].id);
}
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2211
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
Summary:
A few private slots handling the events of Activity objects
have been lingering in ShellCorona never to be called.
I've grepped both plasma-desktop and plasma-workspace for these
(even though they are private slots) and they seem not to be
used anywhere.
Reviewers: #plasma, sebas, davidedmundson, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2174
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
Summary:
A few private slots handling the events of Activity objects
have been lingering in ShellCorona never to be called.
I've grepped both plasma-desktop and plasma-workspace for these
(even though they are private slots) and they seem not to be
used anywhere.
Reviewers: #plasma, sebas, davidedmundson, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2174
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: jriddell, plasma-devel, #neon
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D2117