487 Commits

Author SHA1 Message Date
YuSanka
2b66a81ee1 Preferences: Changed tooltip for the "Suppress to open hyperlink in browser"
+ Show "PrusaSlicer: Don't ask me again" dialog when "Remember my choice" is checked in "PrusaSlicer: Open hyperlink" dialog
+ Ignore suppress of hyperlink for menu items
+ Code refactoring for OptionsGroup::launch_browser() => use common wxGetApp().open_browser_with_warning_dialog().
2022-01-06 13:55:40 +01:00
YuSanka
080e80a4d6 Localization: Next improvements: CS, IT, ES, DE, ES, FR 2021-12-10 17:28:36 +01:00
Vojtech Bubnik
bfce4f6901 Follow-up to 3622f06bed6175a337d2e20b5dc6ae9d770cb3cf
Work around 3D scene focus after de-activation of the main
window without having to resort to CallAfter(), which breaks
on Linux with some window managers that follow mouser cursor.
Fixes #5620 #6870 #6992

3622f06bed6175a337d2e20b5dc6ae9d770cb3cf was not a correct solution,
it broke focus for non-modal windows.
Fixes #7419

The actual issue seems to be caused by wxProgressDialog not playing
well with modal dialogs closed just before wxProgressDialog opens.
If wxProgressDialog parent was not a main frame, keyboard focus
was not restored correctly after the wxProgressDialog closed.
2021-12-05 09:09:34 +01:00
bubnikv
3622f06bed Trying to work around 3D scene focus after de-activation of the main
window without having to resort to CallAfter(), which breaks
on Linux with some window managers that follow mouser cursor.
May fix #5620 #6870 #6992
2021-12-03 16:20:01 +01:00
YuSanka
def5bd6797 Follow-up to 7272b2b083
Comment is extended
2021-12-03 09:39:37 +01:00
YuSanka
7272b2b083 Fix for #7207 - Display of object labels does not match with the "View"-menu, if "Complete individual objects" is used 2021-12-02 17:08:03 +01:00
YuSanka
71a9ded1c0 ObjectList: Fixed update of the icons for InfoItems, when color mode was changed
Sidebar:ObjectInfo: Fixed update of the icon, when color mode was changed
+ Added new icons for "Sinking" and "ShapeGallery"
2021-12-02 16:11:52 +01:00
tamasmeszaros
86afffa692 Don't let UI jobs overlap. 2021-11-30 12:07:52 +01:00
enricoturri1966
781b457035 Tech ENABLE_SAVE_COMMANDS_ALWAYS_ENABLED set as default 2021-11-30 09:41:43 +01:00
enricoturri1966
a4baecb340 #7326 - Fixed crash when starting GCodeViewer 2021-11-22 10:57:38 +01:00
YuSanka
244b66649c Check unsaved preset changes only when presets have been changed in the project 2021-11-19 16:33:28 +01:00
Vojtech Bubnik
cc44089440 New BuildVolume class was created, which detects build volume type (rectangular,
circular, convex, concave) and performs efficient collision detection agains these build
volumes. As of now, collision detection is performed against a convex
hull of a concave build volume for efficency.

GCodeProcessor::Result renamed out of GCodeProcessor to GCodeProcessorResult,
so it could be forward declared.

Plater newly exports BuildVolume, not Bed3D. Bed3D is a rendering class,
while BuildVolume is a purely geometric class.

Reduced usage of global wxGetApp, the Bed3D is passed as a parameter
to View3D/Preview/GLCanvas.

Convex hull code was extracted from Geometry.cpp/hpp to Geometry/ConvexHulll.cpp,hpp.
New test inside_convex_polygon().
New efficent point inside polygon test: Decompose convex hull
to bottom / top parts and use the decomposition to detect point inside
a convex polygon in O(log n). decompose_convex_polygon_top_bottom(),
inside_convex_polygon().

New Circle constructing functions: circle_ransac() and circle_taubin_newton().

New polygon_is_convex() test with unit tests.
2021-11-16 10:15:51 +01:00
YuSanka
8bfa132a1b Localization fixes + new POT 2021-11-12 09:21:41 +01:00
Vojtech Bubnik
7b0d90f489 Reworded "Shape Gallery" menu and dialog title 2021-10-07 15:40:28 +02:00
YuSanka
577632d892 Check unsaved preset changes only if project is dirty and it wasn't saved 2021-10-04 16:20:46 +02:00
enricoturri1966
b78d7cea28 #7054 - Tech ENABLE_SAVE_COMMANDS_ALWAYS_ENABLED: enable command Save (CTRL+S) for untitled projects (automatically calls command Save As) 2021-10-04 09:20:35 +02:00
Vojtech Bubnik
1f3b272d77 Redo of the project state, implementation of Undo/Redo stack compression 2021-09-30 12:17:39 +02:00
YuSanka
e477903d3e MSW specific: Fixed settings layout after switching from New to Old layout
(Notebook: Added check of a visibility of just selected tab in notebook)
2021-09-22 15:53:59 +02:00
Oleksandra Yushchenko
8f064dd155
Check unsaved changes (#6991)
* 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
2021-09-22 12:44:13 +02:00
Vojtech Bubnik
8a2a9dba2f Eradicated admesh from TriangleMesh:
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.
2021-09-20 17:12:22 +02:00
David Kocik
b9dab7540e Removes bottom status bar.
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.
2021-09-10 14:35:13 +02:00
Jason Scurtu
b41e321473 rename 2021-09-06 16:19:30 +02:00
Jason Scurtu
07bdb5fbe3 add gcodeviewer 2021-09-06 16:19:30 +02:00
Jason Scurtu
ce0beabb43 add new mac icon and update MainFrame.cpp 2021-09-06 16:19:30 +02:00
David Kocik
5f7a4982f6 Open menubar item by name with translations 2021-09-02 09:48:06 +02:00
David Kocik
876e6fdddd Commented opening menubar item until its properly implemented. 2021-09-01 15:12:47 +02:00
Vojtech Bubnik
950c216239 Commented out AMF export. The format never took off, we don't want to
keep supporting it. Let's wait for user feedback.
2021-09-01 15:11:26 +02:00
Lukáš Hejl
8ad109235b Added a missing include (GCC 11.1). 2021-09-01 14:28:42 +02:00
David Kocik
229cf4b8b6 Open menubar item by item index. Possible to call as hint notification hyperlink 2021-09-01 13:34:36 +02:00
enricoturri1966
639cf17e19 Fixed conflicts after merge with master 2021-09-01 13:28:10 +02:00
enricoturri1966
9a5f61c306 Added missing vertical alignments of labels in imgui dialogs 2021-08-31 08:53:40 +02:00
enricoturri1966
c32f2fb765 New project command enabled when the plater is empty but the project state is marked as dirty 2021-08-30 12:14:45 +02:00
enricoturri1966
dbaaa35534 Tech ENABLE_SAVE_COMMANDS_ALWAYS_ENABLED -> 1st installment: Allow to save/load empty projects 2021-08-26 10:38:14 +02:00
David Kocik
e6bae06557 Notice dialog when opening any link outside PrusaSlicer 2021-08-25 15:07:38 +02:00
enricoturri1966
b3010a817b Do not allow objects to be placed fully below bed 2021-08-24 07:46:59 +02:00
enricoturri1966
1f8b134a77 Changed app title when the current project is modified and non yet named 2021-08-23 12:40:28 +02:00
Vojtech Bubnik
a25d2d1de4 Support for SL1S printer:
Where SL1 is mentioned, mention it as SL1 / SL1S.
Support loading / saving of SL1S files in addition to SL1.
2021-08-13 13:40:13 +02:00
Vojtech Bubnik
856da036eb Fixed loading of system presets with incompatible system profile keys
before the "reconfigure" dialog is shown.

Replaced boost::filesystem::copy_file() with Slic3r::copy_file()
in config snapshot loading code.
2021-08-13 13:34:40 +02:00
YuSanka
1e60acde12 Substitutions : Implemented InfoDialog 2021-08-13 13:30:50 +02:00
David Kocik
4df2c969a5 Hint notification
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.
2021-08-11 17:15:23 +02:00
YuSanka
3a2a9d8500 Follow up c0a00f4e7016685f4afd34aca3605125dff38c66 - Check unsaved changes only if project wasn't saved 2021-08-11 15:40:57 +02:00
David Kocik
06d27bcb3c Hints notification
Hints notification: enabled / disabled tags 
Hints notification: suppress opening url due to preferences.
Hint notification: close after 5 minutes and button in Help menu
2021-08-10 14:48:23 +02:00
enricoturri1966
5aff44debe ENABLE_PROJECT_DIRTY_STATE set as default 2021-07-30 09:33:51 +02:00
enricoturri1966
5faac3c105 Tech ENABLE_VALIDATE_CUSTOM_GCODE set as default 2021-07-22 09:13:12 +02:00
YuSanka
c7051c9005 Removed unnecessary conditions that interfere with the search. 2021-07-21 14:48:05 +02:00
YuSanka
44f1dac8c7 GalleryDialog: Added process of the "Close" button
SavePresetDialog: To correct "darkmodding" the wxRadioBox was changed to the wxStaticBoxSizer with radio buttons
+ Some code cleaning
2021-07-20 14:46:38 +02:00
YuSanka
e6c361ec5e Added "Modify Shapes Gallery" to the "Window" menu
+ Fixed a non-MSW build (added missed include)
2021-07-20 11:25:24 +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
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
enricoturri1966
7a7108b2ad Fixed warning 2021-06-23 10:30:15 +02:00