Complete rewrite with QT, Webkit, and JS.