Big refactor that moves GUI interaction out of the controllers and into specialized ABAction's. This introduces a new design philosophy in which widgets are only responsible for their own state, controllers are only responsible for Brightway's state, and actions are responsible for the logic for moving between states. This:
Separates the UI from the controllers, making them initializable before UI init, preventing circular imports
Moves specialized user interaction from widgets, clearing up where user interaction happens
Makes user interactions easily testable by unit-testing ABActions (>90% coverage right now)
ABActions inherit QActions, so they can easily be added to buttons, or (context)menus.
[x] Categorize the PR by setting a good title and adding one of the labels:
bug, feature, ui, change, documentation, breaking, ci
as they show up in the changelog.
[x] Add a milestone to the PR for the intended release.
Big refactor that moves GUI interaction out of the controllers and into specialized
ABAction
's. This introduces a new design philosophy in which widgets are only responsible for their own state, controllers are only responsible for Brightway's state, and actions are responsible for the logic for moving between states. This:ABAction flowchart
Checklist
bug
,feature
,ui
,change
,documentation
,breaking
,ci
as they show up in the changelog.