config bundles, project files (3MFs, AMFs). When loading these files,
the caller may decide whether to substitute some of the configuration
values the current PrusaSlicer version does not understand with
some reasonable default value, and whether to report it. If substitution
is disabled, an exception is being thrown as before this commit.
If substitution is enabled, list of substitutions is returned by the
API to be presented to the user. This allows us to introduce for example
new firmware flavor key in PrusaSlicer 2.4 while letting PrusaSlicer
2.3.2 to fall back to some default and to report it to the user.
As a preparation for PrusaSlicer 2.4.0, the new firmware_flavor
"marlinfirmware" (signifying Marlin 2.0 and newer) that is not
supported by 2.3.2 yet will default to "marlin" (signifying legacy
Marlin).
When slicing from command line, substutions are performed by default
and reported into the console, however substitutions may be either
disabled or made silent with the new "config-compatibility" command
line option.
Substitute enums and bools only. Allow booleans to be parsed as
true: "1", "enabled", "on" case insensitive
false: "0", "disabled", "off" case insensitive
This will allow us in the future for example to switch the draft_shield
boolean to an enum with the following values: "disabled" / "enabled" / "limited".
Added "enum_bitmask.hpp" - support for type safe sets of options.
See for example PresetBundle::load_configbundle(...
LoadConfigBundleAttributes flags) for an example of intended usage.
WIP: GUI for reporting the list of config substitutions needs to be
implemented by @YuSanka.
".gcode", ".gco", ".g" and ".ngc" were considered to be G-code file
extensions by the G-code import / export file dialogs, but not by
various other functions. Now the G-code extension is tested by
a single function is_gcode_file(string).
The solution adds a status flag to GUI_App::init_openg and ensures that GUI_App::post_init isn't called before initialization in GUI_App::init_openg is done.
The issue is that opening the wxMessageDialog in GUI_App::check_printer_presets fires wxEVT_IDLE event (on Linux at least).
At that point it is already bound to our lambda which will in turn call post_init prematurely.
The solution is to move the Bind at the very end of the initialization. The post_init that it calls assumes that init has been finished anyway.
+ Fixed translation for the "Extruder n" category on the Printer Settings Tab
+ Fixed a crash, when scrolling inside Search imGui with some localization (e.t. Russion)
en_GB locale when switching to English from the user interface,
while often Linux users have just en_US locales configured.
With this commit the user will have to select English (U.S.) or
English (U.K.). Usually English (U.S.) will work.
Vojtech is scared to touch the code for the other platforms (Windows and Mac)
as the language switching has been reworked multiple times and it is quite
fragile.
Always set parent for the Dialog, if we want to see the Dialog in the same display as a parent.
Dialog will be shown in the primary monitor otherwise.
+ fixed a draw of the canvas legend when we move application between Retina and non-Retina displays
Implemented try/catch blocks for Slic3r exceptions and std::exceptions
with GUI error reporting. This is extremely important to report
corruption of PrusaSlicer.ini.
* Fixed a crash on preset changing and press Cancel button in SavePresetDialog
* Added Cancel button for MessageDialog after check "Remember my choice"
SplashScreen
* Set Version string in respect to the height of a Title string