File Management Overview
The ideas are to separate the file loading from other interested parts of marble, and to keep a reference store for GeoDataObject read from those files.
As a consequence, PlacemarkManager solely deals with handling the placemarks, and relies on the FileManager to signal when files are read/closed. Other interested class can connect to those signals as well to know about file action.
The role of the FileManager is:
- support the various file formats thanks to GeoDataParser and use the parsers quite exclusively from here.
- use threading support with FileLoader loading the file asynchronously.
- provide the results of those parsing to models through MarbleFileViewModel so that plugins can have easy access to file data.