Commit Graph

184 Commits

Author SHA1 Message Date
Vojtech Bubnik
cbae54b88b Fix of output file dialog extension template for OSX:
When opening a "Save" file dialog with a default output file name,
OSX file dialog strips the provided extension and replaces it
with the default extension. This causes issues with a custom
file output template, where a non-default file extension is specified.

This commit changes the function to generate file dialog templates
so that if a default extension is provided, it is emitted
as first into the extension template.

Fixes Post Processing passes wrong name #7190
2021-11-29 15:46:25 +01:00
Vojtech Bubnik
537df6b503 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
Vojtech Bubnik
a2e764d7ac Revert "medical"
This reverts commit 117302ba22.
2021-11-11 11:22:57 +01:00
Vojtech Bubnik
3ead6a7d3e medical 2021-11-11 10:11:13 +01:00
YuSanka
562b60a3db MSW_DarkMode: Next Improvements
* Refreshed title bar for all Dialogs and MainFrame
* Refreshed header of the DataViewCtrl and ListView
* Refresh tooltips
* Redraw SpinCtrls
* Use system menu with is colored in respect to the color mode
* Preferences: Added parameter "Use system menu for application" and moved to the "Dark mode" tab with "Enable Dark mode parameter"
2021-11-05 10:01:13 +01:00
David Kocik
03c54e612a Copying from other config folders:
Find if there is more recent config in other folders (alpha / beta / release).
If yes, ask user, make snapshot, copy files.
if there is no current config, ask user and copy recent one.
2021-11-02 10:51:45 +01:00
YuSanka
144bdc4ce8 MSW DarkMode: Set mode colors for "Change volume type" dialog. 2021-10-29 08:46:29 +02:00
Vojtech Bubnik
e824733b8d Implemented "Details" section enclosing OpenGL extensions when copying
sysinfo to clipboard for inserting into github issue.
Fix of [Feature Request] Help => System Info => Copy to Clipboard: wrap list of extensions with <details> tag #6830
2021-10-23 20:13:25 +02:00
David Kocik
f0d09461c1 Preferences Highlighter 2021-10-14 14:29:53 +02:00
YuSanka
45406faf1c Added SVG-file for G-CodeViewer logo 2021-10-07 11:53:19 +02:00
YuSanka
5d90ce3f37 ConfigWizard: Suppress to select SLA printer if a multi-parts object is on a Plater 2021-10-04 11:35:41 +02:00
Oleksandra Yushchenko
4e17e61be4 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
d6640faed0 Add dedicated subclass NotificationProgressIndicator
to replace ProgressStatusBar and revert changes from b9dab754, keep UI jobs untouched
2021-09-21 12:34:40 +02:00
Li Jiang
fdcf96c0b1 fix file import/open bug 2021-09-14 22:12:35 +02:00
David Kocik
817c151550 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
YuSanka
58fbc55708 Check unsaved changes before opening of the ConfigWizard 2021-09-01 13:48:40 +02:00
David Kocik
6c048a4b7f Notice dialog when opening any link outside PrusaSlicer 2021-08-25 15:07:38 +02:00
YuSanka
049b1e5d4c Add "Revert" buttons for text colors Settings 2021-08-18 15:03:06 +02:00
bubnikv
43ba62b481 Workaround for OSX file picker. Saving SL1S files did not work, the file
picker replaced the SL1S extension with SL1.
2021-08-13 13:48:55 +02:00
YuSanka
5563f84960 If configuration update is available, show Dialog with information about it before ConfigWizard is opened 2021-08-13 13:36:08 +02:00
YuSanka
02beb8d574 Shapes Gallery :
- Suppress to create a PNG-files for system shapes
 - Allow to load the OBJ files
2021-08-02 15:00:41 +02:00
enricoturri1966
09cf0ffaba ENABLE_PROJECT_DIRTY_STATE set as default 2021-07-30 09:33:51 +02:00
David Kocik
bc8ecff631 Hint notification
Reads data from hints.ini. Has hyperlinks to highlight settings, toolbars and gizmos.
2021-07-29 13:20:50 +02:00
YuSanka
b83e109222 Fixed Windows DarkMode for some dialogues.
+ ProjectDropDialog: wxRadiloBox was changes to the wxStaticBox with wxRadioButtons because of dark mode colors update
+ Preferences: Fixed update of the text colors
2021-07-13 18:27:30 +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
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
YuSanka
313742997c 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
ffd33d6494 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
eb7ce6429b 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
cfa72734b3 Fixed conflicts after merge with master 2021-05-07 13:14:11 +02:00
David Kocik
b0d3415fb7 desktop integration functions and dialog 2021-05-07 09:01:57 +02:00
enricoturri1966
a23cfac53f Project dirty state manager -> presets dirty state 2021-04-06 16:29:05 +02:00
David Kocik
5f4b67463f Printhost upload progress bar notification 2021-03-12 10:32:26 +01:00
enricoturri1966
c2866d435b Tech ENABLE_CUSTOMIZABLE_FILES_ASSOCIATION_ON_WIN set as default 2021-02-26 10:18:16 +01:00
YuSanka
c2abfcf1fe Move text color selection from ButtonsDescription to Preferences dialog (related to #5489) 2020-12-30 12:04:59 +01:00
Lukáš Hejl
17e310c09e Fix of #5537 - GUI_App::post_init could be in some cases called before GUI_App::init_openg when GCode viewer is used.
The solution adds a status flag to GUI_App::init_openg and ensures that GUI_App::post_init isn't called before initialization in GUI_App::init_openg is done.
2020-12-22 12:28:00 +01:00
David Kocik
e6c600c46f Ongoing uploads while exiting dialog
Ongoing uploads while exiting dialog

Ongoing uploads while exiting dialog
2020-12-10 11:02:46 +01:00
YuSanka
fbb11ef1cc Suppressed a check of printer_presets for the containing information about "Print Host upload", when presets ate exported from the amf/3mf 2020-12-03 13:25:23 +01:00
enricoturri1966
2a84f5efdd Customizable association of .3mf, .stl and .gcode files on Windows 2020-11-26 10:09:34 +01:00
enricoturri1966
a72d8f7aef ENABLE_GCODE_VIEWER set as default in:
3DScene hpp/cpp

AboutDialog.cpp

BackgroundSlicingProcess hpp/cpp

BitmapCache.cpp

ConfigWizard_private.hpp

GUI_App hpp/cpp

GUI_Init.cpp
2020-11-18 10:44:03 +01:00
Vojtech Bubnik
b0f276fd3c GUI initialization extracted from PrusaSlicer.cpp to GUI_Init.cpp/hpp.
Implemented try/catch blocks for Slic3r exceptions and std::exceptions
with GUI error reporting. This is extremely important to report
corruption of PrusaSlicer.ini.
2020-10-22 16:28:55 +02:00
enricoturri1966
125b9dfdb0 #4888 - Fixed jerky movements in Preview when using 3D mouse 2020-10-19 12:34:33 +02:00
Vojtech Bubnik
1fb9e1f70c wxEVT_CREATE and wxEVT_ACTIVATE is not being called on the main frame
on application start-up, at least not on Windows.
wxEVT_CREATE was called for some control deep in the Plater, however
the event was delivered to the main frame and only for slicer, not
for G-code viewer. Thus the callbacks for 3D Mouse were not registered
for and the 3D mouse did not work on Windows.

Fixed by calling the callback registration from the first execution
of the Idle function.
2020-10-14 12:55:07 +02:00
enricoturri1966
9c48a5de5d Tech ENABLE_GCODE_APP_CONFIG as default 2020-10-12 12:38:34 +02:00
enricoturri1966
8c3403ddc6 Fixed build when tech ENABLE_GCODE_VIEWER is disabled 2020-10-12 11:47:11 +02:00
enricoturri1966
dbd2a61b73 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer 2020-10-12 08:39:51 +02:00
enricoturri1966
69be5bfb7a Added menu command Configuration/Language to standalone gcode viewer 2020-10-12 08:39:40 +02:00
lukasmatena
c12f0db22c Merge pull request #4747 from wavexx/monospaced_gcode
Use monospaced fonts in gcode sections
2020-10-10 14:01:48 +02:00
enricoturri1966
72de654b80 On Windows associate .gcode files to gcode viewer application 2020-10-08 08:32:51 +02:00
Vojtech Bubnik
57ae13b5e7 OSX: Clean-up of opening as G-codeviewer on startup. 2020-10-06 15:43:21 +02:00