diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 7f0a7b113..70c9d0cd7 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2469,6 +2469,11 @@ int MachineObject::parse_json(std::string payload) if (jj.contains("gcode_state")) { this->set_print_state(jj["gcode_state"].get()); } + if (jj.contains("queue_number")) { + this->queue_number = jj["queue_number"].get(); + } else { + this->queue_number = 0; + } if (jj.contains("task_id")) { this->task_id_ = jj["task_id"].get(); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 5464309aa..51d087f21 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -605,7 +605,8 @@ public: void parse_status(int flag); /* printing status */ - std::string print_status; /* enum string: FINISH, RUNNING, PAUSE, INIT, FAILED */ + std::string print_status; /* enum string: FINISH, SLICING, RUNNING, PAUSE, INIT, FAILED */ + int queue_number = 0; std::string iot_print_status; /* iot */ PrintingSpeedLevel printing_speed_lvl; int printing_speed_mag = 100; diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 109fd1647..3d85d412c 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -2256,9 +2256,13 @@ void StatusPanel::update_subtask(MachineObject *obj) wxString prepare_text; if (obj->is_in_prepare()) prepare_text = wxString::Format(_L("Downloading...")); - else if (obj->print_status == "SLICING") - prepare_text = wxString::Format(_L("Cloud Slicing...")); - else + else if (obj->print_status == "SLICING") { + if (obj->queue_number <= 0) { + prepare_text = wxString::Format(_L("Cloud Slicing...")); + } else { + prepare_text = wxString::Format(_L("In Cloud Slicing Queue, there are %s tasks ahead."), std::to_string(obj->queue_number)); + } + } else prepare_text = wxString::Format(_L("Downloading...")); if (obj->gcode_file_prepare_percent >= 0 && obj->gcode_file_prepare_percent <= 100)