FIX: show sync ams unknown details
Change-Id: I1febb10b73a87f98a477fea5fbe2583c752ab330 Jira: STUDIO-10969, STUDIO-10973, STUDIO-11011
This commit is contained in:
parent
2abed8cc59
commit
f1eb5e8292
|
@ -2690,7 +2690,7 @@ std::vector<std::string> PresetCollection::diameters_of_selected_printer()
|
|||
std::set<std::string> diameters;
|
||||
auto printer_model = m_edited_preset.config.opt_string("printer_model");
|
||||
for (auto &preset : m_presets) {
|
||||
if (preset.config.opt_string("printer_model") == printer_model)
|
||||
if (preset.is_system && preset.config.opt_string("printer_model") == printer_model)
|
||||
diameters.insert(preset.config.opt_string("printer_variant"));
|
||||
}
|
||||
return std::vector<std::string>{diameters.begin(), diameters.end()};
|
||||
|
|
|
@ -1899,7 +1899,7 @@ void PresetBundle::get_ams_cobox_infos(AMSComboInfo& combox_info)
|
|||
}
|
||||
}
|
||||
|
||||
unsigned int PresetBundle::sync_ams_list(unsigned int &unknowns, bool use_map, std::map<int, AMSMapInfo> &maps,bool enable_append, MergeFilamentInfo &merge_info)
|
||||
unsigned int PresetBundle::sync_ams_list(std::vector<std::pair<DynamicPrintConfig *,std::string>> &unknowns, bool use_map, std::map<int, AMSMapInfo> &maps,bool enable_append, MergeFilamentInfo &merge_info)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << "use_map:" << use_map << " enable_append:" << enable_append;
|
||||
std::vector<std::string> ams_filament_presets;
|
||||
|
@ -1970,16 +1970,18 @@ unsigned int PresetBundle::sync_ams_list(unsigned int &unknowns, bool use_map, s
|
|||
ams_filament_presets.push_back(this->filament_presets[ams_filament_presets.size()]);
|
||||
ams_filament_colors.push_back(filament_color);
|
||||
ams_multi_color_filment.push_back(filament_multi_color);
|
||||
++unknowns;
|
||||
unknowns.emplace_back(&ams, L("The filament model is unknown. Still using the previous filament preset."));
|
||||
continue;
|
||||
}
|
||||
iter = std::find_if(filaments.begin(), filaments.end(), [&filament_type](auto &f) {
|
||||
return f.is_compatible && f.is_system;
|
||||
iter = std::find_if(filaments.begin(), filaments.end(), [](auto &f) {
|
||||
return f.is_compatible && f.is_system;
|
||||
});
|
||||
if (iter == filaments.end())
|
||||
continue;
|
||||
}
|
||||
++unknowns;
|
||||
unknowns.emplace_back(&ams, boost::algorithm::starts_with(iter->name, filament_type)
|
||||
? L("The filament may not be compatible with the current machine settings. Generic filament presets will be used.")
|
||||
: L("The filament model is unknown. A random filament preset will be used."));
|
||||
filament_id = iter->filament_id;
|
||||
}
|
||||
ams_filament_presets.push_back(iter->name);
|
||||
|
|
|
@ -142,7 +142,7 @@ public:
|
|||
void update_num_filaments(unsigned int to_del_flament_id);
|
||||
|
||||
void get_ams_cobox_infos(AMSComboInfo &combox_info);
|
||||
unsigned int sync_ams_list(unsigned int &unknowns, bool use_map, std::map<int, AMSMapInfo> &maps,bool enable_append, MergeFilamentInfo& merge_info);
|
||||
unsigned int sync_ams_list(std::vector<std::pair<DynamicPrintConfig *,std::string>> &unknowns, bool use_map, std::map<int, AMSMapInfo> &maps,bool enable_append, MergeFilamentInfo& merge_info);
|
||||
//BBS: check whether this is the only edited filament
|
||||
bool is_the_only_edited_filament(unsigned int filament_index);
|
||||
|
||||
|
|
|
@ -195,6 +195,13 @@ wxDEFINE_EVENT(EVT_ADD_FILAMENT, SimpleEvent);
|
|||
wxDEFINE_EVENT(EVT_DEL_FILAMENT, SimpleEvent);
|
||||
wxDEFINE_EVENT(EVT_ADD_CUSTOM_FILAMENT, ColorEvent);
|
||||
wxDEFINE_EVENT(EVT_NOTICE_CHILDE_SIZE_CHANGED, SimpleEvent);
|
||||
|
||||
#define PRINTER_THUMBNAIL_SIZE (wxSize(FromDIP(48), FromDIP(48)))
|
||||
#define PRINTER_THUMBNAIL_SIZE_SMALL (wxSize(FromDIP(32), FromDIP(32)))
|
||||
#define PRINTER_PANEL_SIZE_SMALL (wxSize(FromDIP(98), FromDIP(68)))
|
||||
#define PRINTER_PANEL_SIZE_WIDEN (wxSize(FromDIP(136), FromDIP(68)))
|
||||
#define PRINTER_PANEL_SIZE (wxSize(FromDIP(98), FromDIP(98)))
|
||||
|
||||
static string get_diameter_string(float diameter)
|
||||
{
|
||||
std::ostringstream stream;
|
||||
|
@ -518,6 +525,7 @@ void Sidebar::priv::layout_printer(bool isBBL, bool isDual)
|
|||
vsizer->Add(hsizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(8));
|
||||
vsizer->Add(combo_printer, 0, wxEXPAND | wxALL, FromDIP(4));
|
||||
panel_printer_preset->SetSizer(vsizer);
|
||||
panel_printer_bed->SetMinSize(PRINTER_PANEL_SIZE_SMALL);
|
||||
} else {
|
||||
wxBoxSizer *hsizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
hsizer->AddSpacer(FromDIP(4));
|
||||
|
@ -526,6 +534,7 @@ void Sidebar::priv::layout_printer(bool isBBL, bool isDual)
|
|||
hsizer->Add(combo_printer, 1, wxALIGN_CENTRE | wxLEFT | wxRIGHT, FromDIP(6));
|
||||
hsizer->AddSpacer(FromDIP(8));
|
||||
panel_printer_preset->SetSizer(hsizer);
|
||||
panel_printer_bed->SetMinSize(PRINTER_PANEL_SIZE_WIDEN);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1408,11 +1417,6 @@ void Sidebar::priv::update_sync_status(const MachineObject *obj)
|
|||
}
|
||||
}
|
||||
|
||||
#define PRINTER_THUMBNAIL_SIZE (wxSize(FromDIP(48), FromDIP(48)))
|
||||
#define PRINTER_THUMBNAIL_SIZE_SMALL (wxSize(FromDIP(32), FromDIP(32)))
|
||||
#define PRINTER_PANEL_SIZE_SMALL (wxSize(FromDIP(98), FromDIP(68)))
|
||||
#define PRINTER_PANEL_SIZE (wxSize(FromDIP(98), FromDIP(98)))
|
||||
|
||||
void Sidebar::update_sync_ams_btn_enable(wxUpdateUIEvent &e)
|
||||
{
|
||||
if (m_last_slice_state != p->plater->is_background_process_slicing()) {
|
||||
|
@ -2530,6 +2534,7 @@ void Sidebar::msw_rescale()
|
|||
p->btn_sync_printer->SetPaddingSize({FromDIP(6), FromDIP(12)});
|
||||
p->btn_sync_printer->SetMinSize(PRINTER_PANEL_SIZE);
|
||||
p->btn_sync_printer->SetMaxSize(PRINTER_PANEL_SIZE);
|
||||
p->panel_printer_bed->SetMinSize(isDual ? PRINTER_PANEL_SIZE : PRINTER_PANEL_SIZE_WIDEN);
|
||||
p->btn_sync_printer->Rescale();
|
||||
#if 0
|
||||
if (p->mode_sizer)
|
||||
|
@ -3077,21 +3082,27 @@ void Sidebar::sync_ams_list(bool is_from_big_sync_btn)
|
|||
color_before_sync.push_back(color_opt->values[i]);
|
||||
}
|
||||
MergeFilamentInfo merge_info;
|
||||
unsigned int unknowns = 0;
|
||||
std::vector<std::pair<DynamicPrintConfig *,std::string>> unknowns;
|
||||
auto enable_append = wxGetApp().app_config->get_bool("enable_append_color_by_sync_ams");
|
||||
auto n = wxGetApp().preset_bundle->sync_ams_list(unknowns, !sync_result.direct_sync, sync_result.sync_maps, enable_append, merge_info);
|
||||
wxString detail;
|
||||
for (auto & uk : unknowns) {
|
||||
auto tray_name = uk.first->opt_string("tray_name", 0u);
|
||||
auto filament_type = uk.first->opt_string("filament_type", 0u);
|
||||
detail += from_u8("\n- " + tray_name + "(" + filament_type + ") ") + _L(uk.second);
|
||||
}
|
||||
if (n == 0) {
|
||||
MessageDialog dlg(this,
|
||||
_L("There are no compatible filaments, and sync is not performed."),
|
||||
_L("There are no compatible filaments, and sync is not performed.") + detail,
|
||||
_L("Sync filaments with AMS"), wxOK);
|
||||
dlg.ShowModal();
|
||||
return;
|
||||
}
|
||||
ams_filament_ids = boost::algorithm::join(list2, ",");
|
||||
wxGetApp().app_config ->set("ams_filament_ids", p->ams_list_device, ams_filament_ids);
|
||||
if (unknowns > 0) {
|
||||
if (!unknowns.empty()) {
|
||||
MessageDialog dlg(this,
|
||||
_L("There are some unknown or uncompatible filaments mapped to generic preset. Please update Bambu Studio or restart Bambu Studio to check if there is an update to system presets."),
|
||||
_L("There are some unknown or uncompatible filaments mapped to generic preset.\nPlease update Bambu Studio or restart Bambu Studio to check if there is an update to system presets.") + detail,
|
||||
_L("Sync filaments with AMS"), wxOK);
|
||||
dlg.ShowModal();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue