Commit Graph

124 Commits

Author SHA1 Message Date
Vojtech Bubnik
3b2a7d1b05 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
20084c23bf ConfigWizard: Draw logo inside OnPaint instead of use of wxStaticBitmap 2021-07-23 16:03:17 +02:00
Lukáš Hejl
0ce485ecb0 Fixed some compiler warnings. 2021-07-21 12:54:28 +02:00
YuSanka
c8e59bd015 ConfigWizard: Fixed a bug in update of the selected presets
(probably related to #6436 - Cannot add SLA materials)
2021-07-15 14:54:22 +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
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
Lukas Matena
d4ca1d4297 Fixed incorrect locales handling in the UI (Field, ObjectManipulation, etc) 2021-05-24 12:23:39 +02:00
Lukas Matena
1cb432a4ae Fixed first batch of locale-dependent calls 2021-05-24 12:20:29 +02:00
YuSanka
46bb494ec1 ConfigWizard:: Use wxTextCtrl instead of wxDoubleSpinCtrl for nozzle and filament diameters 2021-05-07 12:22:54 +02:00
David Kocik
2b67bc32b7 text fix 2021-05-07 09:01:57 +02:00
David Kocik
b0d3415fb7 desktop integration functions and dialog 2021-05-07 09:01:57 +02:00
Lukas Matena
4e0eb9210b Fix build against wxWidgets older than 3.1.1 2021-03-01 10:03:49 +01:00
enricoturri1966
c2866d435b Tech ENABLE_CUSTOMIZABLE_FILES_ASSOCIATION_ON_WIN set as default 2021-02-26 10:18:16 +01:00
YuSanka
de2da15e4b Fix of #5152 assert ""HasFlag(0x0020)"" failed in GetSelection(): must be single selection listbox
This assert was invoked by list_printer->GetSelection() because of list_printer was created with wxLB_MULTIPLE flag.
2021-02-25 04:03:26 -08:00
David Kocik
15fb39948d config wizard - hide logo if small height 2021-02-24 09:21:40 +01:00
David Kocik
852cb71816 Wizard: buttons for printer selection 2021-02-10 17:00:41 +01:00
Lukas Matena
22ef17af54 Fixing Clang warnings 1 2021-02-08 17:52:29 +01:00
Lukas Matena
f7e26b5655 Fixing GCC warnings 2 2021-01-29 10:46:52 +01:00
Lukas Matena
059f22cc7b Fixed encoding issue in ConfigWizard on Windows (#5422) 2020-12-18 15:35:30 +01:00
YuSanka
a59f3eb80f Fix of #5103 and #4861 - ConfigWizard layout issues 2020-12-16 23:44:40 -08:00
Vojtech Bubnik
7f016653bb Reverted escaping of ampersand where the escaping was not needed
/ lead to errors.
2020-12-16 11:46:27 +01:00
Vojtech Bubnik
bf9b1d309c Fix of install wizard: Escape ampersands in printer models. 2020-12-05 09:55:09 +01:00
Vojtech Bubnik
8c6fff1e19 1) Storing the physical_printer_settings_id into the 3MF, AMF, GCode.
2) Activating the physical_printer_settings_id when loading from 3MF, AMF, GCode.
   The physical printer is only activated if it references the printer_settings_id
   loaded from the same file.
3) When loading the presets from 3MF, AMF, GCode, the "external" profiles
   are no more created for profiles which differ from the local profiles
   the loaded profiles reference. Instead, the referenced profile is activated
   and modified with the loaded preset. If the referenced profile does not
   exist, but the profile refers to a system profile with the "inherits"
   fileds, the system profile is loaded and modified instead.
   This works for all profiles with the exception of multi-extruder
   printer with multiple filament profiles modified. In that case
   the first modified filament profile will be loaded as modified,
   while the other modified profiles will be loaded as "external".

This should fix
Physical printer + 3mf file, wrong preset used to generate gcode #5178
and possibly
https://github.com/prusa3d/PrusaSlicer/issues/5272
2020-12-04 10:48:51 +01:00
enricoturri1966
2a84f5efdd Customizable association of .3mf, .stl and .gcode files on Windows 2020-11-26 10:09:34 +01:00
David Kocik
cfe37c6082 Merge remote-tracking branch 'aegean-odyssey/ao_profile_resources_patch' into master 2020-11-19 19:02:32 +01:00
David Kocik
654bc266fc escape_ampersand function and changed order of printer names and pictures in config wizard 2020-11-11 16:08:27 +01:00
YuSanka
c204e90ecc Localization:
Some phrases are corrected in the code
The POT-file is updated
2020-11-05 22:17:49 +01:00
David Kocik
0c78487c55 config wizard printer selection - changed vertical spacing 2020-11-05 17:43:40 +01:00
David Kocik
4425e24b2e configuration wizard: added Checked information to sorting algortihm on filaments page. Fix of #4922 2020-10-20 10:35:48 +02:00
Vojtech Bubnik
cd2b7afc65 Updated textation of the Filament selection config wizard page. 2020-10-15 14:16:53 +02:00
David Kocik
85f342f94e filament selection: bug fix - * sign is again visible at profiles 2020-10-05 09:48:55 +02:00
David Kocik
02eb5ca97d Correct strings in configWizard 2020-10-04 21:11:56 +02:00
David Kocik
8346bd3679 fix in ConfigWizard.cpp 2020-10-01 09:46:00 +02:00
David Kocik
39d44ecc6c Filament selection in configuration wizard:
compatible printers in html window, bug fixes.
2020-10-01 09:28:17 +02:00
Vojtech Bubnik
f58ee46687 WIP Refactoring of exceptions:
1) All slicer's exceptions are now derived from Slic3r::Exception.
2) New exceptions are defined for slicing errors.
3) Exceptions are propagated to the Plater to show.
It remains to modify the slicing back-end to throw the new SlicingError
exceptions instead of std::runtime_error and to show the other exceptions
by a message dialog instead of a notification.
2020-09-14 18:03:22 +02:00
Lukas Matena
e3165eadc0 Added two missing icons to fix build on Linux 2020-09-01 23:26:08 +02:00
David Kocik
c2f8fc6c7d filaments selecting: sorting via printer, showing printers for filament 2020-09-01 18:00:12 +02:00
YuSanka
e5fc1f8648 Imperial units selection is added to the ConfigWizard 2020-06-10 11:18:11 +02:00
Lukas Matena
edcaab8b0a Includes cleanup:
GUI_App.hpp      (should not include) MainFrame.hpp
MainFrame.hpp    Plater.hpp
ModelArrange.hpp Model.hpp
Slicing.hpp      PrintConfig.hpp
FillBase.hpp     PrintConfig.hpp
GUI_App.hpp      PrintConfig.hpp
OptionsGroup.hpp GUI_App.hpp
2020-05-27 14:01:47 +02:00
Aegean Odyssey
1d39db3c6c Also search vendor directory for printer profile resources.
Search the vendor directory using the same conventions used to search
the profiles directory when looking for thumbnails, bed_models, and
bed_textures. Allows a complete, "Config Wizard"-friendly custom vendor
profile to be placed in the (user's configuration) vendor directory.
2020-04-25 02:51:02 +00:00
YuSanka
5016907bc0 ConfigWizard: fixed first column name on SLA Material page 2020-04-20 08:09:19 +02:00
Lukas Matena
ac501bdf8b Merge branch 'master' into dev 2020-03-24 21:51:05 +01:00
bubnikv
763f8e3fd6 Updated the "Remove user profiles" message at the install wizard to
indicate that it does nothing to user profiles.
2020-03-15 12:19:56 +01:00
bubnikv
5137b169a2 Fixed conversion of installed presets from PrusaSlicer 2.1.1 to 2.2.0 2020-03-14 20:18:31 +01:00
bubnikv
9494d82d88 Reworked filaments / SLA materials in installation wizard:
1) When the wizard is initialized, filament and SLA profile names
   are verified and current names of renamed profiles are resolved.
   Fixes "Add/Remove Filaments is not hiding all of the un-checked filaments #3835"
2) When adding a printer model, default materials are installed in case
   the printer model has no default material installed.
3) When leaving the Filaments or SLA materials page, and some printer models
   have no material installed, those Printer Models are listed
   in a message box and only for those printer models the default
   materials are installed.
2020-03-14 18:35:42 +01:00
bubnikv
8fa4f7ec81 Changed location of vendor specific thumbnail images of printers:
These images are newly stored inside the resources/profiles/VENDOR_NAME/,
they should be named by the printer_model identifier suffixed with
"_thumbnail.png"

All the existing printer thumbnails were moved and renamed,
thumbnails for the 3rd party printers were added, marked as Beta.
2020-03-12 14:13:08 +01:00
bubnikv
24e45a1398 More robust vendor profile parsing. 2020-03-11 18:12:16 +01:00
bubnikv
72006a01d8 Improved error reporting and error handling when loading
vendor config bundles into installation wizard.
2020-03-07 16:31:14 +01:00
Lukas Matena
18fd7fa45f Fixing build against wxWidgets 3.0
The wxString saga continues. wxWidgets 3.0 don't have the wxString::FromUTF8(const std::string&) overload, we must use the GUI::from_u8 helper
Also wxWidgets 3.0 don't allow to disable wxString->const char* conversion, so calling show_info(wxWindow*, wxString, const char*) was ambiguous
Several includes moved around
2020-03-04 10:34:59 +01:00
Lukas Matena
bffd07baa6 Fixed some more warnings 2020-03-03 15:53:26 +01:00