if the l&f package has a default layout script, make it win over the one of the shell.
this should be used for distributions to customize.
since there can be one l&f package with multiple shells, a layout is specific for a particular shell package, so search the files as layouts/shellName-layout.js, like layouts/org.kde.plasma.shell-layout.js
REVIEW:121119
Reviewed by: Rohan Garg <rohangarg@kubuntu.org>
Don't consider outputs without a mode as enabled. Outputs will be
reconsidered when they get a mode anyway.
Assert on missing currentMode, this way we'll get less of a weird backtrace
if we hit a similar error.
Add another check for not trying to figure out the plasma shell
in the plasmoid loading nested event loop.
I hate the incubator event loop with all my passion.
The hack we used to have is not working anymore because they changed how
Qt works (And it was a hack after all).
On the other hand, on Qt 5.4 we can use the API I added for this purpose,
so listen to screen removed before the window is shuffled somewhere else
so we can cleanly remove the view.
Reviewed by DJ Edmundson
Containments that have no assigned screen keep -1 as the id of the
screen. For those, the previously defined asserts would fail not
allowing plasma shell to start in debug mode.
If screenForContainment() depends on the existence of the view instance,
while the corona is starting up, screen() will return -1 for a while,
changing the behavior depending where is called.
this patch makes screen() return a stable final value, even before any
view has been created.
this is (also) needed for correctly keeping track of what containments
are still loading, what finished.
REVIEW:120179
the screen related static methods are just as well served by being
class members: they aren't used elsewhere, were being passed the same
internal datamembers repeatedly, etc.
also move them below the constructor to where they generally make
more contextual sense.