FIX: [STUDIO-4502 4505 4558] create filament dialog issue
Jira: STUDIO 4502 4505 4888 fix: 4502 modify vendor fix: 4505 renew preset name in filament combobox fix: 4558 reload from disk, delaying busyinfo fix: encoding filament preset name Change-Id: Iff55f539c5b0dd4c96ef22ba84ef22ce4d762443
This commit is contained in:
parent
f9f44d0785
commit
d01a3c331b
|
@ -2080,7 +2080,7 @@ Preset& PresetCollection::load_preset(const std::string &path, const std::string
|
|||
return preset;
|
||||
}
|
||||
|
||||
bool PresetCollection::clone_presets(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::function<void(Preset &)> modifier, bool force_rewritten)
|
||||
bool PresetCollection::clone_presets(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::function<void(Preset &, Preset::Type &)> modifier, bool force_rewritten)
|
||||
{
|
||||
std::vector<Preset> new_presets;
|
||||
for (auto curr_preset : presets) {
|
||||
|
@ -2095,13 +2095,12 @@ bool PresetCollection::clone_presets(std::vector<Preset const *> const &presets,
|
|||
preset.is_external = false;
|
||||
preset.is_visible = true;
|
||||
preset.is_project_embedded = false;
|
||||
modifier(preset);
|
||||
modifier(preset, m_type);
|
||||
if (find_preset(preset.name)) {
|
||||
failures.push_back(preset.name);
|
||||
continue;
|
||||
}
|
||||
preset.file = this->path_for_preset(preset);
|
||||
preset.alias.clear();
|
||||
if (m_type == Preset::TYPE_PRINT)
|
||||
preset.config.option<ConfigOptionString>("print_settings_id", true)->value = preset.name;
|
||||
else if (m_type == Preset::TYPE_FILAMENT)
|
||||
|
@ -2114,6 +2113,7 @@ bool PresetCollection::clone_presets(std::vector<Preset const *> const &presets,
|
|||
return false;
|
||||
lock();
|
||||
for (auto preset : new_presets) {
|
||||
preset.alias.clear();
|
||||
auto it = this->find_preset_internal(preset.name);
|
||||
assert((it == m_presets.end() || it->name != preset.name) || force_rewritten);
|
||||
if (it == m_presets.end() || it->name != preset.name) {
|
||||
|
@ -2130,7 +2130,7 @@ bool PresetCollection::clone_presets(std::vector<Preset const *> const &presets,
|
|||
|
||||
bool PresetCollection::clone_presets_for_printer(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::string const &printer, bool force_rewritten)
|
||||
{
|
||||
return clone_presets(presets, failures, [printer](Preset &preset) {
|
||||
return clone_presets(presets, failures, [printer](Preset &preset, Preset::Type &type) {
|
||||
preset.name = preset.name.substr(0, preset.name.find("@")) + " @" + printer;
|
||||
//preset.alias = "";
|
||||
auto *compatible_printers = dynamic_cast<ConfigOptionStrings *>(preset.config.option("compatible_printers"));
|
||||
|
@ -2147,11 +2147,13 @@ bool PresetCollection::clone_presets_for_filament(std::vector<Preset const *> co
|
|||
std::vector<std::string> & failures,
|
||||
std::string const & filament_name,
|
||||
std::string const & filament_id,
|
||||
bool force_rewritten)
|
||||
const std::string & vendor_name,
|
||||
bool force_rewritten)
|
||||
{
|
||||
return clone_presets(presets, failures, [filament_name, filament_id](Preset &preset) {
|
||||
return clone_presets(presets, failures, [filament_name, filament_id, vendor_name](Preset &preset, Preset::Type &type) {
|
||||
preset.name = filament_name + " " + preset.name.substr(preset.name.find_last_of('@'));
|
||||
//preset.alias = "";
|
||||
if (type == Preset::TYPE_FILAMENT)
|
||||
preset.config.option<ConfigOptionStrings>("filament_vendor", true)->values[0] = vendor_name;
|
||||
preset.filament_id = filament_id;
|
||||
},
|
||||
force_rewritten);
|
||||
|
|
|
@ -450,10 +450,10 @@ public:
|
|||
Preset& load_preset(const std::string &path, const std::string &name, const DynamicPrintConfig &config, bool select = true, Semver file_version = Semver(), bool is_custom_defined = false);
|
||||
Preset& load_preset(const std::string &path, const std::string &name, DynamicPrintConfig &&config, bool select = true, Semver file_version = Semver(), bool is_custom_defined = false);
|
||||
|
||||
bool clone_presets(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::function<void(Preset &)> modifier, bool force_rewritten = false);
|
||||
bool clone_presets(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::function<void(Preset &, Preset::Type &)> modifier, bool force_rewritten = false);
|
||||
bool clone_presets_for_printer(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::string const &printer, bool force_rewritten = false);
|
||||
bool create_presets_from_template_for_printer(std::vector<std::string> const &templates, std::vector<std::string> &failures, std::string const &printer);
|
||||
bool clone_presets_for_filament(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::string const &filament_name, std::string const &filament_id, bool force_rewritten = false);
|
||||
bool clone_presets_for_filament(std::vector<Preset const *> const &presets, std::vector<std::string> &failures, std::string const &filament_name, std::string const &filament_id, const std::string& vendor, bool force_rewritten = false);
|
||||
|
||||
std::map<std::string, std::vector<Preset const *>> get_filament_presets() const;
|
||||
|
||||
|
|
|
@ -214,10 +214,10 @@ static wxBoxSizer *create_select_filament_preset_checkbox(wxWindow *
|
|||
combobox->SetLabel(_L("Select filament preset"));
|
||||
combobox->Bind(wxEVT_COMBOBOX, [combobox, checkbox, presets, &machine_filament_preset](wxCommandEvent &e) {
|
||||
combobox->SetLabelColor(*wxBLACK);
|
||||
std::string preset_name = into_u8(combobox->GetLabel());
|
||||
wxString preset_name = combobox->GetStringSelection();
|
||||
checkbox->SetValue(true);
|
||||
for (Preset *preset : presets) {
|
||||
if (preset_name == preset->name) {
|
||||
if (preset_name == wxString::FromUTF8(preset->name)) {
|
||||
machine_filament_preset[checkbox] = preset;
|
||||
}
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ static wxBoxSizer *create_select_filament_preset_checkbox(wxWindow *
|
|||
|
||||
wxArrayString choices;
|
||||
for (Preset *preset : presets) {
|
||||
choices.Add(preset->name);
|
||||
choices.Add(wxString::FromUTF8(preset->name));
|
||||
}
|
||||
combobox->Set(choices);
|
||||
|
||||
|
@ -371,8 +371,9 @@ static char* read_json_file(const std::string &preset_path)
|
|||
return json_contents;
|
||||
}
|
||||
|
||||
CreateFilamentPresetDialog::CreateFilamentPresetDialog(wxWindow *parent)
|
||||
: DPIDialog(parent ? parent : nullptr, wxID_ANY, _L("Creat Filament"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX) {
|
||||
CreateFilamentPresetDialog::CreateFilamentPresetDialog(wxWindow *parent, bool modify_filament)
|
||||
: DPIDialog(parent ? parent : nullptr, wxID_ANY, _L("Creat Filament"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX), m_modify_filament(modify_filament)
|
||||
{
|
||||
|
||||
m_create_type.base_filament = _L("Create based on current filamet");
|
||||
m_create_type.base_filament_preset = _L("Copy current filament preset ");
|
||||
|
@ -468,6 +469,8 @@ wxBoxSizer *CreateFilamentPresetDialog::create_vendor_item()
|
|||
Layout();
|
||||
Fit();
|
||||
});
|
||||
m_filament_vendor_combobox->Enable(!m_modify_filament);
|
||||
|
||||
horizontal_sizer->Add(comboBoxSizer, 0, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(10));
|
||||
|
||||
wxBoxSizer *textInputSizer = new wxBoxSizer(wxVERTICAL);
|
||||
|
@ -504,6 +507,7 @@ wxBoxSizer *CreateFilamentPresetDialog::create_type_item()
|
|||
m_filament_type_combobox->Set(filament_type);
|
||||
comboBoxSizer->Add(m_filament_type_combobox, 0, wxEXPAND | wxALL, 0);
|
||||
horizontal_sizer->Add(comboBoxSizer, 0, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(10));
|
||||
m_filament_type_combobox->Enable(!m_modify_filament);
|
||||
|
||||
m_filament_type_combobox->Bind(wxEVT_COMBOBOX, [this](wxCommandEvent &e) {
|
||||
m_filament_type_combobox->SetLabelColor(*wxBLACK);
|
||||
|
@ -539,6 +543,16 @@ wxBoxSizer *CreateFilamentPresetDialog::create_serial_item()
|
|||
wxBoxSizer *comboBoxSizer = new wxBoxSizer(wxVERTICAL);
|
||||
m_filament_serial_input = new TextInput(this, "", "", "", wxDefaultPosition, NAME_OPTION_COMBOBOX_SIZE, wxTE_PROCESS_ENTER);
|
||||
comboBoxSizer->Add(m_filament_serial_input, 0, wxEXPAND | wxALL, 0);
|
||||
m_filament_serial_input->GetTextCtrl()->Bind(wxEVT_CHAR, [this](wxKeyEvent &event) {
|
||||
int key = event.GetKeyCode();
|
||||
if (key == 64) {
|
||||
event.Skip(false);
|
||||
return;
|
||||
}
|
||||
event.Skip();
|
||||
});
|
||||
m_filament_serial_input->Enable(!m_modify_filament);
|
||||
|
||||
wxStaticText *static_eg_text = new wxStaticText(this, wxID_ANY, _L("e.g. Basic, Matte, Silk, Marble"), wxDefaultPosition, wxDefaultSize);
|
||||
static_eg_text->SetForegroundColour(wxColour("#6B6B6B"));
|
||||
static_eg_text->SetFont(::Label::Body_12);
|
||||
|
@ -568,15 +582,15 @@ wxBoxSizer *CreateFilamentPresetDialog::create_filament_preset_item()
|
|||
|
||||
m_filament_preset_combobox->Bind(wxEVT_COMBOBOX, [this](wxCommandEvent &e) {
|
||||
m_filament_preset_combobox->SetLabelColor(*wxBLACK);
|
||||
std::string filament_type = into_u8(m_filament_preset_combobox->GetStringSelection());
|
||||
std::unordered_map<std::string, std::vector<Preset *>>::iterator iter = m_filament_choice_map.find(m_public_name_to_filament_id_map[filament_type]);
|
||||
wxString filament_type = m_filament_preset_combobox->GetStringSelection();
|
||||
std::unordered_map<std::string, std::vector<Preset *>>::iterator iter = m_filament_choice_map.find(m_public_name_to_filament_id_map[filament_type]);
|
||||
|
||||
m_filament_preset_panel->Freeze();
|
||||
m_filament_presets_sizer->Clear(true);
|
||||
m_filament_preset.clear();
|
||||
if (iter != m_filament_choice_map.end()) {
|
||||
for (Preset* preset : iter->second) {
|
||||
std::string preset_name = wxString::FromUTF8(preset->name).ToStdString();
|
||||
std::string preset_name = preset->name;
|
||||
size_t index_at = preset_name.find("@");
|
||||
if (std::string::npos != index_at) {
|
||||
std::string machine_name = preset_name.substr(index_at + 1);
|
||||
|
@ -704,7 +718,7 @@ wxBoxSizer *CreateFilamentPresetDialog::create_button_item()
|
|||
}
|
||||
if (!filament_presets.empty()) {
|
||||
std::vector<std::string> failures;
|
||||
bool res = preset_bundle->filaments.clone_presets_for_filament(filament_presets, failures, filament_preset_name, user_filament_id);
|
||||
bool res = preset_bundle->filaments.clone_presets_for_filament(filament_presets, failures, filament_preset_name, user_filament_id, vendor_name);
|
||||
if (!res) {
|
||||
std::string failure_names;
|
||||
for (std::string &failure : failures) {
|
||||
|
@ -713,7 +727,7 @@ wxBoxSizer *CreateFilamentPresetDialog::create_button_item()
|
|||
MessageDialog dlg(this, _L("Some existing presets have failed to be created, as follows:\n") + failure_names + _L("\nDo you want to rewrite it?"),
|
||||
wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"), wxYES_NO | wxYES_DEFAULT | wxCENTRE);
|
||||
if (dlg.ShowModal() == wxID_YES) {
|
||||
res = preset_bundle->filaments.clone_presets_for_filament(filament_presets, failures, filament_preset_name, user_filament_id, true);
|
||||
res = preset_bundle->filaments.clone_presets_for_filament(filament_presets, failures, filament_preset_name, user_filament_id, vendor_name, true);
|
||||
BOOST_LOG_TRIVIAL(info) << "clone filament have failures rewritten is successful? "<< res;
|
||||
} else {
|
||||
std::vector<Preset const *> temp_filament_presets;
|
||||
|
@ -728,7 +742,7 @@ wxBoxSizer *CreateFilamentPresetDialog::create_button_item()
|
|||
}
|
||||
}
|
||||
if (temp_filament_presets.empty()) return;
|
||||
preset_bundle->filaments.clone_presets_for_filament(temp_filament_presets, failures, filament_preset_name, user_filament_id);
|
||||
preset_bundle->filaments.clone_presets_for_filament(temp_filament_presets, failures, filament_preset_name, user_filament_id, vendor_name);
|
||||
BOOST_LOG_TRIVIAL(info) << "clone filament have failures not rewritten is successful? " << res;
|
||||
}
|
||||
}
|
||||
|
@ -748,14 +762,14 @@ wxBoxSizer *CreateFilamentPresetDialog::create_button_item()
|
|||
}
|
||||
if (!filament_presets.empty()) {
|
||||
std::vector<std::string> failures;
|
||||
bool res = preset_bundle->filaments.clone_presets_for_filament(filament_presets, failures, filament_preset_name, user_filament_id);
|
||||
bool res = preset_bundle->filaments.clone_presets_for_filament(filament_presets, failures, filament_preset_name, user_filament_id, vendor_name);
|
||||
if (!res) {
|
||||
std::string failure_names;
|
||||
for (std::string &failure : failures) { failure_names += failure + "\n"; }
|
||||
MessageDialog dlg(this, _L("Some existing presets have failed to be created, as follows:\n") + failure_names + _L("\nDo you want to rewrite it?"),
|
||||
wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"), wxYES_NO | wxYES_DEFAULT | wxCENTRE);
|
||||
if (wxID_YES == dlg.ShowModal()) {
|
||||
res = preset_bundle->filaments.clone_presets_for_filament(filament_presets, failures, filament_preset_name, user_filament_id, true);
|
||||
res = preset_bundle->filaments.clone_presets_for_filament(filament_presets, failures, filament_preset_name, user_filament_id, vendor_name, true);
|
||||
BOOST_LOG_TRIVIAL(info) << "clone filament presets have failures rewritten is successful? " << res;
|
||||
} else {
|
||||
std::vector<Preset const *> temp_filament_presets;
|
||||
|
@ -770,7 +784,7 @@ wxBoxSizer *CreateFilamentPresetDialog::create_button_item()
|
|||
}
|
||||
}
|
||||
if (temp_filament_presets.empty()) return;
|
||||
preset_bundle->filaments.clone_presets_for_filament(temp_filament_presets, failures, filament_preset_name, user_filament_id);
|
||||
preset_bundle->filaments.clone_presets_for_filament(temp_filament_presets, failures, filament_preset_name, user_filament_id, vendor_name);
|
||||
BOOST_LOG_TRIVIAL(info) << "clone filament have failures not rewritten is successful? " << res;
|
||||
}
|
||||
}
|
||||
|
@ -828,17 +842,17 @@ wxArrayString CreateFilamentPresetDialog::get_filament_preset_choices()
|
|||
int suffix = 0;
|
||||
for (const pair<std::string, std::vector<Preset *>> &preset : m_filament_choice_map) {
|
||||
if (preset.second.empty()) continue;
|
||||
std::set<std::string> preset_name_set;
|
||||
std::set<wxString> preset_name_set;
|
||||
for (Preset* filament_preset : preset.second) {
|
||||
std::string preset_name = filament_preset->name;
|
||||
size_t index_at = preset_name.find("@");
|
||||
if (std::string::npos != index_at) {
|
||||
std::string cur_preset_name = preset_name.substr(0, index_at - 1);
|
||||
preset_name_set.insert(cur_preset_name);
|
||||
preset_name_set.insert(wxString::FromUTF8(cur_preset_name));
|
||||
}
|
||||
}
|
||||
assert(1 == preset_name_set.size());
|
||||
for (const std::string& public_name : preset_name_set) {
|
||||
for (const wxString& public_name : preset_name_set) {
|
||||
if (m_public_name_to_filament_id_map.find(public_name) != m_public_name_to_filament_id_map.end()) {
|
||||
suffix++;
|
||||
m_public_name_to_filament_id_map[public_name + "_" + std::to_string(suffix)] = preset.first;
|
||||
|
@ -968,7 +982,7 @@ void CreateFilamentPresetDialog::get_all_filament_presets()
|
|||
|
||||
for (const Preset &preset : filament_presets) {
|
||||
if (preset.filament_id.empty() || "null" == preset.filament_id) continue;
|
||||
std::string filament_preset_name = wxString::FromUTF8(preset.name).ToStdString();
|
||||
std::string filament_preset_name = preset.name;
|
||||
Preset *filament_preset = new Preset(preset);
|
||||
m_all_presets_map[filament_preset_name] = filament_preset;
|
||||
}
|
||||
|
@ -979,7 +993,7 @@ void CreateFilamentPresetDialog::get_all_filament_presets()
|
|||
if (filament_id_to_presets.first.empty()) continue;
|
||||
for (const Preset *preset : filament_id_to_presets.second) {
|
||||
if (preset->filament_id.empty() || "null" == preset->filament_id) continue;
|
||||
std::string filament_preset_name = wxString::FromUTF8(preset->name).ToStdString();
|
||||
std::string filament_preset_name = preset->name;
|
||||
if (!preset->is_visible) continue;
|
||||
Preset *filament_preset = new Preset(*preset);
|
||||
m_all_presets_map[filament_preset_name] = filament_preset;
|
||||
|
@ -1022,7 +1036,7 @@ CreatePrinterPresetDialog::CreatePrinterPresetDialog(wxWindow *parent)
|
|||
|
||||
m_page1 = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
m_page1->SetBackgroundColour(*wxWHITE);
|
||||
m_page1->SetScrollRate(0, 5);
|
||||
m_page1->SetScrollRate(5, 5);
|
||||
m_page2 = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize);
|
||||
m_page2->SetScrollRate(5, 5);
|
||||
m_page2->SetBackgroundColour(*wxWHITE);
|
||||
|
@ -1093,20 +1107,20 @@ void CreatePrinterPresetDialog::create_printer_page1(wxWindow *parent)
|
|||
{
|
||||
this->SetBackgroundColour(*wxWHITE);
|
||||
|
||||
wxBoxSizer *page1_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
m_page1_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
page1_sizer->Add(create_type_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_printer_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_nozzle_diameter_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_bed_shape_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_bed_size_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_origin_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_hot_bed_stl_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_hot_bed_svg_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_max_print_height_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
page1_sizer->Add(create_page1_btns_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_type_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_printer_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_nozzle_diameter_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_bed_shape_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_bed_size_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_origin_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_hot_bed_stl_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_hot_bed_svg_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_max_print_height_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
m_page1_sizer->Add(create_page1_btns_item(parent), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5));
|
||||
|
||||
parent->SetSizerAndFit(page1_sizer);
|
||||
parent->SetSizerAndFit(m_page1_sizer);
|
||||
Layout();
|
||||
|
||||
wxGetApp().UpdateDlgDarkUI(this);
|
||||
|
@ -1215,6 +1229,14 @@ wxBoxSizer *CreatePrinterPresetDialog::create_printer_item(wxWindow *parent)
|
|||
m_custom_vendor_model->SetHint(_L("Input Printer Vendor and Model"));
|
||||
checkbox_sizer->Add(m_custom_vendor_model, 0, wxLEFT | wxALIGN_CENTER, FromDIP(13));
|
||||
m_custom_vendor_model->Hide();
|
||||
m_custom_vendor_model->Bind(wxEVT_CHAR, [this](wxKeyEvent &event) {
|
||||
int key = event.GetKeyCode();
|
||||
if (key == 64) { // "@" can not be inputed
|
||||
event.Skip(false);
|
||||
return;
|
||||
}
|
||||
event.Skip();
|
||||
});
|
||||
|
||||
m_can_not_find_vendor_combox->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &e) {
|
||||
bool value = m_can_not_find_vendor_combox->GetValue();
|
||||
|
@ -1231,6 +1253,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_printer_item(wxWindow *parent)
|
|||
}
|
||||
Refresh();
|
||||
Layout();
|
||||
m_page1->SetSizerAndFit(m_page1_sizer);
|
||||
Fit();
|
||||
});
|
||||
|
||||
|
@ -1468,7 +1491,7 @@ wxBoxSizer *CreatePrinterPresetDialog::create_page1_btns_item(wxWindow *parent)
|
|||
bSizer_button->Add(m_button_OK, 0, wxRIGHT, FromDIP(10));
|
||||
|
||||
m_button_OK->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
|
||||
//if (!validate_input_valid()) return;
|
||||
if (!validate_input_valid()) return;
|
||||
data_init();
|
||||
show_page2();
|
||||
});
|
||||
|
@ -1559,6 +1582,7 @@ void CreatePrinterPresetDialog::select_curr_radiobox(std::vector<std::pair<Radio
|
|||
m_filament_preset.clear();
|
||||
m_process_preset_template_sizer->Clear(true);
|
||||
m_process_preset.clear();
|
||||
m_page2->SetSizerAndFit(m_page2_sizer);
|
||||
} else if (curr_selected_type == m_create_presets_type[1]) {
|
||||
if (into_u8(m_printer_model->GetLabel()) == _L("Select model")) {
|
||||
m_filament_preset_template_sizer->Clear(true);
|
||||
|
@ -1568,6 +1592,7 @@ void CreatePrinterPresetDialog::select_curr_radiobox(std::vector<std::pair<Radio
|
|||
} else {
|
||||
update_presets_list();
|
||||
}
|
||||
m_page2->SetSizerAndFit(m_page2_sizer);
|
||||
} else if (curr_selected_type == m_create_printer_type[0]) {
|
||||
m_select_printer->Hide();
|
||||
m_select_vendor->Show();
|
||||
|
@ -1577,6 +1602,7 @@ void CreatePrinterPresetDialog::select_curr_radiobox(std::vector<std::pair<Radio
|
|||
if (m_can_not_find_vendor_combox->GetValue()) {
|
||||
m_custom_vendor_model->Show();
|
||||
}
|
||||
m_page1->SetSizerAndFit(m_page1_sizer);
|
||||
} else if (curr_selected_type == m_create_printer_type[1]) {
|
||||
m_select_vendor->Hide();
|
||||
m_select_model->Hide();
|
||||
|
@ -1584,13 +1610,15 @@ void CreatePrinterPresetDialog::select_curr_radiobox(std::vector<std::pair<Radio
|
|||
m_can_not_find_vendor_text->Hide();
|
||||
m_custom_vendor_model->Hide();
|
||||
m_select_printer->Show();
|
||||
m_page1->SetSizerAndFit(m_page1_sizer);
|
||||
}
|
||||
} else {
|
||||
radiobox_list[i].first->SetValue(false);
|
||||
}
|
||||
}
|
||||
Layout();
|
||||
m_page2->SetSizerAndFit(m_page2_sizer);
|
||||
//m_page1->SetSizerAndFit(m_page1_sizer);
|
||||
//m_page2->SetSizerAndFit(m_page2_sizer);
|
||||
Fit();
|
||||
int screen_height = (int) wxGetDisplaySize().GetHeight() * 4 / 5;
|
||||
if (this->GetSize().GetHeight() > screen_height) {
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace GUI {
|
|||
class CreateFilamentPresetDialog : public DPIDialog
|
||||
{
|
||||
public:
|
||||
CreateFilamentPresetDialog(wxWindow *parent);
|
||||
CreateFilamentPresetDialog(wxWindow *parent, bool modify_filament = false);
|
||||
~CreateFilamentPresetDialog();
|
||||
|
||||
protected:
|
||||
|
@ -62,8 +62,9 @@ private:
|
|||
std::vector<std::pair<CheckBox *, Preset *>> m_filament_preset;
|
||||
std::unordered_map<CheckBox *, Preset *> m_machint_filament_preset;
|
||||
std::unordered_map<std::string, std::vector<Preset *>> m_filament_choice_map;
|
||||
std::unordered_map<std::string, std::string> m_public_name_to_filament_id_map;
|
||||
std::unordered_map<wxString, std::string> m_public_name_to_filament_id_map;
|
||||
std::unordered_map<std::string, Preset *> m_all_presets_map;
|
||||
bool m_modify_filament;
|
||||
CreateType m_create_type;
|
||||
Button * m_button_create = nullptr;
|
||||
Button * m_button_cancel = nullptr;
|
||||
|
@ -172,6 +173,7 @@ private:
|
|||
wxPanel * m_filament_preset_panel = nullptr;
|
||||
wxPanel * m_process_preset_panel = nullptr;
|
||||
wxPanel * m_preset_template_panel = nullptr;
|
||||
wxBoxSizer * m_page1_sizer = nullptr;
|
||||
wxBoxSizer * m_page2_sizer = nullptr;
|
||||
std::string m_custom_texture;
|
||||
std::string m_custom_model;
|
||||
|
|
|
@ -4959,7 +4959,6 @@ bool Plater::priv::replace_volume_with_stl(int object_idx, int volume_idx, const
|
|||
{
|
||||
const std::string path = new_path.string();
|
||||
wxBusyCursor wait;
|
||||
wxBusyInfo info(_devL("Replace from:") + " " + from_u8(path), q->get_current_canvas3D()->get_wxglcanvas());
|
||||
|
||||
Model new_model;
|
||||
try {
|
||||
|
@ -4980,6 +4979,8 @@ bool Plater::priv::replace_volume_with_stl(int object_idx, int volume_idx, const
|
|||
return false;
|
||||
}
|
||||
|
||||
wxBusyInfo info(_devL("Replace from:") + " " + from_u8(path), q->get_current_canvas3D()->get_wxglcanvas());
|
||||
|
||||
if (!snapshot.empty())
|
||||
q->take_snapshot(snapshot);
|
||||
|
||||
|
|
Loading…
Reference in New Issue