Branch Tracking Issue for feature/project-signalling
Goals:
[x] Refactor UI MainWindow so that it is not dependent on a single project instance (or a project at all), and so that it can support multiple projects.
[x] Update MainWindow actions (e.g. Import Gravity/Trajectory, add Flight dialogs') to act on the active project instead of the static self.project attribute.
[x] Re-write project UI controllers/project-model to decouple their implementation from the MainWindow - this will be accomplished by using a more comprehensive set of signals which will allow allow project controllers to request various actions by way of the ProjectTreeModel.
[ ] Generalize workspace tab interface to in future support different tab types, e.g. for displaying raw-data, without nesting in one of the 'FlightTabs' (also to be renamed).
ProjectTreeModel Signals Draft
projectMutated() :: Emitted when the project structure has changed in some way (e.g. flight added)
tabOpenRequested(OID, IBaseController, str) :: Emitted when a project object is activated which uses its own tab (currently only FlightControllers)
tabCloseRequested(OID) :: Emitted when a project object's tab should be closed (e.g. if a Flight is deleted its tab should be destroyed too if it exists)
progressNotificationRequested(ProgressEvent) :: Emitted by project objects to notify the UI that a potentially long running event (possibly threaded) is occurring, e.g. loading a data file from source.
statusNotificationRequested( TBD ) :: Emitted by a project object to have the MainWindow display a notification in the status bar. This could be a String which time's-out after a given or default period, or possibly a QProgressBar as an alternative to the pop-up dialog progress notification.
ToDo
[x] Enable closing of a project within the UI (without closing the application) - this must make sure to close any open tabs associated with the project.
[x] Implement statusNotificationRequested and determine the scope of what it can/should do (text only, progress bar, etc.).
Branch Tracking Issue for feature/project-signalling
Goals:
self.project
attribute.ProjectTreeModel Signals Draft
ToDo