mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-03 14:40:39 +08:00
WIP: Fix for filaments selection from Connect
This commit is contained in:
parent
13a5404c3a
commit
ae81e7de0e
@ -3715,14 +3715,13 @@ bool GUI_App::select_filament_preset(const Preset* preset, size_t extruder_index
|
|||||||
assert(preset && preset->is_compatible);
|
assert(preset && preset->is_compatible);
|
||||||
|
|
||||||
if (!preset->is_visible) {
|
if (!preset->is_visible) {
|
||||||
//size_t preset_id = preset_bundle->filaments.get_preset_idx_by_name(preset->name);
|
// To correct update of presets visibility call select_preset for preset_bundle->filaments()
|
||||||
//assert(preset_id != size_t(-1));
|
size_t preset_id = preset_bundle->filaments.get_preset_idx_by_name(preset->name);
|
||||||
//preset_bundle->filaments.select_preset(preset_id);
|
assert(preset_id != size_t(-1));
|
||||||
bool r = preset_bundle->extruders_filaments[extruder_index].select_filament(preset->name);
|
preset_bundle->filaments.select_preset(preset_id);
|
||||||
assert(r);
|
|
||||||
}
|
}
|
||||||
|
assert(preset->is_visible);
|
||||||
return get_tab(Preset::Type::TYPE_FILAMENT)->select_preset(preset->name);
|
return preset_bundle->extruders_filaments[extruder_index].select_filament(preset->name);
|
||||||
}
|
}
|
||||||
void GUI_App::search_and_select_filaments(const std::string& material, size_t extruder_index, std::string& out_message)
|
void GUI_App::search_and_select_filaments(const std::string& material, size_t extruder_index, std::string& out_message)
|
||||||
{
|
{
|
||||||
@ -3757,7 +3756,7 @@ void GUI_App::search_and_select_filaments(const std::string& material, size_t ex
|
|||||||
&& filament.preset->config.has("filament_type")
|
&& filament.preset->config.has("filament_type")
|
||||||
&& filament.preset->config.option("filament_type")->serialize() == material
|
&& filament.preset->config.option("filament_type")->serialize() == material
|
||||||
&& filament.preset->name.compare(0, 9, "Prusament") == 0
|
&& filament.preset->name.compare(0, 9, "Prusament") == 0
|
||||||
&& select_filament_preset(filament.preset, 0))
|
&& select_filament_preset(filament.preset, extruder_index))
|
||||||
{
|
{
|
||||||
out_message += GUI::format(_L("Extruder %1%: Selected and Installed Filament %2%\n"), extruder_index + 1, filament.preset->name);
|
out_message += GUI::format(_L("Extruder %1%: Selected and Installed Filament %2%\n"), extruder_index + 1, filament.preset->name);
|
||||||
return;
|
return;
|
||||||
@ -3785,6 +3784,14 @@ void GUI_App::select_filament_from_connect(const std::string& msg)
|
|||||||
for (size_t i = 0; i < extruder_count; i++) {
|
for (size_t i = 0; i < extruder_count; i++) {
|
||||||
search_and_select_filaments(materials[i], i, notification_text);
|
search_and_select_filaments(materials[i], i, notification_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When all filaments are selected/intalled,
|
||||||
|
// then update preset comboboxes on sidebar
|
||||||
|
sidebar().update_presets(Preset::TYPE_FILAMENT);
|
||||||
|
// and filaments tab
|
||||||
|
TabFilament* tab = dynamic_cast<TabFilament*>(get_tab(Preset::TYPE_FILAMENT));
|
||||||
|
tab->select_preset(preset_bundle->extruders_filaments[tab->get_active_extruder()].get_selected_preset_name());
|
||||||
|
|
||||||
plater()->get_notification_manager()->close_notification_of_type(NotificationType::SelectFilamentFromConnect);
|
plater()->get_notification_manager()->close_notification_of_type(NotificationType::SelectFilamentFromConnect);
|
||||||
plater()->get_notification_manager()->push_notification(NotificationType::SelectFilamentFromConnect, NotificationManager::NotificationLevel::ImportantNotificationLevel, notification_text);
|
plater()->get_notification_manager()->push_notification(NotificationType::SelectFilamentFromConnect, NotificationManager::NotificationLevel::ImportantNotificationLevel, notification_text);
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user