There is an issue where as m_activityConsumer starts the
kactivitymanagerd, as KAMD is starting the serviceStatus will be not
running.
Whilst we are loading the kscreen config, the event loop runs and we
might find KAMD has started.
m_activityConsumer will change from "not running" to unknown, and might
still be unknown when the kscreen fetching is complete.
If that happens we want to continue monitoring for state changes so we
can finally load when it is up
BUG: 342431
Instead of keeping the state, expect the code to follow the order it's
expected from it.
Bumps kf5 requirement to 5.4 (i.e. master as of today).
REVIEW: 121244
Now kscreen initialization is asynchronous, always wait for the screen
initialization to happen. Otherwise we'll end up in different occasions
where the configuration is null.
Furthermore, don't try to start loading the shell until the configuration
has been fetched.
CCMAIL: dvratil@redhat.com
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.