Main change here is moving the "screen" element out from the "qtspinner" hierarchy, which avoids hiding it when qtspinner is hidden. Also rename it to "qtcontainer".
Other fixes:
there is no longer a qtLoader object. We can access the instance after startup instead.
remove old preRun workaround
the canvas is now used only for detecting WebGL support
call setContainerSize from onLoad
make DesignViewer::printError() actually print the error