diff --git a/resources/profiles/QIDITechnology.idx b/resources/profiles/QIDITechnology.idx index 8700275..c1d4be5 100644 --- a/resources/profiles/QIDITechnology.idx +++ b/resources/profiles/QIDITechnology.idx @@ -1,3 +1,5 @@ +min_slic3r_version = 1.0.8 +1.0.8 Optimize parameters min_slic3r_version = 1.0.7 1.0.7 Optimize parameters min_slic3r_version = 1.0.6 diff --git a/resources/profiles/QIDITechnology.ini b/resources/profiles/QIDITechnology.ini index 67f9cb0..95ecfa7 100644 --- a/resources/profiles/QIDITechnology.ini +++ b/resources/profiles/QIDITechnology.ini @@ -5,7 +5,7 @@ name = QIDI Technology # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the QIDISlicer configuration to be downgraded. -config_version = 1.0.7 +config_version = 1.0.8 # Where to get the updates from? config_update_url = https://github.com/QIDITECH/QIDISlicer/releases/download/QIDITechnology/ changelog_url = https://qidi3d.com/pages/software-firmware diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index f357ffa..770ab33 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -2170,12 +2170,18 @@ void MainFrame::select_tab(size_t tab/* = size_t(-1)*/) wxString name; // preset_name wxString fullname; // full name bool selected; // is selected + std::string model_id; }; std::vector preset_data; for (PhysicalPrinterCollection::ConstIterator it = ph_printers.begin(); it != ph_printers.end(); ++it) { for (const std::string &preset_name : it->get_preset_names()) { - preset_data.push_back({wxString::FromUTF8(it->get_full_name(preset_name)).Lower(), preset_name, - it->get_full_name(preset_name), ph_printers.is_selected(it, preset_name)}); + + Preset *preset = wxGetApp().preset_bundle->printers.find_preset(preset_name); + std::string model_id = preset->config.opt_string("printer_model"); + + + preset_data.push_back({wxString::FromUTF8(it->get_full_name(preset_name)).Lower(), wxString::FromUTF8(preset_name), + wxString::FromUTF8(it->get_full_name(preset_name)), ph_printers.is_selected(it, preset_name), model_id}); } } m_collection = &preset_bundle.printers; @@ -2221,14 +2227,13 @@ void MainFrame::select_tab(size_t tab/* = size_t(-1)*/) if (!preset || !preset->is_visible) continue; wxStringTokenizer tokenizer((data->fullname), "*"); - auto * printer = preset_bundle.physical_printers.find_printer(std::string(tokenizer.GetNextToken().Trim().mb_str())); + + std::string tem_name = (into_u8(tokenizer.GetNextToken().Trim().mb_str())); + auto * printer = preset_bundle.physical_printers.find_printer(tem_name); wxString host = (printer->config.opt_string("print_host")); std::regex ipRegex(R"(\b(?:\d{1,3}\.){3}\d{1,3}\b)"); bool isValidIPAddress = std::regex_match(host.ToStdString(), ipRegex); - wxStringTokenizer tokenizer2((data->name), " 0.", wxTOKEN_RET_EMPTY); - wxString machine_type = tokenizer2.GetNextToken(); - machine_type += " "+ tokenizer2.GetNextToken(); DynamicPrintConfig *cfg_t = &(printer->config); wxStringTokenizer tokenizer3((data->lower_name), wxT("*"), wxTOKEN_RET_EMPTY_ALL); @@ -2238,7 +2243,7 @@ void MainFrame::select_tab(size_t tab/* = size_t(-1)*/) if (isValidIPAddress) { m_printer_view->AddButton( - printer_name, host, machine_type, (data->fullname), + printer_name, host, (data->model_id), (data->fullname), [host, this](wxMouseEvent &event) { wxString formattedHost = wxString::Format("http://%s", host); if (!host.Lower().starts_with("http")) diff --git a/src/slic3r/GUI/PrinterWebView.cpp b/src/slic3r/GUI/PrinterWebView.cpp index 89dd5bf..ea7111a 100644 --- a/src/slic3r/GUI/PrinterWebView.cpp +++ b/src/slic3r/GUI/PrinterWebView.cpp @@ -444,8 +444,10 @@ void PrinterWebView::OnDeleteButtonClick(wxCommandEvent &event) { return ; button->StopStatusThread(); + preset_bundle.physical_printers.select_printer((button->getLabel()).ToStdString()); - preset_bundle.physical_printers.delete_printer(std::string((button->GetNameText()).ToStdString())); + + preset_bundle.physical_printers.delete_selected_printer(); auto it = std::find(m_buttons.begin(), m_buttons.end(), button); delete button; @@ -455,14 +457,20 @@ void PrinterWebView::OnDeleteButtonClick(wxCommandEvent &event) { } leftsizer->Detach(button); - for (MachineListButton *button : m_buttons) { - button->SetSelect(true); - wxString formattedHost = wxString::Format("http://%s:10088", button->getIPLabel()); + if (!m_buttons.empty()) + for (MachineListButton *button : m_buttons) { + button->SetSelect(true); + wxString formattedHost = wxString::Format("http://%s:10088", button->getIPLabel()); - load_url(formattedHost); - preset_bundle.physical_printers.select_printer((button->getLabel()).ToStdString()); - break; + load_url(formattedHost); + preset_bundle.physical_printers.select_printer((button->getLabel()).ToStdString()); + break; + } + else { + wxString host = wxString::Format("file://%s/web/qidi/missing_connection.html", from_u8(resources_dir())); + load_url(host); } + UpdateLayout(); Refresh(); break; diff --git a/version.inc b/version.inc index db69091..9ef43cf 100644 --- a/version.inc +++ b/version.inc @@ -3,7 +3,7 @@ set(SLIC3R_APP_NAME "QIDISlicer") set(SLIC3R_APP_KEY "QIDISlicer") -set(SLIC3R_VERSION "1.0.7") +set(SLIC3R_VERSION "1.0.8") set(SLIC3R_BUILD_ID "QIDISlicer-${SLIC3R_VERSION}+Win64") -set(SLIC3R_RC_VERSION "1,0,7,0") -set(SLIC3R_RC_VERSION_DOTS "1.0.7.0") +set(SLIC3R_RC_VERSION "1,0,8,0") +set(SLIC3R_RC_VERSION_DOTS "1.0.8.0")