191 Commits

Author SHA1 Message Date
YuSanka
ced6d26917 Merge remote-tracking branch 'origin/master' into dev 2022-01-12 15:05:31 +01:00
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
f2aeca3a71 Options from the "Preferences" dialog added to the Search
Some code refactoring:
* use GUI_App::open_preferences() on all places where it's needed
* Preferences Dialog is an attribute of a ManeFrame class and created just ones during the MainFrame creation now.
* Created class Highlighter. Use it in Preferences and Tab
2021-12-22 14:38:23 +01:00
Vojtech Bubnik
87880022fc Some improvements to copying of newer configuration to current folder:
1) Less context is kept in GUI_App.
2) Copying is not being done if loading current PrusaSlicer.ini fails
3) AppConfig (PrusaSlicer.ini) is saved first after the newer configuration is installed.
2021-12-15 11:09:34 +01:00
David Kocik
091585076c Followup on 6490456ec401f05036289897f14dc82e27714ceb
Rename variable
2021-12-06 17:24:54 +01:00
David Kocik
6490456ec4 Do not perform config check if conf folder is redefined 2021-12-06 17:15:22 +01:00
YuSanka
efbf64fdea Added description line for the "Post-processing scripts".
ogStaticText id extended for SetPathEnd() function. It allows to use description line like a hyperlink
2021-12-02 15:18:05 +01:00
Vojtech Bubnik
e7cc12b2c9 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
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
Vojtech Bubnik
3a93277531 Revert "medical"
This reverts commit 117302ba22aa540cc020e1e5eb77422801627c29.
2021-11-11 11:22:57 +01:00
Vojtech Bubnik
117302ba22 medical 2021-11-11 10:11:13 +01:00
YuSanka
aff9e1f7ea 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
ca8f7fbf80 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
23ab9fb181 MSW DarkMode: Set mode colors for "Change volume type" dialog. 2021-10-29 08:46:29 +02:00
Vojtech Bubnik
ae62801250 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
ffc29a2536 Preferences Highlighter 2021-10-14 14:29:53 +02:00
YuSanka
68fd37b300 Added SVG-file for G-CodeViewer logo 2021-10-07 11:53:19 +02:00
YuSanka
580f157d28 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
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
Li Jiang
50b7a1df9f fix file import/open bug 2021-09-14 22:12:35 +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
YuSanka
20453f412b Check unsaved changes before opening of the ConfigWizard 2021-09-01 13:48:40 +02:00
David Kocik
e6bae06557 Notice dialog when opening any link outside PrusaSlicer 2021-08-25 15:07:38 +02:00
YuSanka
a3f995ac45 Add "Revert" buttons for text colors Settings 2021-08-18 15:03:06 +02:00
bubnikv
14330b02b3 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
4cbe7a9545 If configuration update is available, show Dialog with information about it before ConfigWizard is opened 2021-08-13 13:36:08 +02:00
YuSanka
e8e3279511 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
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
YuSanka
428362ec53 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
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
YuSanka
5434a8980f 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
fd071421cb
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
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
ec9c3891cf Fixed conflicts after merge with master 2021-05-07 13:14:11 +02:00
David Kocik
963849e18b desktop integration functions and dialog 2021-05-07 09:01:57 +02:00
enricoturri1966
edbb1d0f69 Project dirty state manager -> presets dirty state 2021-04-06 16:29:05 +02:00
David Kocik
6716492efa Printhost upload progress bar notification 2021-03-12 10:32:26 +01:00
enricoturri1966
8cb8a24ded Tech ENABLE_CUSTOMIZABLE_FILES_ASSOCIATION_ON_WIN set as default 2021-02-26 10:18:16 +01:00
YuSanka
6effa30322 Move text color selection from ButtonsDescription to Preferences dialog (related to #5489) 2020-12-30 12:04:59 +01:00
Lukáš Hejl
81878a6f79 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
3523bb421f Ongoing uploads while exiting dialog
Ongoing uploads while exiting dialog

Ongoing uploads while exiting dialog
2020-12-10 11:02:46 +01:00
YuSanka
6124f677ae 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
e2b4de455b Customizable association of .3mf, .stl and .gcode files on Windows 2020-11-26 10:09:34 +01:00
enricoturri1966
faff112ea8 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
027ab4fb02 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
5d3d9d9b92 #4888 - Fixed jerky movements in Preview when using 3D mouse 2020-10-19 12:34:33 +02:00
Vojtech Bubnik
e0c5309bc3 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