first_layer_height cannot be changed to ConfigOptionFloat, that would break loading of old 3MFs.
The relative values from 3MFs should already be converted to absolute in `Preset::normalize`, what is missing is the UI check.
+ Code refactoring for OptionsGroup::create_single_option_line():
Don't clear label value in an Option. This value is used in Field::get_value_by_opt_type() to show error "%s doesn't support percentage".
=> At functions OG_CustomCtrl::CtrlLine::render() and OG_CustomCtrl::CtrlLine::get_pos() added check if current line has more than one option.
=> Draw option's label only when line has several options.
MessageDialog is used instead of wxMessageDialog on MSW for supporting of the Light/Dark color mode.
But a constructor of the MsgDialog replaces a parent which is equal to nullptr with the MainFrame .
That is why non-modal dialog with Preset Settings loses a focus after close of the MessageDialog.
"m_msg_dlg_parent" is added to ConfigManipulation class. ConfigManipulation's instance owed by Tab will use the Tab as a parent for MessageDialogs.
=> The MessageDialog with information about configuration incompatibility will always appear over related SettingsTab
and a non-modal dialog with Preset Settings will not lose the focus.
Work around 3D scene focus after de-activation of the main
window without having to resort to CallAfter(), which breaks
on Linux with some window managers that follow mouser cursor.
Fixes#5620#6870#69923622f06bed was not a correct solution,
it broke focus for non-modal windows.
Fixes#7419
The actual issue seems to be caused by wxProgressDialog not playing
well with modal dialogs closed just before wxProgressDialog opens.
If wxProgressDialog parent was not a main frame, keyboard focus
was not restored correctly after the wxProgressDialog closed.
Otherwise click on this line causes a strange frizz of the settings page.
And line hovering by the mouse has no visual effect on Linux.
(Neither wxEVT_ENTER_WINDOW nor wxEVT_LEAVE_WINDOW isn't catch by wxStaticText for some reason)
+ Call of the SetToolTip() moved from constructor to wxEVT_ENTER_WINDOW. In this case Tooltip text will always respect to the "suppress_hyperlinks" value.
* --boost option is added to gettext_make_pot script to recognize Boost format strings.
* New script gettext_merge_po_with_pot is added to merging new lines from POT to current PO
* --check-format option is added to gettext_po_to_mo script to check language dependent format strings during generation MO from PO.
* POT is updated and all PO files are merged with it. So, community can just load needed PO file and continue in translation.
* ExtruderSequenceDialog: Added messed localization markers
Fixed no way of leaving the "export G-code" dialog loop.
Improved the error message by explaining that some characters
are not allowed by a FAT file system.
Previously, the Cursor (Sphere or Circle) was repeatedly applied between two mouse positions, creating brushstrokes with ripples on the edges between those mouse positions.
Now, a single capsule (3D or 2D) is applied between those mouse positions, which creates brushstrokes without these ripples.
reload_scene() call were followed by update(). It synchronizes back-end with front-end and then it calls reload_scene() again.
However in SLA mode reload_scene() expects the back-end to be synchronized with front-end, thus we get asserts that we all have ignored for a long time.
So, we call ObjectList::update_info_items() after the call of update() where reload_scene() is already called and GLCanvas3D::is_object_sinking() will return correct value