diff --git a/src/slic3r/GUI/Jobs/PrintJob.cpp b/src/slic3r/GUI/Jobs/PrintJob.cpp index c4def1b27d..d0ecd16f4e 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.cpp +++ b/src/slic3r/GUI/Jobs/PrintJob.cpp @@ -156,16 +156,22 @@ void PrintJob::process() // task name std::string project_name = wxGetApp().plater()->get_project_name().ToUTF8().data(); int curr_plate_idx = 0; - if (plate_data.is_valid) - curr_plate_idx = plate_data.cur_plate_index; - if (job_data.plate_idx >= 0) - curr_plate_idx = job_data.plate_idx + 1; - else if (job_data.plate_idx == PLATE_CURRENT_IDX) - curr_plate_idx = m_plater->get_partplate_list().get_curr_plate_index() + 1; - else if (job_data.plate_idx == PLATE_ALL_IDX) - curr_plate_idx = m_plater->get_partplate_list().get_curr_plate_index() + 1; - else - curr_plate_idx = m_plater->get_partplate_list().get_curr_plate_index() + 1; + + if (m_print_type == "from_normal") { + if (plate_data.is_valid) + curr_plate_idx = plate_data.cur_plate_index; + if (job_data.plate_idx >= 0) + curr_plate_idx = job_data.plate_idx + 1; + else if (job_data.plate_idx == PLATE_CURRENT_IDX) + curr_plate_idx = m_plater->get_partplate_list().get_curr_plate_index() + 1; + else if (job_data.plate_idx == PLATE_ALL_IDX) + curr_plate_idx = m_plater->get_partplate_list().get_curr_plate_index() + 1; + else + curr_plate_idx = m_plater->get_partplate_list().get_curr_plate_index() + 1; + } + else if(m_print_type == "from_sdcard_view") { + curr_plate_idx = m_print_from_sdc_plate_idx; + } PartPlate* curr_plate = m_plater->get_partplate_list().get_curr_plate(); if (curr_plate) { @@ -255,7 +261,7 @@ void PrintJob::process() } - if (params.preset_name.empty()) {params.preset_name = wxString::Format("%s_plate_%d", m_project_name, curr_plate_idx).ToStdString();} + if (params.preset_name.empty()) { params.preset_name = wxString::Format("%s_plate_%d", m_project_name, curr_plate_idx).ToStdString(); } if (params.project_name.empty()) {params.project_name = m_project_name;} //Prevent string length from exceeding 100 bytes diff --git a/src/slic3r/GUI/Jobs/PrintJob.hpp b/src/slic3r/GUI/Jobs/PrintJob.hpp index 7599a5be68..776dd70bdb 100644 --- a/src/slic3r/GUI/Jobs/PrintJob.hpp +++ b/src/slic3r/GUI/Jobs/PrintJob.hpp @@ -61,6 +61,8 @@ public: std::string connection_type; std::string m_print_type; + int m_print_from_sdc_plate_idx = 0; + bool m_local_use_ssl_for_mqtt { true }; bool m_local_use_ssl_for_ftp { true }; bool task_bed_leveling; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 2275bfc514..3cb11aabbd 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -2511,8 +2511,8 @@ void SelectMachineDialog::on_send_print() m_print_job->m_ftp_folder = obj_->get_ftp_folder(); m_print_job->m_access_code = obj_->get_access_code(); #if !BBL_RELEASE_TO_PUBLIC - m_print_job->m_local_use_ssl_for_ftp = wxGetApp().app_config->get("enable_ssl_for_mqtt") == "true" ? true : false; - m_print_job->m_local_use_ssl_for_mqtt = wxGetApp().app_config->get("enable_ssl_for_ftp") == "true" ? true : false; + m_print_job->m_local_use_ssl_for_ftp = wxGetApp().app_config->get("enable_ssl_for_ftp") == "true" ? true : false; + m_print_job->m_local_use_ssl_for_mqtt = wxGetApp().app_config->get("enable_ssl_for_mqtt") == "true" ? true : false; #else m_print_job->m_local_use_ssl_for_ftp = obj_->local_use_ssl_for_ftp; m_print_job->m_local_use_ssl_for_mqtt = obj_->local_use_ssl_for_mqtt; @@ -2521,12 +2521,21 @@ void SelectMachineDialog::on_send_print() m_print_job->cloud_print_only = obj_->is_cloud_print_only; if (m_print_type == PrintFromType::FROM_NORMAL) { + BOOST_LOG_TRIVIAL(info) << "print_job: m_print_type = from_normal"; m_print_job->m_print_type = "from_normal"; m_print_job->set_project_name(m_current_project_name.utf8_string()); } else if(m_print_type == PrintFromType::FROM_SDCARD_VIEW){ + BOOST_LOG_TRIVIAL(info) << "print_job: m_print_type = from_sdcard_view"; m_print_job->m_print_type = "from_sdcard_view"; m_print_job->connection_type = "lan"; + + try { + m_print_job->m_print_from_sdc_plate_idx = m_required_data_plate_data_list[m_print_plate_idx]->plate_index + 1; + } + catch (...) {} + BOOST_LOG_TRIVIAL(info) << "print_job: m_print_plate_idx =" << m_print_job->m_print_from_sdc_plate_idx; + auto input_str_arr = wxGetApp().split_str(m_required_data_file_name,".gcode.3mf"); if (input_str_arr.size() > 1) { m_print_job->set_project_name(input_str_arr[0]); @@ -2678,9 +2687,15 @@ bool SelectMachineDialog::is_timeout() void SelectMachineDialog::update_print_required_data(Slic3r::DynamicPrintConfig config, Slic3r::Model model, Slic3r::PlateDataPtrs plate_data_list, std::string file_name) { + m_required_data_plate_data_list.clear(); m_required_data_config = config; m_required_data_model = model; - m_required_data_plate_data_list = plate_data_list; + //m_required_data_plate_data_list = plate_data_list; + for (auto i = 0; i < plate_data_list.size(); i++) { + if (!plate_data_list[i]->gcode_file.empty()) { + m_required_data_plate_data_list.push_back(plate_data_list[i]); + } + } m_required_data_file_name = file_name; } diff --git a/src/slic3r/GUI/SendToPrinter.cpp b/src/slic3r/GUI/SendToPrinter.cpp index f2e0358006..504c73537d 100644 --- a/src/slic3r/GUI/SendToPrinter.cpp +++ b/src/slic3r/GUI/SendToPrinter.cpp @@ -767,8 +767,8 @@ void SendToPrinterDialog::on_ok(wxCommandEvent &event) #if !BBL_RELEASE_TO_PUBLIC - m_send_job->m_local_use_ssl_for_ftp = wxGetApp().app_config->get("enable_ssl_for_mqtt") == "true" ? true : false; - m_send_job->m_local_use_ssl_for_mqtt = wxGetApp().app_config->get("enable_ssl_for_ftp") == "true" ? true : false; + m_send_job->m_local_use_ssl_for_ftp = wxGetApp().app_config->get("enable_ssl_for_ftp") == "true" ? true : false; + m_send_job->m_local_use_ssl_for_mqtt = wxGetApp().app_config->get("enable_ssl_for_mqtt") == "true" ? true : false; #else m_send_job->m_local_use_ssl_for_ftp = obj_->local_use_ssl_for_ftp; m_send_job->m_local_use_ssl_for_mqtt = obj_->local_use_ssl_for_mqtt; diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index c995b85363..1d6756554b 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -634,8 +634,8 @@ void CalibUtils::send_to_print(const std::string& dev_id, const std::string& sel #if !BBL_RELEASE_TO_PUBLIC - print_job->m_local_use_ssl_for_ftp = wxGetApp().app_config->get("enable_ssl_for_mqtt") == "true" ? true : false; - print_job->m_local_use_ssl_for_mqtt = wxGetApp().app_config->get("enable_ssl_for_ftp") == "true" ? true : false; + print_job->m_local_use_ssl_for_ftp = wxGetApp().app_config->get("enable_ssl_for_ftp") == "true" ? true : false; + print_job->m_local_use_ssl_for_mqtt = wxGetApp().app_config->get("enable_ssl_for_mqtt") == "true" ? true : false; #else print_job->m_local_use_ssl_for_ftp = obj_->local_use_ssl_for_ftp; print_job->m_local_use_ssl_for_mqtt = obj_->local_use_ssl_for_mqtt;