Commit graph

233 commits

Author SHA1 Message Date
Vojtech Bubnik
308d6b7809 WIP: Reworked slicing
1) Slicing code moved to TriangleMeshSlicer.cpp,hpp from TriangleMesh.cpp,hpp
2) Refactored to use as little as possible of admesh.
2021-05-17 20:25:59 +02:00
Vojtech Bubnik
b5573f959b Refactoring for code clarity: Replaced this->m_xxx with m_xxx
as the m_ prefix already signifies a class local variable.
2021-05-06 14:43:36 +02:00
Vojtech Bubnik
01406fd521 Worked around some quirky Linux file system issues. Namely
the Chromebooks share their file system to Linux using the 9p file
system, which does not support setting file ownership. Newly PrusaSlicer
will detect platform and it will not panick if copy_file() cannot set
file ownership after copying. It just logs the incident, and on
chromebooks the loglevel for that incident is "Info", not "Error".

Adjusted the full screen mode to contain menu bar.
Moved Platform.cpp/hpp to libslic3r
2021-03-15 16:19:22 +01:00
Vojtech Bubnik
95c5763b83 Fixed typo in previous commit. 2021-03-15 09:55:57 +01:00
Vojtech Bubnik
33b63b35a2 Added detection of Microsoft WSL/WSL2 Linux flavors.
Added tracing of the platform detection.
2021-03-15 09:55:57 +01:00
Vojtech Bubnik
2c76c42baa Linux/OSX don't like an "BSD" symbol? 2021-03-15 09:55:57 +01:00
Vojtech Bubnik
a9c3d270e6 ConfigOptions: GUI type as enum, not string.
Fixing compilation error in the new Platform code.
Fixing one issue in FDM support after splitting the top/bottom
interface layers.
2021-03-15 09:55:57 +01:00
Vojtech Bubnik
051ba0e6f4 New files missing from the previous commit. 2021-03-15 09:55:57 +01:00
Vojtech Bubnik
589d2be442 Fix of Repair with Netfabb does not work on builds after 2.3.0 release (Windows 10) #6193
This is more a workaround than a fix: Windows 10 3D model fixing API refuses
to load a zip64 encoded 3MF. We need to get in touch with Microsoft on that
issue, for now the 3MFs generated for the Windows 10 3D model fixing API
will be limited to 4GB. Saving a bigger 3MF will fail.
2021-03-08 09:36:21 +01:00
Vojtech Bubnik
8049dd1f72 Trying to fix the remaining OSX warnings 2021-02-10 19:07:09 +01:00
Vojtech Bubnik
2393d64a5a Fixed some OSX Objective C warnings. 2021-02-09 19:51:56 +01:00
Vojtech Bubnik
20456b45e5 Fix of the previous commit (fixing warnings) 2021-02-09 19:46:09 +01:00
Vojtech Bubnik
5e9a8ea700 Fixed some clang warnings 2021-02-09 19:23:58 +01:00
Lukas Matena
1834ebe981 Fixing Clang warnings 3 2021-02-08 17:52:29 +01:00
Lukas Matena
b85de89751 Fixing Clang warnings 2 2021-02-08 17:52:29 +01:00
Lukas Matena
0ff0444dcc Fixing Clang warnings 1 2021-02-08 17:52:29 +01:00
Vojtech Bubnik
7d751753bc Replaced __linux macro with __linux__ 2021-01-11 13:31:30 +01:00
Vojtech Bubnik
2b02747ec5 On OSX, we use boost::process::spawn() to launch new instances of PrusaSlicer from another PrusaSlicer.
boost::process::spawn() sets SIGCHLD to SIGIGN for the child process, thus if a child PrusaSlicer spawns another
subprocess and the subrocess dies, the child PrusaSlicer will not receive information on end of subprocess
(posix waitpid() call will always fail).
https://jmmv.dev/2008/10/boostprocess-and-sigchld.html
The child instance of PrusaSlicer has to reset SIGCHLD to its default, so that posix waitpid() and similar continue to work.
Fixes #5507
2021-01-07 19:14:48 +01:00
Vojtech Bubnik
71808dc006 boost::process::spawn() sets SIGINT to SIGIGN, which collides with boost::process waiting for a child to finish!
https://jmmv.dev/2008/10/boostprocess-and-sigchld.html
Thus reset the SIGINT to its default, so that posix waitpid() and similar continue to work.
Fixes Crash on Eject in Second Instance on macOS #5507
2021-01-07 17:38:56 +01:00
Lukas Matena
78a3d8b63e Fixed ASCII folding for non-foldable non-ASCII characters
Problem: Add an object, name it using cyrilic, Slice, click Export: the proposed name is mangled. Affects all platforms, 2.2.0 was fine.

Cause: It is mangled during ASCII folding, which was broken with 28c0880 when it was generalized to be used from the fuzzy matcher.
    fold_to_ascii(wchar_t c, char *out) relies on narrowing char = wchar_t assignment, the old one used std::back_insert_iterator<std::wstring>.
    It is thus unable to leave a character alone even when it should (it should, right?).

Solution:
    1. Typed the fold_to_ascii function so it works on wchar_t only, which should mimic the old behaviour.
    2. Changed the respective call in fts_fuzzy_match.h. That function also works with wide char C-strings.

Cleanup:
    1. Removed the unused fold_utf8_to_ascii(const char *src) overload to avoid code duplication.
    2. Untemplated the fold_to_ascii(wchar_t c, std::back_insert_iterator<std::wstring>& out) function, it was never called with a different type.
    3. The function is now static in ASCIIFolding.cpp, nobody else needs to know.
2020-12-21 10:31:37 +01:00
Lukas Matena
aa69730bc2 Revert recent changes in PresetUpdater error reporting
This reverts commits:
57ba953 ("PresetUpdater - exceptions reformatted, not throwing an exception")
03028bb ("Improved exception throwing at copy file in preset updater")
2020-12-17 16:08:51 +01:00
David Kocik
99747f8f25 Changed requested time of rendering for timed notification to full duration. Commented unused code. 2020-12-16 17:43:51 +01:00
YuSanka
8b980d4b77 Localization: Updated PrusaSlicer.pot and CZ dictionary
+ Fixed some phrases.
2020-12-16 17:29:38 +01:00
David Kocik
3ae40139b3 render timer 2020-12-16 14:15:12 +01:00
David Kocik
0592d15c50 render timer draft 2020-12-16 14:15:12 +01:00
Lukas Matena
1249fdb71d Remove custom supports/seams after mesh repair
The repair can remove some of the triangles, so the custom data would make no sense.
This will hopefully fix #5458

Also, show a notification with a hyperlink to undo just before the repair.
2020-12-14 22:59:02 +01:00
Vojtech Bubnik
d70d54d4d3 UndoRedo extension::
has_undo_snapshot(timestamp) to query whether one can undo to a snapshot
with a specific timestamp. Useful for notifications, that want to Undo
a specific operation, to verify whether such operation is still valid.
2020-12-14 16:22:40 +01:00
Vojtech Bubnik
57ba953b2e PresetUpdater - exceptions reformatted, not throwing an exception
on Linux when changing file attributes, as changing file attributes
may fail when writing onto FAT file system, which does not support
some of the common Unix file attributes.
2020-12-14 11:05:12 +01:00
David Kocik
03028bb23e Improved exception throwing at copy file in preset updater 2020-12-10 19:39:47 +01:00
David Kocik
8522c06812 cleanup 2020-12-10 11:02:46 +01:00
David Kocik
3523bb421f Ongoing uploads while exiting dialog
Ongoing uploads while exiting dialog

Ongoing uploads while exiting dialog
2020-12-10 11:02:46 +01:00
enricoturri1966
0d4123192f Removed GLCanvas3D from parameters of NotificationManager methods 2020-11-30 13:45:17 +01:00
tamasmeszaros
0a932ebfe3 Enable http digest authentication for CURL 2020-11-25 13:58:03 +01:00
Lukas Matena
ab6af3ff68 Fix of #5058 (failing build with wx3.0) 2020-11-04 11:58:45 +01:00
Vojtech Bubnik
7c571c1d9d Merge of pull request Add support for RepetierServer #4384 by @docbobo
with the following refactorings:

1) Removed the "printhost_slug" config from the Printer config
   and from all the Printer config related spots.
2) "printhost_slug" renamed to "printhost_port". Slug sounds nasty.
3) Improved error reporting of RepetierHost class.
4) Refactored for the new "Physical Printers"

Following refactorings were done independently of the Repetier pull request:
1) Removed PrintHost static print config.
2) Clean-up after conversion of print host configuration
   from Printer config to Physical Printer config.
3) Fixed some issues, where the Printer config was still queried for
   host configuration. Vojtech believes that this should not happen
   after the host configuration is converted to physical printers.

Vojtech still feels that more refactoring is needed in regard to porting
the host configuration from Printer profile to the new Physical Printer
profile.
2020-10-28 09:51:05 +01:00
Vojtech Bubnik
ebdf2acd03 Follow-up to
Use https in config update URLs

	http://files.prusa3d.com/* always redirects to HTTPS so use https scheme
    directly.

The pull request broke updates to those who installed configs with
http://, not https:// prefix.
2020-10-24 16:35:34 +02:00
Vojtech Bubnik
6531061d09 Support for naming slicer own threads for debugging.
The following threads are named with this commit:
slic3r_main, slic3r_BackgroundSlicingProcess,
slic3r_tbbpool_xx_yy where xx is a one based index of the TTB thread
and yy is the platform thread ID.
2020-10-22 13:54:15 +02:00
Vojtech Bubnik
acbf25681a Wifi Duet upload: Improved some string copying. 2020-10-21 14:42:08 +02:00
Lukas Matena
d0ad098661 Fix debug build 2020-10-20 17:55:32 +02:00
YuSanka
a4962b4fe6 Fixed a build 2020-10-20 17:23:57 +02:00
Lukas Matena
197d2b968c Tiny changes in the new Duet3D dsf support code 2020-10-19 17:23:13 +02:00
Lukas Matena
daeb618812 Merge branch 'add-duet-software-framework-support' of https://github.com/Duet3D/PrusaSlicer into Duet3D-add-duet-software-framework-support 2020-10-19 11:50:31 +02:00
Vojtěch Bubník
c59db4e7fe
Merge pull request #4213 from onovy/https
Use https in config update URLs
2020-10-17 21:13:43 +02:00
Vojtech Bubnik
dd2cd62a4f WIP Review of NotificationManager: Fixed some typos, added some comments. 2020-10-14 12:57:40 +02:00
Lukas Matena
f0de7f13fc Added a missing include 2020-10-12 17:52:48 +02:00
David Kocik
4b224359ef starting prusaslicer from gcode viewer and vice versa, by menus or by stl drop on icon. Bring gcode viewer forward after start. 2020-10-12 15:26:19 +02:00
bubnikv
b71e5c2763 Maybe one day we will be able to run PrusaGCodeViewer, but for now the Apple notarization
process refuses Apps with multiple binaries and Vojtech does not know any workaround.
Just run PrusaSlicer and give it a --gcodeviewer parameter.
2020-10-01 15:11:56 +02:00
Vojtech Bubnik
54976e29bb New class ModelConfig wrapping DynamicPrintConfig and a timestamp
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.
2020-09-24 15:34:13 +02:00
Vojtech Bubnik
056c46d01f Undo/Redo serialization extension:
If an object indicates a valid timestamp, then the timestamp
is relied upon to not serialize the object data if the timestamp
of the same object on the undo/redo stack matches.
2020-09-23 12:18:39 +02:00
Lukas Matena
4d5d1390f0 Added a missing include for gcc 2020-09-15 16:40:57 +02:00