Commit Graph

8648 Commits

Author SHA1 Message Date
Lukas Matena
e97205c415 Fixed build on Linux 2021-07-13 08:30:49 +02:00
YuSanka
1c64404890 GalleryDialog improvements:
* Added "Replace PNG" function
* Added locks instead of border for system shapes
2021-07-12 17:22:22 +02:00
Filip Sykala
f1d92cdf9c FIX: Mutable priority queue 2021-07-12 16:36:08 +02:00
Oleksandra Yushchenko
080807eda5 Modifiers Gallery (#6703)
* Added GalleryDialog

* GalleryDialog improvements:
* Added DnD functionality
* Added "Delete custom shapes" function
2021-07-12 15:20:50 +02:00
Lukáš Hejl
e2603b1652 Removed unnecessary backward compatibility with old multi-material painted 3MF from the early stage of development. 2021-07-12 13:37:33 +02:00
Lukáš Hejl
afb13dadc1 Fixed an issue where seed fill selection stuck displayed when the mouse was moving inside multi-material gizmo when the gizmo was overlapping the model. 2021-07-12 13:21:10 +02:00
Vojtech Bubnik
5b9d7e7376 Follow up (bugfix) of 0d70a2be69
GLIndexedVertexArray newly uses Eigen::AlignedBox<float, 3>
for efficiency instead of our double based BoundingBoxf3.
2021-07-12 10:53:09 +02:00
Lukas Matena
e80ef16a5b Added a missing locale switch needed for custom gcode validation when switching tabs 2021-07-12 09:38:32 +02:00
Filip Sykala
94111f5d85 Merge branch 'master' into fs_QuadricEdgeCollapse 2021-07-09 13:40:58 +02:00
Vojtech Bubnik
a3e507a9b9 MutablePriorityQueue: Added is_trivially_copyable test for queue value
types, added [] accessors.
2021-07-09 13:25:41 +02:00
Vojtech Bubnik
0f9b2e20bf 1) Fixed a significant bug in MutablePriorityQueue when setting
the indices allowing rescheduling of values in the middle of the queue.
2) Implemented a cache friendly variant - MutableSkipHeapPriorityQueue
   based on
   https://playfulprogramming.blogspot.com/2015/08/cache-optimizing-priority-queue.html
   https://github.com/rollbear/prio_queue/blob/master/prio_queue.hpp
2021-07-09 12:53:29 +02:00
Filip Sykala
e9cb528198 FIX Simplify test 2021-07-09 10:31:05 +02:00
Filip Sykala
4d184bfaba Merge branch 'simplification' into fs_QuadricEdgeCollapse 2021-07-09 09:21:07 +02:00
Filip Sykala
2683088b8d Merge branch 'master' into fs_QuadricEdgeCollapse 2021-07-09 09:10:05 +02:00
YuSanka
c12e7dc6a7 Added SimplificationDialog 2021-07-09 09:10:03 +02:00
Filip Sykala
c5890b9b67 Add throw_on_cancel and statusfn into QEC 2021-07-09 09:09:52 +02:00
Filip Sykala
d78f5d877b Speed up QEC by move error directly into MutablePriorityQueue
Memory optimization: Change size_t to 32bit int
Lightweight Error structure for faster PriorityQueue
2021-07-08 18:08:27 +02:00
tamasmeszaros
7885c35c9e Merge branch 'tm_arrange_notify' 2021-07-08 16:36:49 +02:00
jmd73
58545b9e47 Changed "temporary instaled" to "temporarily installed" (#6685) 2021-07-08 15:59:29 +02:00
tamasmeszaros
1f82670fb3 Add notification if some objects are ignored after arrange 2021-07-08 13:35:40 +02:00
Filip Sykala
0b9f9f0062 Merge branch 'master' into fs_QuadricEdgeCollapse 2021-07-07 16:52:10 +02:00
Lukas Matena
85b0c0c5b2 Slightly improved 'no first layer extrusions' error message 2021-07-02 17:05:31 +02:00
David Kocik
c1abc38aec fix of infinite loop in notification lines calulating #6583 2021-07-02 15:13:03 +02:00
Lukas Matena
cea3fff0df Fixed incorrect use of _NDEBUG instead of NDEBUG
Some debugging code was compiled even in release mode because of this
2021-06-30 11:59:16 +02:00
YuSanka
e96d87bc6d Follow-up 4652733201 - Fixed Text alignment for Notebook tabs without bitmaps 2021-06-30 10:44:27 +02:00
Lukas Matena
a7e1797746 Fixed locales switching on macOS 2021-06-30 10:02:51 +02:00
Lukáš Hejl
6d0287874d Fixed compilation on Linux 2021-06-30 08:56:35 +02:00
Vojtech Bubnik
f944596e62 Renamed the "marlinfirmware" firmware flavor to "marlin2". 2021-06-29 17:55:26 +02:00
Oleksandra Yushchenko
a41a214584 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
tamasmeszaros
c90c350526 Fix crash after SL1 import 2021-06-29 11:40:50 +02:00
tamasmeszaros
5bdef2d29f Hotfix for arrange not working for objects with huge translation. 2021-06-28 14:55:15 +02:00
David Kocik
d150f7fb46 fix of #6588 - using same copy function for updating presets as for exporting gcode 2021-06-28 13:21:07 +02:00
David Kocik
5161cfdace 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
309dc55456 Used function smooth_outward in multi-material segmentation to get rid of artifacts arisen after merging multi-volume objects. 2021-06-28 08:09:06 +02:00
Lukáš Hejl
2f2d9b034e Replaced boost::rtree in multi-material segmentation with much faster ClosestPointInRadiusLookup. 2021-06-28 08:09:06 +02:00
Lukáš Hejl
ae27f0d853 Optimized the projection of painted triangles in multi-material segmentation. Added heuristics to skip most of the expensive calculations in cases where it is certain that performing these calculations would be useless. 2021-06-28 08:09:06 +02:00
Lukáš Hejl
a0c0a64508 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
f33310871c 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
6df900b735 Fix of wxWidgets3.0 again wxGetApp not declared in this scope #6655 2021-06-28 07:45:13 +02:00
Vojtech Bubnik
dc005a2933 Fixing some compiler warnings. 2021-06-27 17:45:41 +02:00
Vojtech Bubnik
05ccafeeb5 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
c5304750d9 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
Vojtech Bubnik
d0a1416599 Because of a crash in PrusaSlicer 2.3.0/2.3.1 when showing an update
notification with some locales, we don't want PrusaSlicer 2.3.0/2.3.1
to show this notification. On the other hand, we would like PrusaSlicer
2.3.2 to show an update notification of the upcoming PrusaSlicer 2.4.0.
Thus we will let PrusaSlicer 2.3.2 and couple of follow-up versions
to download the version number from an alternate file until
the PrusaSlicer 2.3.0/2.3.1 are phased out, then we will revert to
the original name.
2021-06-25 17:54:43 +02:00
Vojtech Bubnik
06872f02e5 Windows specific: Transactional saving of PrusaSlicer.ini to ensure
that configuration could be recovered in the case PrusaSlicer.ini
is corrupted during saving. The config is first written into a temp file
marked with a MD5 checksum. Once the file is saved, it is
copied to a backup file first, then moved to PrusaSlicer.ini.

When loading PrusaSlicer.ini fails, the backup file will be loaded
instead, however only if its MD5 checksum is valid.

The following "Fixes" comments are for github triggers. We implemented
a workaround, not a fix, we don't actually know how the data corruption
happens and why. Most likely the "Move file" Windows API is not atomic
and if PrusaSlicer crashes on another thread while moving the file,
PrusaSlicer.ini will only be partially saved, with the rest of the file
filled with nulls. We did not "fix" the issue, we just hope that our
workaround will help in majority of cases.

Fixes prusaslicer wont open 2.3 windows 10 #5812
Fixes Won't Open - Windows 10 #4915
Fixes PrusaSlicer Crashes upon opening with "'=' character not found in
line error" #2438
Fixes Fails to open on blank slic3r.ini %user%\AppData\Roaming\Slic3rPE
2021-06-25 16:44:06 +02:00
YuSanka
0f6182d5a6 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
4ba8abf84a Slight improvement in cost of background slicing cancellation. 2021-06-23 16:37:18 +02:00
Vojtech Bubnik
3773ebe354 Fixed after removing TBB deprecated APIs 2021-06-23 15:24:05 +02:00
Filip Sykala
8e3c685a8b Merge branch 'master' into fs_QuadricEdgeCollapse 2021-06-23 13:59:03 +02:00
Filip Sykala
2cb6e4ec8a Assert check of new vertex can't be used general on All models(depends on scale)
Fix variable name in compare function
Remove second triangle from  MPQ
2021-06-23 12:16:22 +02:00
Roman Beránek
50b4f08e37 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