mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-30 20:21:12 -06:00 
			
		
		
		
	Merge branch 'master' of https://github.com/prusa3d/Slic3r into scene_manipulators
This commit is contained in:
		
						commit
						e8ab724382
					
				
					 7 changed files with 47 additions and 19 deletions
				
			
		|  | @ -567,7 +567,8 @@ sub _on_select_preset { | ||||||
|         wxTheApp->{preset_bundle}->update_platter_filament_ui($idx, $choice); |         wxTheApp->{preset_bundle}->update_platter_filament_ui($idx, $choice); | ||||||
| 	} else { | 	} else { | ||||||
|         my $selected_item = $choice->GetSelection(); |         my $selected_item = $choice->GetSelection(); | ||||||
|         return if ($selected_item == $self->{"selected_item_$group"}); |         return if ($selected_item == $self->{"selected_item_$group"} &&  | ||||||
|  |                     !Slic3r::GUI::get_preset_tab($group)->current_preset_is_dirty); | ||||||
| 
 | 
 | ||||||
|         my $selected_string = $choice->GetString($selected_item); |         my $selected_string = $choice->GetString($selected_item); | ||||||
|         if ($selected_string eq ("------- ".L("System presets")." -------") || |         if ($selected_string eq ("------- ".L("System presets")." -------") || | ||||||
|  |  | ||||||
|  | @ -57,6 +57,9 @@ void AppConfig::set_defaults() | ||||||
|     // https://github.com/prusa3d/Slic3r/issues/233
 |     // https://github.com/prusa3d/Slic3r/issues/233
 | ||||||
|     if (get("use_legacy_opengl").empty()) |     if (get("use_legacy_opengl").empty()) | ||||||
|         set("use_legacy_opengl", "0"); |         set("use_legacy_opengl", "0"); | ||||||
|  | 
 | ||||||
|  |     if (get("remember_output_path").empty()) | ||||||
|  |         set("remember_output_path", "1"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void AppConfig::load() | void AppConfig::load() | ||||||
|  |  | ||||||
|  | @ -607,7 +607,7 @@ void show_error(wxWindow* parent, const wxString& message) { | ||||||
| 
 | 
 | ||||||
| void show_error_id(int id, const std::string& message) { | void show_error_id(int id, const std::string& message) { | ||||||
| 	auto *parent = id != 0 ? wxWindow::FindWindowById(id) : nullptr; | 	auto *parent = id != 0 ? wxWindow::FindWindowById(id) : nullptr; | ||||||
| 	show_error(parent, message); | 	show_error(parent, wxString::FromUTF8(message.data())); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void show_info(wxWindow* parent, const wxString& message, const wxString& title){ | void show_info(wxWindow* parent, const wxString& message, const wxString& title){ | ||||||
|  |  | ||||||
|  | @ -71,11 +71,12 @@ ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg) : | ||||||
| 	text->Wrap(CONTENT_WIDTH); | 	text->Wrap(CONTENT_WIDTH); | ||||||
| 	p_sizer->Add(text, 1, wxEXPAND); | 	p_sizer->Add(text, 1, wxEXPAND); | ||||||
| 
 | 
 | ||||||
| 	panel->SetMinSize(wxSize(CONTENT_WIDTH, CONTENT_HEIGHT)); | 	panel->SetMinSize(wxSize(CONTENT_WIDTH, 0)); | ||||||
| 	panel->SetScrollRate(0, 5); | 	panel->SetScrollRate(0, 5); | ||||||
| 
 | 
 | ||||||
| 	content_sizer->Add(panel, 1, wxEXPAND); | 	content_sizer->Add(panel, 1, wxEXPAND); | ||||||
| 
 | 
 | ||||||
|  | 	SetMaxSize(wxSize(-1, CONTENT_MAX_HEIGHT)); | ||||||
| 	Fit(); | 	Fit(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -31,7 +31,7 @@ struct MsgDialog : wxDialog | ||||||
| protected: | protected: | ||||||
| 	enum { | 	enum { | ||||||
| 		CONTENT_WIDTH = 500, | 		CONTENT_WIDTH = 500, | ||||||
| 		CONTENT_HEIGHT = 300, | 		CONTENT_MAX_HEIGHT = 600, | ||||||
| 		BORDER = 30, | 		BORDER = 30, | ||||||
| 		VERT_SPACING = 15, | 		VERT_SPACING = 15, | ||||||
| 		HORIZ_SPACING = 5, | 		HORIZ_SPACING = 5, | ||||||
|  |  | ||||||
|  | @ -244,6 +244,7 @@ public: | ||||||
| 	const std::string&		get_suffix_modified(); | 	const std::string&		get_suffix_modified(); | ||||||
| 
 | 
 | ||||||
|     // Return a preset possibly with modifications.
 |     // Return a preset possibly with modifications.
 | ||||||
|  | 	Preset&			default_preset()			{ return m_presets.front(); } | ||||||
|     const Preset&   default_preset() const      { return m_presets.front(); } |     const Preset&   default_preset() const      { return m_presets.front(); } | ||||||
|     // Return a preset by an index. If the preset is active, a temporary copy is returned.
 |     // Return a preset by an index. If the preset is active, a temporary copy is returned.
 | ||||||
|     Preset&         preset(size_t idx)          { return (int(idx) == m_idx_selected) ? m_edited_preset : m_presets[idx]; } |     Preset&         preset(size_t idx)          { return (int(idx) == m_idx_selected) ? m_edited_preset : m_presets[idx]; } | ||||||
|  |  | ||||||
|  | @ -53,27 +53,31 @@ PresetBundle::PresetBundle() : | ||||||
|         wxImage::AddHandler(new wxPNGHandler); |         wxImage::AddHandler(new wxPNGHandler); | ||||||
| 
 | 
 | ||||||
|     // Create the ID config keys, as they are not part of the Static print config classes.
 |     // Create the ID config keys, as they are not part of the Static print config classes.
 | ||||||
|     this->prints.preset(0).config.opt_string("print_settings_id", true); |     this->prints.default_preset().config.opt_string("print_settings_id", true); | ||||||
|     this->filaments.preset(0).config.opt_string("filament_settings_id", true); |     this->filaments.default_preset().config.opt_string("filament_settings_id", true); | ||||||
|     this->printers.preset(0).config.opt_string("print_settings_id", true); |     this->printers.default_preset().config.opt_string("printer_settings_id", true); | ||||||
|     // Create the "compatible printers" keys, as they are not part of the Static print config classes.
 |     // Create the "compatible printers" keys, as they are not part of the Static print config classes.
 | ||||||
|     this->filaments.preset(0).config.optptr("compatible_printers", true); |     this->filaments.default_preset().config.optptr("compatible_printers", true); | ||||||
|     this->filaments.preset(0).config.optptr("compatible_printers_condition", true); |     this->filaments.default_preset().config.optptr("compatible_printers_condition", true); | ||||||
|     this->prints.preset(0).config.optptr("compatible_printers", true); |     this->prints.default_preset().config.optptr("compatible_printers", true); | ||||||
|     this->prints.preset(0).config.optptr("compatible_printers_condition", true); |     this->prints.default_preset().config.optptr("compatible_printers_condition", true); | ||||||
|     // Create the "inherits" keys.
 |     // Create the "inherits" keys.
 | ||||||
|     this->prints.preset(0).config.optptr("inherits", true); |     this->prints.default_preset().config.optptr("inherits", true); | ||||||
|     this->filaments.preset(0).config.optptr("inherits", true); |     this->filaments.default_preset().config.optptr("inherits", true); | ||||||
|     this->printers.preset(0).config.optptr("inherits", true); |     this->printers.default_preset().config.optptr("inherits", true); | ||||||
|     // Create the "printer_vendor", "printer_model" and "printer_variant" keys.
 |     // Create the "printer_vendor", "printer_model" and "printer_variant" keys.
 | ||||||
|     this->printers.preset(0).config.optptr("printer_vendor", true); |     this->printers.default_preset().config.optptr("printer_vendor", true); | ||||||
|     this->printers.preset(0).config.optptr("printer_model", true); |     this->printers.default_preset().config.optptr("printer_model", true); | ||||||
|     this->printers.preset(0).config.optptr("printer_variant", true); |     this->printers.default_preset().config.optptr("printer_variant", true); | ||||||
| 
 |     // Load the default preset bitmaps.
 | ||||||
|     this->prints   .load_bitmap_default("cog.png"); |     this->prints   .load_bitmap_default("cog.png"); | ||||||
|     this->filaments.load_bitmap_default("spool.png"); |     this->filaments.load_bitmap_default("spool.png"); | ||||||
|     this->printers .load_bitmap_default("printer_empty.png"); |     this->printers .load_bitmap_default("printer_empty.png"); | ||||||
|     this->load_compatible_bitmaps(); |     this->load_compatible_bitmaps(); | ||||||
|  |     // Re-activate the default presets, so their "edited" preset copies will be updated with the additional configuration values above.
 | ||||||
|  |     this->prints   .select_preset(0); | ||||||
|  |     this->filaments.select_preset(0); | ||||||
|  |     this->printers .select_preset(0); | ||||||
| 
 | 
 | ||||||
|     this->project_config.apply_only(FullPrintConfig::defaults(), s_project_options); |     this->project_config.apply_only(FullPrintConfig::defaults(), s_project_options); | ||||||
| } | } | ||||||
|  | @ -832,10 +836,28 @@ size_t PresetBundle::load_configbundle(const std::string &path, unsigned int fla | ||||||
|             continue; |             continue; | ||||||
|         if (presets != nullptr) { |         if (presets != nullptr) { | ||||||
|             // Load the print, filament or printer preset.
 |             // Load the print, filament or printer preset.
 | ||||||
|             DynamicPrintConfig config(presets->default_preset().config); |             const DynamicPrintConfig &default_config = presets->default_preset().config; | ||||||
|  |             DynamicPrintConfig config(default_config); | ||||||
|             for (auto &kvp : section.second) |             for (auto &kvp : section.second) | ||||||
|                 config.set_deserialize(kvp.first, kvp.second.data()); |                 config.set_deserialize(kvp.first, kvp.second.data()); | ||||||
|             Preset::normalize(config); |             Preset::normalize(config); | ||||||
|  |             // Report configuration fields, which are misplaced into a wrong group.
 | ||||||
|  |             std::string incorrect_keys; | ||||||
|  |             size_t      n_incorrect_keys = 0; | ||||||
|  |             for (const std::string &key : config.keys()) | ||||||
|  |                 if (! default_config.has(key)) { | ||||||
|  |                     if (incorrect_keys.empty()) | ||||||
|  |                         incorrect_keys = key; | ||||||
|  |                     else { | ||||||
|  |                         incorrect_keys += ", "; | ||||||
|  |                         incorrect_keys += key; | ||||||
|  |                     } | ||||||
|  |                     config.erase(key); | ||||||
|  |                     ++ n_incorrect_keys; | ||||||
|  |                 } | ||||||
|  |             if (! incorrect_keys.empty()) | ||||||
|  |                 BOOST_LOG_TRIVIAL(error) << "Error in a Vendor Config Bundle \"" << path << "\": The printer preset \"" <<  | ||||||
|  |                     section.first << "\" contains the following incorrect keys: " << incorrect_keys << ", which were removed"; | ||||||
|             if ((flags & LOAD_CFGBNDLE_SYSTEM) && presets == &printers) { |             if ((flags & LOAD_CFGBNDLE_SYSTEM) && presets == &printers) { | ||||||
|                 // Filter out printer presets, which are not mentioned in the vendor profile.
 |                 // Filter out printer presets, which are not mentioned in the vendor profile.
 | ||||||
|                 // These presets are considered not installed.
 |                 // These presets are considered not installed.
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Enrico Turri
						Enrico Turri