* Check Unsaved changes (partially related to #5903)
+ Allow create new project when Plater is empty, but some of presets are modified (related to #5903)
+ When creating new project allow Keep or Discard modification from previous project
+ Added check of changes:
* before any load project (including DnD and "Load From Recent Projects")
* before preset updater
* when configuration is changing from the ConfigWizard
+ Dialog caption is added for each check
+ Create/Destroy ConfigWizard every time when it's called
* Check Unsaved changes: Next Improvements
+ For dialog "Save project changes" added a reason of saving and name of the current project (or "Untitled")
+ UnsavedChangesDialog: Headers are extended to better explain the reason
+ Preferences: Fixed tooltiops for "Always ask for unsaved changes when..."
+ Suppress "Remember my choice" checkbox for actions which are not frequently used
* Fixed behavior of the application when try to save changed project but "Cancel" button is selected in "Save file as..." dialog
* Check unsaved changes: Improvements for Config Wizard - Check all cases when presets should be updated
+ Fixed info line for Materials pages. Text of the info relates to the printer technology now
* Improved suggested name for a project when Application is closing
* Fixed Linux/OSX build warnings
TriangleMesh newly only holds indexed_triangle_set and
TriangleMeshStats. TriangleMeshStats contains an excerpt of stl_stats.
TriangleMeshStats are updated when initializing with indexed_triangle_set.
Admesh triangle mesh fixing is newly only used when loading an STL.
AMF / 3MF / OBJ file formats are already indexed triangle sets, thus
they are no more converted to admesh stl_file format, nor fixed
through admesh repair machinery. When importing AMF / 3MF / OBJ files,
volume is calculated and if negative, all faces are flipped. Also
a bounding box and number of open edges is calculated.
Implemented its_number_of_patches(), its_num_open_edges()
Optimized its_split(), its_is_splittable() using a visitor pattern.
Reworked QHull integration into TriangleMesh:
1) Face normals were not right.
2) Indexed triangle set is newly emitted instead of duplicating
vertices for each face.
Fixed cut_mesh(): Orient the triangulated faces correctly.
StatusBar class calls are commented out and replaced with notifications.
SlicicingProgress notification shows progress of slicing, ProgressIndicator notification handles other progress information, like arrange objects etc.
changes in hints.ini
Hint notification: Just one button in Help menu.
Hint notification: New naming - Tip of the day
Notifications: no scrolling.
Hint notification: fadeout colors.
Hints notification: enabled / disabled tags
Hints notification: suppress opening url due to preferences.
Hint notification: close after 5 minutes and button in Help menu
* MSW specific: First implementation of the Notebook control to support Dark/Light color modes
* MSW specific: Set mode sizer to the Notebook control.
* MSW specific: Added icons to the Notepad control
+ There is no need to restart application after the changing of the color mode
* Fixed non-MSW build
* Updated color for SavePresetDialog
+ Added wrapper to wxMessageBox for mom-MSW platforms
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.
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.
* 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)"
Note: the wxEVT_SYS_COLOUR_CHANGED event works only for high contrast settings under MSW.
+ ConfigSnapshotDialog: Fixed UI colors for dark mode on all platforms