This is a small change to the Look & Feel KCM Code to fix https://bugs.kde.org/show_bug.cgi?id=409015 by changing the Splash Screen changing code a little bit, as well as add the option for Look & Feels to specify a Latte Dock Layout and whether maximized windows have borders or not.
This revision makes Look & Feel check if the package has specified a Splash Screen, that it wants Plasma to change the user's current Splash Screen to, or not via the 'defaults' file and a check for the 'splashrc' 'Theme' value in there. If there isn't a value found it will revert back to the old method of applying Splash Screens - applying the Look & Feel name as the Splash Screen. If a value is found however, ksplashrc's Theme value will be set to that value instead of the Look & Feel's name.
The reason for having the fallback in this code to the old behaviour is that many popular Look & Feels, such as the Adapta Look & Feel, all rely on the fallback method of applying Splash Screens to have their Splash Screens be applied, and if the fallback isn't there nothing will then their currently applied Splash Screen simply won't change at all unless the Look & Feel package specifies a Splash Screen theme.
This patch adds the option for Look & Feel packages to set a Latte Dock theme. KWriteConfig is used in case Latte Dock isn't running to change two values since they need to both be changed for Latte to use the new layout. Otherwise, a DBus signal is also used to make Latte transition smoothly into the new layout selection without needing to reload Latte.
'None' disables Latte autostarting and closes Latte via a DBus signal if running as some Look & Feels might prefer to not have Latte running at all on them while others may. It's also because there's an easy way for Look & Feels to enable Latte, but no way otherwise to disable it afterwards.
This patch DOES NOT add support for directly importing new Latte layouts, however - that can come in another patch when I or someone else works on integrating that functionality into Look & Feel's code.
Borderless Maximized Windows:
This is just a piece of code that sets the kwinrc value 'BorderlessMaximizedWindows' to the value specified in the defaults file of a Look & Feel if one is specified.