319 Commits

Author SHA1 Message Date
PavelMikus
20c91aa48e Meshfix integration into GUI 2022-06-07 11:10:51 +02:00
YuSanka
a248490507 Fix for #7905 - Segfault when changing printer after loading 3mf with a different printer set
Update searcher only before open one of next dialogs : SearchDialog, UnsavedChangesDialog or DiffPresetDialog.
But only Search dialog respects to the mode of PrusaSlicer
2022-04-11 12:09:30 +02:00
YuSanka
959804c80c Fixed a use of uninitialized variables reported by MemorySanitizer 2022-01-21 16:54:18 +01:00
enricoturri1966
0cb0f56a80 Tech ENABLE_ENHANCED_PRINT_VOLUME_FIT set as default 2022-01-12 14:12:13 +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
tamasmeszaros
86afffa692 Don't let UI jobs overlap. 2021-11-30 12:07:52 +01:00
enricoturri1966
fd509199da Tech ENABLE_ENHANCED_PRINT_VOLUME_FIT - 1st installment, Scale to print volume command for circular printbeds 2021-11-24 10:55:48 +01:00
YuSanka
7828964f8c Fix for #7328 - Filename containing chars not usable on FAT result in error and crash in gcode export 2021-11-23 13:53:58 +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
Lukas Matena
a01ab28e4c Fixed encoding of gizmo entering/leaving undo redo snapshots,
which was broken by adding an extra TakeSnapshot overload in 41dc265
2021-10-29 21:47:47 +02:00
Vojtech Bubnik
1f3b272d77 Redo of the project state, implementation of Undo/Redo stack compression 2021-09-30 12:17:39 +02:00
Vojtech Bubnik
8f4f02f84c Merge remote-tracking branch 'remotes/origin/vb_project_state' 2021-09-27 14:36:22 +02:00
Vojtech Bubnik
41dc265a45 WIP Undo / Redo and project state: Marking Undo / Redo snapshots
with their purpose.
2021-09-27 14:10:53 +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
tamasmeszaros
63647f594e Add dedicated subclass NotificationProgressIndicator
to replace ProgressStatusBar and revert changes from b9dab754, keep UI jobs untouched
2021-09-21 12:34:40 +02:00
YuSanka
03a692cfd1 Implemented possibility to fix several objects at once 2021-09-16 10:07:00 +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
Vojtech Bubnik
32733b7db9 GCodeProcessor collects positions of line ends for GCodeViewer,
GCodeViewer no more parses G-code just to extract line end positions.
Removed start_mapping_gcode_window(), void stop_mapping_gcode_window(),
they are no more needed.
2021-09-07 15:42:56 +02:00
Lukas Matena
4cc729b312 Fixed encoding of undo/redo snapshot names created through
TakeSnapshot class (implicit std::string/wxString conversion)
2021-08-31 12:05:08 +02:00
YuSanka
3a2a9d8500 Follow up c0a00f4e7016685f4afd34aca3605125dff38c66 - Check unsaved changes only if project wasn't saved 2021-08-11 15:40:57 +02:00
Filip Sykala
59d02aea0a Merge branch 'master' into fs_QuadricEdgeCollapse 2021-08-02 09:04:15 +02:00
enricoturri1966
5aff44debe ENABLE_PROJECT_DIRTY_STATE set as default 2021-07-30 09:33:51 +02:00
David Kocik
0d74502aeb Hint notification
Reads data from hints.ini. Has hyperlinks to highlight settings, toolbars and gizmos.
2021-07-29 13:20:50 +02:00
enricoturri1966
81f4df70dc Fixed conflict after merge with master 2021-07-29 12:25:28 +02:00
Lukas Matena
a54f5fb41a Render statistics now shows actual SwapBuffers() calls per second 2021-07-28 12:50:01 +02:00
enricoturri1966
502906178f Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_sinking_contours 2021-07-27 09:04:52 +02:00
YuSanka
e79bcee739 Fixed update of the default menu after changing of the mode.
+ Added check for the output directory for the G-code extport.
2021-07-26 14:41:38 +02:00
enricoturri1966
5c6810d0bc Fixed conflicts after merge with master 2021-07-22 11:46:00 +02:00
enricoturri1966
7817105abe Tech ENABLE_GCODE_WINDOW set as default 2021-07-22 09:37:02 +02:00
enricoturri1966
22f04ca46e Tech ENABLE_SINKING_CONTOURS -> 1st installment 2021-07-21 15:30:57 +02:00
Filip Sykala
af526c54f4 Add simplification GUI 2021-07-19 09:17:50 +02:00
YuSanka
6f9f4f78b7 Added SimplificationDialog 2021-07-09 09:10:03 +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
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
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
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
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
ede14251b1 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_project_dirty_state 2021-05-03 16:05:22 +02:00
Lukas Matena
dfe926ef63 Info in ObjectList: Added variable layer height 2021-04-19 16:10:40 +02:00
enricoturri1966
926ecd0585 Project dirty state manager -> plater dirty state 2021-04-07 12:58:14 +02:00
tamasmeszaros
649dfca8d6 Allow rotation of multiple selected items. Disable auto positioning 2021-04-07 12:51:02 +02:00
enricoturri1966
edbb1d0f69 Project dirty state manager -> presets dirty state 2021-04-06 16:29:05 +02:00
enricoturri1966
5d4b7c03b6 Extended interface of project dirty state manager 2021-04-06 13:17:29 +02:00
enricoturri1966
144e37c274 1st installment of project dirty state manager 2021-04-06 10:00:17 +02:00
Oleksandra Yushchenko
e002f0066f
Ys code refactoring (#6227)
* GUI_ObjectList code refactoring:
The MenuFactory structure contains functions related to the context menu and bitmaps used to different volume types.
The SettingsFactory structure contains functions to getting overridden options, its bundles and bitmaps used to setting categories.

Fixed bugs/crashes:
1. Add object -> Add Settings from 3D scene -> Right click on object => Part's Settings list instead of object's
   (Same behavior if something else but Object is selected in ObjectList)
2. Add settings to the part -> Change part type to the "Support Blocker/Enforcer" -> Settings disappears (it's OK) but =>
   Save Project -> Open project => Support Blocker/Enforcer has a settings
3. Add part for object -> Change type of part -> Change monitor DPI -> old type icon appears
4. Select all instances in ObjectList -> Context menu in 3D scene -> Add Settings -> Select some category -> Crash

* ObjectLayers: Fixed a crash on re-scaling, when some layer range is selected

* Fixed OSX build

* Added menu item "Split to Objects" for multipart objects

+ Fixed bug: Add 2 parts,
             Add some settings for one part
             Delete part without settings => Single part object without settings, but settings are applied for the object.

+ Next refactoring: use same menu for Plater and ObjectList
2021-03-15 10:04:45 +01:00
enricoturri1966
77be228b75 Tech ENABLE_DRAG_AND_DROP_FIX set as default 2021-02-17 14:52:58 +01:00
YuSanka
e664100bf6 SPE-1103 Added menu items for the conversation of the volumes from/to meters
Related to #4521
2021-02-10 20:34:05 +01:00
YuSanka
3070e66aae Fixed black rects for extruder colors, when we load 3mf project with MM-printer profile and extruder colors is set to the filament colors
+ Fixed a bug with updating colors in extruder editors in ObjectList, when we use filaments colors for extruders and some filament profile is switched
2021-01-07 08:52:45 +01:00