vipster
vipster copied to clipboard
[Qt Frontend] Improve architecture
The current architecture of the main Vipster frontend (vipster/gui/qt
) is too convoluted and not maintainable.
Development of a new application architecture is performed on a branch https://github.com/sgsaenger/vipster/tree/architecture.
Acceptance criteria
- All application state is handled via a separate class instance (
Vipster::Application
)- GUI classes and widgets should store only state required for rendering
- All data (potentially) shared between widgets is stored in the application
- event handling is done via Qt signals/slots
- the BaseWidget class is removed
- other implementations of
triggerUpdate
/updateWidget
are removed
- State is minimized during the conversion process, e.g.:
- raw pointers should be removed in general (if possible)
- widgets should access molecule data mostly (or only?) in the event handling process
- Investigate off-loading time-consuming operations to threads