@dpinte This PR is to allow users to add customised factory functions for creating engine wrappers.
When the "Proxy Engine" is available from the client-server task, this will allow integration with the client-server architecture easily.
For example, the user can define a template proxy engine wrapper that is already set up to connect to a particular remote machine.
[x] Add EngineFactory to define and import a customised factory function, handle ImportError there
[x] Modify engine_wrapper.loader to use EngineFactory
[x] Use PreferencesHelper to save user's setting
[x] Add tests
"(errored)" is shown when the factory cannot be imported, e.g. the modelling engine is not installed
@dpinte This PR is to allow users to add customised factory functions for creating engine wrappers.
When the "Proxy Engine" is available from the client-server task, this will allow integration with the client-server architecture easily. For example, the user can define a template proxy engine wrapper that is already set up to connect to a particular remote machine.
"(errored)" is shown when the factory cannot be imported, e.g. the modelling engine is not installed