UI should be rewritten to use a custom model instead of stuffing everything in a QTableWidget
The UI currently uses the trackLV member as the central point of information about all the available tracks, and inputFilesLV for information on the input files.
This means that a lot of the code in the UI must manually keep the relevant widgets in sync with the information available in the widget. Extending the code in any way easily becomes very cumbersome, as it requires adding custom code for copying data around to other widgets which depend on the data in these QTableWidgets. The actual data is contained by QtvCodecInfo objects referenced by relevant QTableWidgetItems via a pointer cast to a qulonglong and then back.
Since the very early days of Qt 4, the library has supported the model-view approach when it comes to supplying data to relevant widgets. The models notify about data being changed via signals, and views update themselves whenever the data changes. This could lead to a significant decrease in the complexity of the UI code, since a lot of work currently done in there would be handled by Qt view classes like QTableView and similar. Having a custom model would enable us to use these classes while at the same time providing our own extensions to the API inside our own code.
This would obviously require a lot of work and could potentially introduce breakage. I just wanted to put the idea out there in case anybody else has been wondering about the same thing.