Putting all the code into workspace.cpp makes the file harder to manage, and kscreen integration is really its own topic. (cherry picked from commit cc535a1e)