Currently, open_iA has several different "project files":
One for storing multiple "modalities" (i.e. datasets)
One for storing a GEMSe configuration
One for storing a FIAKER configuration
One for storing a 4DCT project
This should all be merged into a single project file format (maybe "opf" - Open_iA Project File?).
QSettings / ini file is probably the best choice since it is currently already used in many of the abovementioned places.
There could be a project registry, where modules register their Project Identifier, which is written into a general section of the project file, which potentially also contains "general" datasets. The project registry then takes care to call the respective module project with the loaded settings.
The infrastructure for this feature is now in place.
A project registry allows modules to register themselves as being able to open "projects", i.e. a section with a specified unique name, within a project file.
When a supported tool is opened, either by loading a project containing data about it or by another means, an active project can be added to the current mdi child so that the data of this tool is also saved if the user chooses to store a project.
The data in an mdi child (loaded modalities / datasets, their positions, the camera parameters etc.) are now stored in the new format (basically, the same data as was stored previously in modality (.mod) files.
Three tools (FeatureScout, GEMSe, FIAKER) fully support this new feature. FIAKER and FeatureScout also store many of their viewing state settings in the project file.
Currently, open_iA has several different "project files":
This should all be merged into a single project file format (maybe "opf" - Open_iA Project File?). QSettings / ini file is probably the best choice since it is currently already used in many of the abovementioned places. There could be a project registry, where modules register their Project Identifier, which is written into a general section of the project file, which potentially also contains "general" datasets. The project registry then takes care to call the respective module project with the loaded settings.