+ Code refactoring: variables contained an information about revert buttons and functions to update them are extracted to the separate class UndoValueUIManager.
And Field and Line classes are inherited from UndoValueUIManager now.
Some code refactoring:
* use GUI_App::open_preferences() on all places where it's needed
* Preferences Dialog is an attribute of a ManeFrame class and created just ones during the MainFrame creation now.
* Created class Highlighter. Use it in Preferences and Tab
* MSW specific: Dark Mode: First implementation
* Use menu instead of NoteBook
* Implemented MessageDialog
+ Fixed DarkMode for all dialogs and ColorPicker
* MSW DarkMode: Added missed updates for the switching between modes
* MSW DarkMode: Updated all existed context menus after switching of the mode
+ Added markers for the menu item witch is related to the selected tab
* Used wxFrame instead of wxDialog for SettingsDialog
(this change allow us to use menu bar in SettingsDialog)
+ fix for #6548 - Prusa Slicer 2.3.1 not activating non-modal settings window if settings window is minimized
* Implemented "Always use Dark mode colors" preference option
* Fixes for non_MSW build
* Next fixes for non-MSW builds
* Preferences: Fixed selection of the Settings Layout for non-MSW platforms
+ Updated DarkMode for colorpickers
* Windows DarkMode next fixes
* MSWDarkMode: Suppress to use system color to the PrusaSlicer
Select "Preferences -> Use Dark color mode (experimental)" to allow dark mode for the application
* Fixed MSW build
* MSWDarkMode: Upadteed color mode for ExtruderSequenceDialog and for dialogs related to the DoubleSlider
* Implemented Auto recreation of the PrusaSlicer when color mode is changed.
* Preferences: Added option "Set settings tabs as menu items (experimental)"
It contains "preset_type;opt_key" now. This key helps to avoid a collisions by using a same options key from different type presets.
Example: Option "elefant_foot_compensation" is in Print presets and SLA_printer presets
+ Create controls only on the shown and active tab
+ Line class : deleted unused sizer
+ In GUI_Utils added TaskTimer class for the print a time of some task duration
+ BedShapeDialog:: activated options_groups
+ commented some unused code
to help with detecting "not changed" event when taking
Undo/Redo snapshot or synchronizing with the back-end.
Converted layer height profile and supports / seam painted areas
to the same timestamp controlled structure.
Fixed OSX specific bugs:
- toolbar flashing for some mainframe sizes (Retina specific)
- size of mainframe when settings layout in slNew mode
Added missed icons to the "white" folder
1. Fixed crash on OSX after change of the settings layout (PreferencesDialog should be destroyed before call of recreate_GUI)
2. Fixed dialog message during GUI recreation
3. In PreferencesDialog changed radio buttons view (under OSX they were bold)
4. slDlg mode - fixed switching between main frame and settings dialog (dialog->SetFocus() doesn't work under OSX, so we just hide it and show again)
changed the "anisotropic scaling" - "embed vertices" message,
fixed scaling in the world coordinate system, so it does not count
the modifiers into the bounding box size.