75 Commits

Author SHA1 Message Date
YuSanka
17f628fe52 Fixed a crash on loading of configuration with selected SLA printer.
Note: In this case PresetBundle::extruder_filaments wasn't initialized.

Related to SPE-2136
2024-03-22 15:22:40 +01:00
Lukas Matena
c0aba8e2ca Add the default/custom switch into project settings 2024-03-20 14:41:26 +01:00
Lukas Matena
e1b2bd4155 WipeTowerDialog now uses filament_purging_multiplier 2024-03-20 14:41:26 +01:00
Lukas Matena
0988bf2998 Removed some of the new parameters 2024-03-20 14:41:26 +01:00
Lukas Matena
8345a82b1c Remove wiping_volumes_extruders 2024-03-20 14:41:26 +01:00
tamasmeszaros
d51eab637f Prevent crash when importing config bundle 2024-02-05 16:59:09 +01:00
YuSanka
ef3493d7ea WIP: SLA material overrides (UI part) 2024-02-05 16:59:08 +01:00
YuSanka
0a1e4758a1 Fix for #11727 : 2.7.0-rc2 Import ConfigBundle not pulling in all physical printers 2023-11-23 15:48:04 +01:00
YuSanka
0e1a0e856f Fix for SPE-2020 : Notification about temporary installed preset doesn't appear anymore
Description of bug:
During fixing of SPE-1845 there was made changes with 7280b2a0 commit.
But those changes destroyed a initial behavior. All presets are selected correctly now,
but user doesn't receive a notification about temporary installed presets, if any was.
2023-11-16 15:11:41 +01:00
tamasmeszaros
ce98eede5e Follow up fixes to build 2023-10-26 12:53:29 +02:00
YuSanka
3bb4aaec5a PresetBundle: Added update of aliases maps after configuration loading,
and not only after loading system presets.

Note: Misses update was related to SPE-1947 : Crash when change Print settings_IS XL config bundle
2023-10-09 11:10:52 +02:00
YuSanka
a451f441b8 Fix for #11390 - PrusaSlicer crashes when loading Formfutura EasyFil PLA filament via Configuration Wizard 2023-10-02 16:52:05 +02:00
enricoturri1966
53adc68717 Tech ENABLE_BINARIZED_GCODE set as default 2023-09-05 12:17:47 +02:00
Vojtech Bubnik
8dad25efc4 Merge branch 'master' into master_262 2023-09-04 14:44:32 +02:00
ps_copyright
f32859c302 final copyright headers 2023-09-01 14:49:07 +02:00
Vojtech Bubnik
c01c863d8b Merge branch 'master' into master_262 2023-08-31 17:16:20 +02:00
YuSanka
7280b2a0fb Fix for SPE-1845 Incorrectly imported filament profiles from 3MF or configuration ini.
+ Fix for SPE-1848 Crash on switch from MM printer to SM, when non-first filament is modified
2023-08-31 14:30:14 +02:00
enricoturri1966
d9d771c268 Merge branch 'master' of https://github.com/Prusa-Development/PrusaSlicerPrivate into et_spe1784_binary_gcode 2023-08-14 09:55:45 +02:00
enricoturri1966
8e391d00da Changes required by update of libbgcode library interface 2023-08-14 09:38:22 +02:00
enricoturri1966
eb8d01888d Added import of config from binary gcode files 2023-08-04 12:35:40 +02:00
YuSanka
bd43118148 Fix of Asserts and incompatible filament selection, when hide/show template filaments (SPE-1786) 2023-07-31 13:28:26 +02:00
Oleksandra Yushchenko
9e4859ebbf
Modification of extruders filaments for support XL multitool (#36)
* Fix for SPE-1659 : Wrong filaments update, when templates are allowed/suppressed

* Per Extruder Filaments (related to SPE 1599)

* Implemented compatibility for each extruder separately
* Update of the filaments compatibility is extracted to separate function update_filaments_compatible()
* Fixed synchronization of config.ini with the current selections, when preset is changed from sidebar.

* Filament Settings Tab improvements:
* Added extruder combobox to select active extruder
* PresetCombobox is updated in respect to compatibility for active extruder
* For MM printer: Cog icon near the filament will switch to Filament Settings for selected filament

* Bug fixing for https://dev.prusa3d.com/browse/SPE-1599

* Next round of bugfixing for https://dev.prusa3d.com/browse/SPE-1599

* Fixed crashes from https://dev.prusa3d.com/browse/SPE-1599
+ code refactoring for Tab:save_preset()
2023-05-11 12:17:59 +02:00
David Kocik
dae9538eaf followup of af0e312542dd7ef98ea7957611f7fe9abe1a1fb4 - reverted wrong exception catching. 2023-01-20 09:51:40 +01:00
David Kocik
af0e312542 Profile updates and installation:
- Refactoring and functionality change of PresetUpdater::sync_config. Zip archive now contains only index files. From index file it is decided wheter .ini file should be downloaded and where (cache for update of installed, cache/vendor for unistalled). New vendors are downloaded from set address. Fron .ini file it is decided wheter thumbnail should be downloaded. All resources for already installed vendors are checked and downloaded.  
- TemplateFilaments renamed to Templates (Warning: This might create duplicities if both files are present!).
- Various checks added to prevent crashes when dealing with broken presets, wrong files etc.
- Delayed error message when loading present finds duplicities - wait with dialog until Splash screen is gone.
- Minor changes in Config wizard when searching & loading printer thumbnails.
2023-01-18 11:10:24 +01:00
David Kocik
a15ad698d7 download profile bundles in zip archive 2023-01-18 11:10:24 +01:00
David Kocik
72540232c8 Template filaments bundle with filament profiles available for all printers
Profiles are ment to be adjusted and saved as user profile.
Selectable in wizard under (Templates).
Installed automatically even when profile with same alias is selected.
Special category in combo boxes.
no_templates option for disabling this.
2023-01-18 11:10:24 +01:00
YuSanka
84f651f85d DiffDialog: Save preset
* Fixed a crash after save the preset with existing name
* Added update of the PresetComboBoxes on SettingsTabs and Sidebar
* Some code refactoring
2022-09-16 17:25:00 +02:00
YuSanka
30831af8a5 DiffDialog: Implemented a transfer of the selected options from left preset to the right and save them to the new preset
* Related to #6130 - Feature Request: Profile settings, Save AND Transfer
+ SavePresetDialog: Refactoring
2022-09-15 16:48:14 +02:00
enricoturri1966
0063734e78 Tech ENABLE_COPY_CUSTOM_BED_MODEL_AND_TEXTURE set as default 2022-07-28 08:33:46 +02:00
enricoturri1966
e8753ee8cd Tech ENABLE_COPY_CUSTOM_BED_MODEL_AND_TEXTURE - 1st installment - Copies custom bed texture and model files to 'data_dir()\printer' folder, if needed, and updates the printer config accordingly
Fixed conflicts after rebase with master
2022-05-30 11:28:54 +02:00
Lukas Matena
96a6c8538f Some refactoring and fixes based on static source code analysis 2022-03-31 16:33:52 +02:00
Vojtech Bubnik
93c4b941b5 Importing newer configuration data: Fixed compiler warning,
improved error reporting when deleting old cache and vendors directory.
2021-12-16 17:51:40 +01:00
Vojtech Bubnik
2dc461719f Importing newer config when starting the application:
Cache directory is newly deleted before it is imported from the newer
config location.

Linux specific: When asking for certificate directory, perform import
of configs first.
2021-12-15 16:09:22 +01:00
Vojtech Bubnik
56d50d7707 Delete existing vendors before importing newer vendors, as the existing
vendors may not be referenced by newer PrusaSlicer.ini imported.
2021-12-15 13:43:37 +01:00
David Kocik
a771519b9f Fix of #7169 Check if material or filament profile is_compatible before selecting it when it should be selected as first selected profile in wizard. 2021-11-03 11:37:06 +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
Vojtech Bubnik
66d4462724 Fixed spelling error preffered / preferred 2021-09-30 14:44:11 +02:00
David Kocik
5045e07f78 Find name of preset from alias before selecting preferred preset. 2021-09-30 14:42:30 +02:00
Vojtech Bubnik
6158347379 Follow-up to #6817
1) Activate installed filament or SLA material profile after update_compatible(),
so that the compatiblity and visibility flags of presets are updated.
2) Only activate the first newly installed filament / SLA material profile
if the active printer did not change. This also means that if no filament
profile was active before Wizard was open or it became incompatible with
the newly installed Printer profile, the default filament profile assigned
to the activated Printer is activated preferably, which may or may not
be one of the newly installed filament profiles.
2021-09-01 14:37:20 +02:00
YuSanka
20453f412b Check unsaved changes before opening of the ConfigWizard 2021-09-01 13:48:40 +02:00
Merill
64fc2eb425
error when loading configbundle (#6822)
a little typo
2021-08-23 08:09:25 +02:00
Oleksandra Yushchenko
caf8ef4aab
Auto selection of presets (#6817)
PresetComboBoxes: Auto selection of printer/material preset from the new added presets in ConfigWizard
+ Check unsaved changes if ConfigWizard is running from the PesetComboBoxes
2021-08-18 16:10:35 +02:00
Vojtech Bubnik
965c2f2c55 Improved error reporting when importing various configuration files:
1) Slic3r::RuntimeError was replaced with ConfigurationError,
   all exceptions thrown by the configuration layer are derived
   from ConfigurationError.
2) When parsing configuration files, ConfigurationError is catched and
   rethrown extended with the file name being parsed.
2021-08-13 13:37:24 +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
Vojtech Bubnik
e947a29fc8 Follow-up to 7c01ddf996f4b8ca6d7e71c001e7650b3bf14609
1) Starting with this commit, configuration block exported into G-code
   is delimited by "; prusaslicer_config = begin" and "; prusaslicer_config = end".
   These delimiters look like any other key / value configuration pairs
   on purpose to be compatible with older PrusaSlicer config parsing from G-code.
2) Config parser from G-code newly searches for "; generated by ..."
   comment over the complete G-code, thus it is compatible with various
   post processing scripts extending the G-code at the start.
3) Config parser from G-code parses PrusaSlicer version from
   the "; generated by PrusaSlicer ...." header and if the G-code was
   generated by PrusaSlicer 2.4.0-alpha0 and newer, it expects that
   the G-code already contains the "; prusaslicer_config = begin / end"
   tags and it relies on these tags to extract configuration.
4) A new simple and robust parser was written for reading project configuration
   from 3MF / AMF, while a heuristic parser to read config from G-code located
   at the end of the G-code file was used before.
2021-08-12 15:27:46 +02:00
YuSanka
4257ffddde GalleryDialog: Changes the paths to the system and custom galleries 2021-07-14 17:41:37 +02:00
Vojtech Bubnik
211110ce53 Fixing some compiler warnings. 2021-06-27 17:45:41 +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
28b92215c3 Follow-up 409849d238:
Added check for visibility for all loaded presets.
Added notification about this action.
 + PresetComboBox: Fixed update() function for physical printers, when some of related presets are invisible.
2021-03-02 12:19:49 +01:00
YuSanka
409849d238 Fixed loading of the project file with filament which is not installed for the selected printers
If loaded filaments are invisible/non-instaled, set them as visible
2021-03-01 16:36:05 +01:00