5603 Commits

Author SHA1 Message Date
Lukáš Hejl
8da083b702 Fixed compilation on Linux 2021-06-30 08:56:35 +02:00
Oleksandra Yushchenko
4652733201
MSW specific: Implementation of the own notebook control
* 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
2021-06-29 16:23:45 +02:00
David Kocik
b14345012d PrusaLink - cherrypick pick from stable branch
Added to config enums, visible in Physical Printer Dialog and class derived from Octoprint
2021-06-28 12:36:01 +02:00
Lukáš Hejl
48789e5ae1 Added a limitation on the number of usable extruders in the multi-material gizmo. If a printer has more extruders than this limit, a notification about it is shown. 2021-06-28 08:09:06 +02:00
Lukáš Hejl
23b26cb3f3 Fixed the issue where the object wasn't displayed after pressing the ESC key in the multi-material painting gizmo.
key in the multi-material painting gizmo.
Fixed also a similar issue in support and seam gizmos where an object was displayed with the wrong color after pressing the ESC key.
2021-06-28 08:09:06 +02:00
Vojtech Bubnik
e6295bbfe8 Fix of wxWidgets3.0 again wxGetApp not declared in this scope #6655 2021-06-28 07:45:13 +02:00
Vojtech Bubnik
e4e8c5df12 As an example of using the enum_bitmask infrastructure for type safe
sets of optional boolean parameters, the cut function "keep upper",
"keep lower" and "flip lower" boolean parameters were converted into
a single type safe enum_bitmask. Such a coding style is certainly
wordier than the original code, but much safer and more readable
than the error prone "boolean, boolean, boolean" function call
parameter list.
2021-06-27 17:36:25 +02:00
Vojtech Bubnik
0f3cabb5d9 Support for forward compatibility of configurations, user and system
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.
2021-06-27 16:57:05 +02:00
YuSanka
1378d2084a Fix of #6650 - show estimated print time on ruler is not working
+ Parent center of the MessageDialogs
2021-06-24 13:59:48 +02:00
Vojtech Bubnik
3a5a0575ef Fixed after removing TBB deprecated APIs 2021-06-23 15:24:05 +02:00
Roman Beránek
e13535f822
drop deprecated TBB components (#6590)
Quite some time ago, many of the TBB components were deprecated in favor
of their near-equivalents in the STL or, in the case of task_scheduler_init,
were broken up and reconstituted under a less ad-hoc logic. Every time a header
file marked deprecated gets included, a rather loud warning is emitted, which
leads to a complete TBB's domination over the stderr stream during build time,
making it harder to notice _legitimate_ warnings.

Instead of merely muting the output with TBB_SUPPRESS_DEPRECATED_MESSAGES,
perform a genuine migration away from the deprecated components with the added
benefit of achieving a source compatibility with oneTBB, the successor to TBB
which has dropped the deprecated API for good.

What got replaced for what?

| Deprecated				| Replacement					|
| ------------------------------------- | --------------------------------------------- |
| `tbb::atomic`				| `std::atomic`					|
| `tbb::mutex`				| `std::mutex`					|
| `tbb::mutex::scoped_lock`		| `std::scoped_lock<std::mutex>`		|
| `tbb::mutex::scoped_lock` (empty)	| `std::unique_lock<std::mutex>` (deferred)	|
| `tbb::task_scheduler_init`		| `tbb::global_control`				|
| `tbb::this_thread`			| `std::this_thread`				|

Signed-off-by: Roman Beranek <roman.beranek@prusa3d.com>
2021-06-23 11:48:48 +02:00
enricoturri1966
7a7108b2ad Fixed warning 2021-06-23 10:30:15 +02:00
Vojtech Bubnik
d3233d66fb Fixing previous commit 2021-06-22 10:05:03 +02:00
Vojtech Bubnik
c0715866ff Win32 specific: SEH handler on background thread. Catches Windows
structured exceptions (hard crashes, segmentation faults...),
converts them to Slic3r::HardCrash exceptions and displays the exception
using the usual PrusaSlicer way.
The SEH handler is installed on the main background slicing thread
as of now, therefore hard crashes in TBB worker threads are not handled.
2021-06-22 09:54:08 +02:00
YuSanka
4e59fd504e DoubleSlider: Fixed out of range assert 2021-06-21 14:30:28 +02:00
combolek
d08a70478e
Fixes Linux (and probably MacOS) build: wx/msw/registry.h is only available on Windows. (#6634) 2021-06-19 11:45:48 +02:00
YuSanka
5434a8980f Some code beautification for the last commit
+ Fix of the TabPresetComboBox layout for "light mode" + "tabs as a menu items" preferences
2021-06-18 21:54:20 +02:00
Oleksandra Yushchenko
fd071421cb
DarkMode for MSW (#6632)
* 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)"
2021-06-18 19:46:04 +02:00
YuSanka
65f440c2ba Follow-up e3000c5305 - Fixed OSX build 2021-06-18 12:22:59 +02:00
YuSanka
e3000c5305 Implementation of the FR #3856 - Add option to replace stl in object list (right panel) 2021-06-17 21:29:18 +02:00
enricoturri1966
72df789077 Fixed the following crash:
1) Start PrusaSlicer

2) Add a box to the plater

3) Open Seam Painting or Paint - on supports gizmo

4) Save project

->crash
2021-06-17 08:16:54 +02:00
YuSanka
c5cb94d92c Follow up 0b5ea8f429
- Un-select random sequence by default
- Added a check for interval height. It have to be bigger then print layer height
2021-06-16 18:20:26 +02:00
Lukáš Hejl
2e54648b97 Fixed a multi-material painting gizmo crash when extruders colors aren't initialized, which happens when switching between SLA and FDM printer. 2021-06-16 17:05:24 +02:00
Lukáš Hejl
b32202e597 Fixed incorrectly displayed custom supports and seams in the support and seam gizmos after 7377fc34acef999774333466db18858a1dae5512. 2021-06-16 13:41:35 +02:00
Lukáš Hejl
ae1a799cf4 Fixed an issue for multi-volume objects where the seed fill visualization in the multi-material gizmo didn't disappear after the mouse was moved to another volume. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
15a1b51339 Refactoring and cleanup of painting gizmos. 2021-06-16 06:06:34 +02:00
Lukáš Hejl
8a77fa38f0 Modified MMU painting gizmo behavior so that all triangles aren't painted by default by the first extruder, which was causing several problems.
This commit also fixed the following issues:
1) After loading a 3MF with painted triangles using the MMU painting gizmo, the painted triangles might not be displayed correctly in the MMU painting gizmo.
2) The MMU segmentation was unnecessarily executed for all layers and not just for the painted layers.
3) Object's base color wasn't changed when the assigned extruder for that object was changed while the MMU paint gizmo was opened.
4) Changing the base color of an object was only possible by removing all painted triangles.
2021-06-16 06:06:34 +02:00
Lukáš Hejl
b2677f513c Fixed a possible crash when closing the MMU painting gizmo cause by a non-virtual destructor. 2021-06-16 06:06:33 +02:00
Lukáš Hejl
7377fc34ac Fixed cracks in MMU painting gizmo. All triangles, even not painted triangles, are now rendered inside MMU painting gizmo.
The cracks were caused by using glPolygonOffset to resolve Z-fighting. All triangles of the object were firstly rendered entirely with a base color. And then paint triangles were drawn over these already rendered triangles.
2021-06-16 06:06:33 +02:00
Lukáš Hejl
de9ed9ee3e Follow-up of 39fd8065a1dd0cc94b7396044392df6476592652: Apply changes also for MMU painting gizmo, so shader->start_using() is called only once. 2021-06-16 06:06:33 +02:00
Lukáš Hejl
c751f2d638 Show info about multi-material segmentation in ObjectList. 2021-06-16 06:06:33 +02:00
YuSanka
0b5ea8f429 Random extruder sequence for MMU.
Related to https://github.com/prusa3d/PrusaSlicer/issues/1866
2021-06-15 12:38:05 +02:00
Vojtech Bubnik
6bade1b24a TriangleSelector - some memory optimization.
Don't store traingle normal, but reference the source triangle,
which stores its normal.
2021-06-11 12:27:58 +02:00
YuSanka
87a996d0d5 Code refactoring to avoid a call of update_ui_from_settings() every time when switching between "3D-View" and "Preview" 2021-06-11 10:34:13 +02:00
Vojtech Bubnik
4ada2ed093 TriangleSelector::get_facets() refactoring to share vertices.
TriangleSelector::valid refactored to m_valid and valid()
and bool members moved next to each other to shrink data structure
size due to memory alignment.
2021-06-10 12:43:31 +02:00
YuSanka
b59ff2c294 Fixed a bug in update of the ObjectList when switching between 3d-View and Preview
Steps to repro:
1. start PrusaSlicer
2. add a box
-> watch the object list: only one item is shown in the list
3. switch to preview
-> the item in the object list gets a child
2021-06-09 17:21:39 +02:00
enricoturri1966
5631b2cb7c Follow-up of 2d9953069a31a0e466cde98ec067394d4003c52a 2021-06-08 15:10:01 +02:00
tamasmeszaros
cd19756a1d Merge branch 'tm_its_refactor_3' 2021-06-08 12:22:28 +02:00
enricoturri1966
5bbc68df7b Do not close application when user select 'Cancel' in the save dirty project dialog 2021-06-08 11:51:41 +02:00
tamasmeszaros
8fdb0fddc0 Get rid of Contour3D 2021-06-08 10:28:23 +02:00
tamasmeszaros
e6f97358bc Refactored hollowing backend to use indexed_triangle_mesh 2021-06-08 10:28:23 +02:00
enricoturri1966
1c35dfe591 Tech ENABLE_ALLOW_NEGATIVE_Z -> Added threshold to detect if an object is sinking 2021-06-08 10:07:47 +02:00
Lukas Matena
1f29a2593b Fixed two more locales-related issues
One warning was also fixed
2021-06-07 12:31:41 +02:00
enricoturri1966
8e75919948 #6587 - Fixed temporary .gcode file locked by gcode window visualizator while exporting to gcode 2021-06-07 11:54:16 +02:00
enricoturri1966
d8ac2ceaf6 Remove const_cast<> introduced with 0e3090fb28f2fb672a73747ed1d666ed756e4e5f 2021-06-04 16:53:05 +02:00
enricoturri1966
90edccf772 Remove const_cast<> introduced with 4da8de5f4909a77ca3d07e3b6540f50508f969c3 2021-06-04 10:23:31 +02:00
Lukas Matena
39fd8065a1 Fixed clipping plane when used with painter gizmos (follow-up of 94877a0) 2021-06-04 09:34:55 +02:00
Lukáš Hejl
cc913d52ef Added name for items in undo/redo stack inside multi-material gizmo. 2021-06-03 18:11:48 +02:00
Lukáš Hejl
94877a0ec0 Fixed the wrong transformation matrix for "Clipping of view" when is used a printer with multiple extruders. 2021-06-03 08:00:46 +02:00
YuSanka
4b5e568f14 Follow-up 7eebd56b5f281a770485eca5f29e51b9e77f3a56 - fixed a typo
+ added add_negative.svg for dark mode
2021-06-02 14:36:49 +02:00