This is normally not possible from the interface. However on MacOS, the application menu gets carried to the top bar of the operating system. It is not blocked there, and the user could write a project file before they even add a printer. This prevents Cura from crashing when they do that.
Fixes Sentry issue CURA-2ZR.
This should prevent a crash when saving to a path that the file system doesn't support (because of e.g. disallowed symbols in the file name).
Instead it will now show an error message to the user.
Fixes Sentry issue CURA-157.
We'll want to give a proper error message then. We have no mechanism right now to show a message on the screen particular to this error. Instead we'll let it fail (the user sees a message that writing fails) and put a message in the log why it failed.
Fixes Sentry error CURA-DK.
several instances need to be created.
- In the ThreeMFWorkspaceReader we need to create some temporal
instances of Preferences that makes it not singleton anymore.
- The current preferences are kept in the Application class and so all
the calls to the preferences are changed to get the preferences from
Application.
- The method getInstance in Preferences is kept as deprecated since some
external plugins.
CURA-5229
- Move @call_on_qt_thread to a separate module
- Make sure that project writer runs on Qt thread because itself and the
calls it makes can create new QObjects such as InstanceContainers, and
this must happen on the Qt thread.
This way we can be sure that no sensitive information enters the workspaces even if some future developer or a plug-in puts it there.
Contributes to issue CURA-4371.