Another layer between the QT Gui and the Controller needs to be added. This is to let the same code be reused for both the GUI program and the CLI program.
The layers will look like this:
QT Gui
/ \
\ /
Conversion Layer
/ \
\ /
Toolkit Layer
The toolkit layer will be scrubbed of any reference to QT, while the Conversion layer will transform things such as strings->QStrings.
This might require finding new libraries for certain things, such as a new XML Parser.