Do not inherit GUI data structures from QObject

This prevents objects from being easily copied.

The use of signals within data structures also leads to an excessive attempts to notify and update visible GUI state. Signals sould be moved out to the level of widgets, as close as possible to the user's actions.