The entire GUI is split into just three sections.
MainWindow is the application entry point from main(). It inherits QMainWindow and is responsible for creating the QVBoxLayout containing the Toolbar, Log and ComBox widgets.
This class also contains functions to open firmware .zip files locally (MainWindow::addArchiveFromHardDrive()) or from the Internet (MainWindow::addArchiveFromNetworkDrive()).
Log redirects all Qt logging types (qCritical, qDebug, qFatal, qInfo and qWarning) to a QTextEdit widget. This works by installing the MessageHandler singleton and connecting it to the Log::messageHandler() slot.
ComBox inherits a QGroupBox widget which displays a couple of dropdown menus to choose various serial port options. Apart from that, there is a start/stop button to start the writing process.