It's possible to have QPrinter but no QPrintDialog (as is currently the case with Emscripten).
Use QT_NO_SESSIONMANAGER instead of the more generic EMSCRIPTEN as guards for code that using session management.
Kate needs KUtils for the KCMModule stuff, so re-instate it - KEmoticons is troublesome, though, so disable that.
Get rid of the last traces of the "don't compile kutils" stuff.
Kate needs kprintdialog.
Forgot to commit this  quick hack to get kdetutorial1 working (whoops). Still need a proper solution, though, in the form of an extension to AsyncDialogHelper that deals with KMessageBox.
We haven't properly dealt with KMessageBox yet, so if we get an important error we might not see it. Log the message to stderr.