diff --git a/src/slic3r/GUI/Auxiliary.cpp b/src/slic3r/GUI/Auxiliary.cpp index ffec3279b..680bcbb6c 100644 --- a/src/slic3r/GUI/Auxiliary.cpp +++ b/src/slic3r/GUI/Auxiliary.cpp @@ -73,11 +73,11 @@ AuFile::AuFile(wxWindow *parent, fs::path file_path, wxString file_name, Auxilia } image->Rescale(size.x, size.y); - m_file_bitmap = wxBitmap(*image); + m_file_bitmap.bmp() = wxBitmap(*image); } else { - m_bitmap_excel = create_scaled_bitmap("placeholder_excel", nullptr, 168); - m_bitmap_pdf = create_scaled_bitmap("placeholder_pdf", nullptr, 168); - m_bitmap_txt = create_scaled_bitmap("placeholder_txt", nullptr, 168); + m_bitmap_excel = ScalableBitmap(this, "placeholder_excel", 168); + m_bitmap_pdf = ScalableBitmap(this, "placeholder_pdf", 168); + m_bitmap_txt = ScalableBitmap(this, "placeholder_txt", 168); if (m_type == OTHERS) {m_file_bitmap = m_bitmap_txt;} if (m_type == BILL_OF_MATERIALS) { @@ -210,7 +210,7 @@ void AuFile::PaintBackground(wxDC &dc) dc.SetPen(AUFILE_GREY200); dc.SetBrush(AUFILE_GREY200); dc.DrawRoundedRectangle(0, 0, size.x, size.y, AUFILE_ROUNDING); - dc.DrawBitmap(m_file_bitmap, (size.x - m_file_bitmap.GetSize().x) / 2, (size.y - m_file_bitmap.GetSize().y) / 2); + dc.DrawBitmap(m_file_bitmap.bmp(), (size.x - m_file_bitmap.GetBmpWidth()) / 2, (size.y - m_file_bitmap.GetBmpHeight()) / 2); } } @@ -328,7 +328,7 @@ void AuFile::on_input_enter(wxCommandEvent &evt) wxString new_fullname_path = dir.wstring() + "/" + new_fullname; - fs::path new_dir_path(new_fullname_path); + fs::path new_dir_path(new_fullname_path.c_str()); if (fs::exists(new_dir_path)) existing = true; @@ -540,11 +540,11 @@ void AuFile::msw_rescale() } image->Rescale(size.x, size.y); - m_file_bitmap = wxBitmap(*image); + m_file_bitmap.bmp() = wxBitmap(*image); } else { - m_bitmap_excel = create_scaled_bitmap("placeholder_excel", nullptr, 168); - m_bitmap_pdf = create_scaled_bitmap("placeholder_pdf", nullptr, 168); - m_bitmap_txt = create_scaled_bitmap("placeholder_txt", nullptr, 168); + m_bitmap_excel = ScalableBitmap(this, "placeholder_excel", 168); + m_bitmap_pdf = ScalableBitmap(this, "placeholder_pdf", 168); + m_bitmap_txt = ScalableBitmap(this, "placeholder_txt", 168); if (m_type == OTHERS) { m_file_bitmap = m_bitmap_txt; } if (m_type == BILL_OF_MATERIALS) { m_file_bitmap = m_bitmap_excel; } diff --git a/src/slic3r/GUI/Auxiliary.hpp b/src/slic3r/GUI/Auxiliary.hpp index f2cc491c3..b9ef3332d 100644 --- a/src/slic3r/GUI/Auxiliary.hpp +++ b/src/slic3r/GUI/Auxiliary.hpp @@ -91,14 +91,14 @@ public: wxString cover_text_left; wxString cover_text_right; wxString cover_text_cover; - wxBitmap m_file_bitmap; + ScalableBitmap m_file_bitmap; ScalableBitmap m_file_cover; ScalableBitmap m_file_edit_mask; ScalableBitmap m_file_delete; - wxBitmap m_bitmap_excel; - wxBitmap m_bitmap_pdf; - wxBitmap m_bitmap_txt; + ScalableBitmap m_bitmap_excel; + ScalableBitmap m_bitmap_pdf; + ScalableBitmap m_bitmap_txt; public: AuFile(wxWindow *parent, fs::path file_path, wxString file_name, AuxiliaryFolderType type, wxWindowID id = wxID_ANY, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxTAB_TRAVERSAL); diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 27f5c9e5c..353b46eaa 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -11,7 +11,6 @@ #include "MsgDialog.hpp" #include "Plater.hpp" #include "GUI_App.hpp" -#include "nlohmann/json.hpp" #include #include #include @@ -21,7 +20,6 @@ #include #include -using namespace nlohmann; namespace pt = boost::property_tree; @@ -259,63 +257,34 @@ wxString HMSItem::get_hms_msg_level_str(HMSMessageLevel level) return ""; } -PRINTER_TYPE MachineObject::parse_printer_type(std::string type_str) +std::string MachineObject::parse_printer_type(std::string type_str) { - if (type_str.compare("3DPrinter-P1") == 0) { - return PRINTER_TYPE::PRINTER_3DPrinter_P1; - } else if (type_str.compare("3DPrinter-X1") == 0) { - return PRINTER_TYPE::PRINTER_3DPrinter_X1; + if (type_str.compare("3DPrinter-X1") == 0) { + return "BL-P002"; } else if (type_str.compare("3DPrinter-X1-Carbon") == 0) { - return PRINTER_TYPE::PRINTER_3DPrinter_X1_Carbon; - } - - BOOST_LOG_TRIVIAL(trace) << "unknown printer type: " << type_str; - return PRINTER_TYPE::PRINTER_3DPrinter_UKNOWN; -} - -PRINTER_TYPE MachineObject::parse_iot_printer_type(std::string type_str) -{ - if (type_str.compare("BL-P003") == 0) { - return PRINTER_TYPE::PRINTER_3DPrinter_P1; - } else if (type_str.compare("BL-P002") == 0) { - return PRINTER_TYPE::PRINTER_3DPrinter_X1; + return "BL-P001"; } else if (type_str.compare("BL-P001") == 0) { - return PRINTER_TYPE::PRINTER_3DPrinter_X1_Carbon; - } - - BOOST_LOG_TRIVIAL(trace) << "unknown printer type: " << type_str; - return PRINTER_TYPE::PRINTER_3DPrinter_UKNOWN; -} - -PRINTER_TYPE MachineObject::parse_preset_printer_type(std::string type_str) -{ - return parse_iot_printer_type(type_str); -} - -std::string MachineObject::get_preset_printer_model_name(PRINTER_TYPE printer_type) -{ - if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_P1) { - return "Bambu Lab P1"; - } else if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_X1) { - return "Bambu Lab X1"; - } else if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_X1_Carbon) { - return "Bambu Lab X1 Carbon"; + return type_str; + } else if (type_str.compare("BL-P003") == 0) { + return type_str; } else { - return ""; + return DeviceManager::parse_printer_type(type_str); } + return ""; } - +std::string MachineObject::get_preset_printer_model_name(std::string printer_type) +{ + return DeviceManager::get_printer_display_name(printer_type); +} wxString MachineObject::get_printer_type_display_str() { - if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_P1) - return "Bambu Lab P1"; - else if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_X1) - return "Bambu Lab X1"; - else if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_X1_Carbon) - return "Bambu Lab X1 Carbon"; - return _L("Unknown"); + std::string display_name = get_preset_printer_model_name(printer_type); + if (!display_name.empty()) + return display_name; + else + return _L("Unknown"); } void MachineObject::set_access_code(std::string code) @@ -335,17 +304,6 @@ bool MachineObject::is_lan_mode_printer() return result; } -std::string MachineObject::get_printer_type_string() -{ - if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_P1) - return "3DPrinter-P1"; - else if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_X1) - return "3DPrinter-X1"; - else if (printer_type == PRINTER_TYPE::PRINTER_3DPrinter_X1_Carbon) - return "3DPrinter-X1-Carbon"; - return "3DPrinter"; -} - MachineObject::MachineObject(NetworkAgent* agent, std::string name, std::string id, std::string ip) :dev_name(name), dev_id(id), @@ -1695,6 +1653,40 @@ bool MachineObject::is_info_ready() return false; } +bool MachineObject::is_function_supported(PrinterFunction func) +{ + std::string func_name; + switch (func) { + case FUNC_MONITORING: + func_name = "FUNC_MONITORING"; + break; + case FUNC_TIMELAPSE: + func_name = "FUNC_TIMELAPSE"; + break; + case FUNC_RECORDING: + func_name = "FUNC_RECORDING"; + break; + case FUNC_FIRSTLAYER_INSPECT: + func_name = "FUNC_FIRSTLAYER_INSPECT"; + break; + case FUNC_SPAGHETTI: + func_name = "FUNC_SPAGHETTI"; + break; + case FUNC_FLOW_CALIBRATION: + func_name = "FUNC_FLOW_CALIBRATION"; + break; + case FUNC_AUTO_LEVELING: + func_name = "FUNC_AUTO_LEVELING"; + break; + case FUNC_CHAMBER_TEMP: + func_name = "FUNC_CHAMBER_TEMP"; + break; + default: + return true; + } + return DeviceManager::is_function_supported(printer_type, func_name); +} + int MachineObject::publish_json(std::string json_str, int qos) { if (is_lan_mode_printer()) { @@ -3058,7 +3050,7 @@ void DeviceManager::parse_user_print_info(std::string body) if (!elem["dev_online"].is_null()) obj->m_is_online = elem["dev_online"].get(); if (elem.contains("dev_model_name") && !elem["dev_model_name"].is_null()) - obj->printer_type = MachineObject::parse_iot_printer_type(elem["dev_model_name"].get()); + obj->printer_type = elem["dev_model_name"].get(); if (!elem["task_status"].is_null()) obj->iot_print_status = elem["task_status"].get(); if (elem.contains("dev_product_name") && !elem["dev_product_name"].is_null()) @@ -3137,4 +3129,67 @@ void DeviceManager::load_last_machine() } } +json DeviceManager::function_table = json::object(); + +std::string DeviceManager::parse_printer_type(std::string type_str) +{ + if (DeviceManager::function_table.contains("printers")) { + for (auto printer : DeviceManager::function_table["printers"]) { + if (printer.contains("model_id") && printer["model_id"].get() == type_str) { + if (printer.contains("printer_type")) { + return printer["printer_type"].get(); + } + } + } + } + return ""; +} + +std::string DeviceManager::get_printer_display_name(std::string type_str) +{ + if (DeviceManager::function_table.contains("printers")) { + for (auto printer : DeviceManager::function_table["printers"]) { + if (printer.contains("model_id") && printer["model_id"].get() == type_str) { + if (printer.contains("display_name")) { + return printer["display_name"].get(); + } + } + } + } + return ""; +} + +bool DeviceManager::is_function_supported(std::string type_str, std::string function_name) +{ + if (DeviceManager::function_table.contains("printers")) { + for (auto printer : DeviceManager::function_table["printers"]) { + if (printer.contains("model_id") && printer["model_id"].get() == type_str) { + if (printer.contains("func")) { + if (printer["func"].contains(function_name)) + return printer["func"][function_name].get(); + } + } + } + } + return true; +} + +bool DeviceManager::load_functional_config(std::string config_file) +{ + std::ifstream json_file(config_file.c_str()); + try { + if (json_file.is_open()) { + json_file >> DeviceManager::function_table; + return true; + } else { + BOOST_LOG_TRIVIAL(error) << "load functional config failed, file = " << config_file; + } + } + catch(...) { + BOOST_LOG_TRIVIAL(error) << "load functional config failed, file = " << config_file; + return false; + } + return true; +} + } // namespace Slic3r diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index e2759981f..a78f7a189 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -7,6 +7,7 @@ #include #include #include +#include "nlohmann/json.hpp" #include "libslic3r/ProjectTask.hpp" #include "slic3r/Utils/json_diff.hpp" #include "slic3r/Utils/NetworkAgent.hpp" @@ -32,17 +33,10 @@ inline int correct_filament_temperature(int filament_temp) wxString get_stage_string(int stage); +using namespace nlohmann; namespace Slic3r { -enum PRINTER_TYPE { - PRINTER_3DPrinter_UKNOWN, - PRINTER_3DPrinter_NONE, - PRINTER_3DPrinter_X1_Carbon, // BL-P001 - PRINTER_3DPrinter_X1, // BL-P002 - PRINTER_3DPrinter_P1, // BL-P003 -}; - enum PRINTING_STAGE { PRINTING_STAGE_PRINTING = 0, PRINTING_STAGE_BED_LEVELING, @@ -62,6 +56,18 @@ enum PRINTING_STAGE { PRINTING_STAGE_COUNT }; +enum PrinterFunction { + FUNC_MONITORING = 0, + FUNC_TIMELAPSE, + FUNC_RECORDING, + FUNC_FIRSTLAYER_INSPECT, + FUNC_SPAGHETTI, + FUNC_FLOW_CALIBRATION, + FUNC_AUTO_LEVELING, + FUNC_CHAMBER_TEMP, + FUNC_MAX +}; + enum PrintingSpeedLevel { SPEED_LEVEL_INVALID = 0, @@ -301,10 +307,8 @@ public: /* static members and functions */ static inline int m_sequence_id = 20000; - static PRINTER_TYPE parse_printer_type(std::string type_str); - static PRINTER_TYPE parse_iot_printer_type(std::string type_str); - static PRINTER_TYPE parse_preset_printer_type(std::string type_str); - static std::string get_preset_printer_model_name(PRINTER_TYPE printer_type); + static std::string parse_printer_type(std::string type_str); + static std::string get_preset_printer_model_name(std::string printer_type); static bool is_bbl_filament(std::string tag_uid); typedef std::function UploadedFn; @@ -322,8 +326,8 @@ public: bool has_access_right() { return !access_code.empty(); } void set_access_code(std::string code); bool is_lan_mode_printer(); - PRINTER_TYPE printer_type = PRINTER_3DPrinter_UKNOWN; - std::string get_printer_type_string(); + //PRINTER_TYPE printer_type = PRINTER_3DPrinter_UKNOWN; + std::string printer_type; /* model_id */ wxString get_printer_type_display_str(); std::string product_name; // set by iot service, get /user/print @@ -574,6 +578,7 @@ public: void set_online_state(bool on_off); bool is_online() { return m_is_online; } bool is_info_ready(); + bool is_function_supported(PrinterFunction func); /* Msg for display MsgFn */ @@ -636,6 +641,13 @@ public: // get alive machine std::map get_local_machine_list(); void load_last_machine(); + + static json function_table; + static std::string parse_printer_type(std::string type_str); + static std::string get_printer_display_name(std::string type_str); + static bool is_function_supported(std::string type_str, std::string function_name); + + static bool load_functional_config(std::string config_file); }; } // namespace Slic3r diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index b08509b96..572215d7d 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1092,6 +1092,9 @@ void GUI_App::post_init() if (hms_query) hms_query->check_hms_info(); }); + + std::string functional_config_file = Slic3r::resources_dir() + "/config.json"; + DeviceManager::load_functional_config(encode_path(functional_config_file.c_str())); BOOST_LOG_TRIVIAL(info) << "finished post_init"; //BBS: remove the single instance currently diff --git a/src/slic3r/GUI/PrintOptionsDialog.cpp b/src/slic3r/GUI/PrintOptionsDialog.cpp index 2b43c0864..3c84646e5 100644 --- a/src/slic3r/GUI/PrintOptionsDialog.cpp +++ b/src/slic3r/GUI/PrintOptionsDialog.cpp @@ -75,6 +75,26 @@ void PrintOptionsDialog::update_spaghetti() void PrintOptionsDialog::update_options(MachineObject *obj_) { if (!obj_) return; + if (obj_->is_function_supported(PrinterFunction::FUNC_FIRSTLAYER_INSPECT)) { + text_first_layer->Show(); + m_cb_first_layer->Show(); + } else { + text_first_layer->Hide(); + m_cb_first_layer->Hide(); + } + + if (obj_->is_function_supported(PrinterFunction::FUNC_SPAGHETTI)) { + text_spaghetti->Show(); + m_cb_spaghetti->Show(); + m_cb_spaghetti_print_halt->Show(); + text_spaghetti_print_halt->Show(); + }else { + text_spaghetti->Hide(); + m_cb_spaghetti->Hide(); + m_cb_spaghetti_print_halt->Hide(); + text_spaghetti_print_halt->Hide(); + } + this->Freeze(); m_cb_spaghetti->SetValue(obj_->xcam_spaghetti_detector); m_cb_spaghetti_print_halt->SetValue(obj_->xcam_spaghetti_print_halt); @@ -88,7 +108,7 @@ wxBoxSizer* PrintOptionsDialog::create_settings_group(wxWindow* parent) auto sizer = new wxBoxSizer(wxVERTICAL); auto line_sizer = new wxBoxSizer(wxHORIZONTAL); m_cb_spaghetti = new CheckBox(parent); - auto text_spaghetti = new wxStaticText(parent, wxID_ANY, _L("Spaghetti Detection")); + text_spaghetti = new wxStaticText(parent, wxID_ANY, _L("Spaghetti Detection")); text_spaghetti->SetFont(Label::Body_14); line_sizer->Add(FromDIP(5), 0, 0, 0); line_sizer->Add(m_cb_spaghetti, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5)); @@ -112,7 +132,7 @@ wxBoxSizer* PrintOptionsDialog::create_settings_group(wxWindow* parent) line_sizer = new wxBoxSizer(wxHORIZONTAL); m_cb_first_layer = new CheckBox(parent); - auto text_first_layer = new wxStaticText(parent, wxID_ANY, _L("First Layer Inspection")); + text_first_layer = new wxStaticText(parent, wxID_ANY, _L("First Layer Inspection")); text_first_layer->SetFont(Label::Body_14); line_sizer->Add(FromDIP(5), 0, 0, 0); line_sizer->Add(m_cb_first_layer, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5)); diff --git a/src/slic3r/GUI/PrintOptionsDialog.hpp b/src/slic3r/GUI/PrintOptionsDialog.hpp index 21fa1843b..14fb97e9c 100644 --- a/src/slic3r/GUI/PrintOptionsDialog.hpp +++ b/src/slic3r/GUI/PrintOptionsDialog.hpp @@ -24,6 +24,8 @@ protected: CheckBox* m_cb_first_layer; CheckBox* m_cb_spaghetti; CheckBox* m_cb_spaghetti_print_halt; + wxStaticText* text_first_layer; + wxStaticText* text_spaghetti; wxStaticText* text_spaghetti_print_halt; wxBoxSizer* create_settings_group(wxWindow* parent); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 31bf025f5..2c1bec16d 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1043,26 +1043,18 @@ wxWindow *SelectMachineDialog::create_item_checkbox(wxString title, wxWindow *pa return checkbox; } -void SelectMachineDialog::update_select_layout(PRINTER_TYPE type) +void SelectMachineDialog::update_select_layout(MachineObject *obj) { - if (type == PRINTER_TYPE::PRINTER_3DPrinter_UKNOWN) { - select_bed->Show(); + if (obj && obj->is_function_supported(PrinterFunction::FUNC_FLOW_CALIBRATION)) { select_flow->Show(); - } else if (type == PRINTER_TYPE::PRINTER_3DPrinter_X1) { - select_bed->Show(); - select_flow->Show(); - } else if (type == PRINTER_TYPE::PRINTER_3DPrinter_X1_Carbon) { - select_bed->Show(); - select_flow->Show(); - } else if (type == PRINTER_TYPE::PRINTER_3DPrinter_P1) { - select_bed->Show(); - select_flow->Show(false); - } else if (type == PRINTER_TYPE::PRINTER_3DPrinter_NONE) { - select_bed->Hide(); - select_flow->Hide(); } else { + select_flow->Hide(); + } + + if (obj && obj->is_function_supported(PrinterFunction::FUNC_AUTO_LEVELING)) { select_bed->Show(); - select_flow->Show(); + } else { + select_bed->Hide(); } Fit(); @@ -1753,7 +1745,7 @@ void SelectMachineDialog::update_user_printer() } else { m_printer_last_select = ""; - update_select_layout(PRINTER_TYPE::PRINTER_3DPrinter_NONE); + update_select_layout(nullptr); m_comboBox_printer->SetTextLabel(""); } @@ -1798,7 +1790,7 @@ void SelectMachineDialog::on_selection_changed(wxCommandEvent &event) if (obj) { obj->command_get_version(); dev->set_selected_machine(m_printer_last_select); - update_select_layout(obj->printer_type); + update_select_layout(obj); } else { BOOST_LOG_TRIVIAL(error) << "on_selection_changed dev_id not found"; return; diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index 20a33e454..b41e1a69e 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -328,7 +328,7 @@ public: ~SelectMachineDialog(); wxWindow *create_item_checkbox(wxString title, wxWindow *parent, wxString tooltip, std::string param); - void update_select_layout(PRINTER_TYPE type); + void update_select_layout(MachineObject *obj); void prepare_mode(); void sending_mode(); void finish_mode(); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index fe4fc54ac..00f0644ea 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1313,14 +1313,41 @@ void StatusPanel::update(MachineObject *obj) } calibration_dlg->update_cali(obj); - if (print_options_dlg == nullptr) { - print_options_dlg = new PrintOptionsDialog(this); - print_options_dlg->update_machine_obj(obj); + + if (obj->is_function_supported(PrinterFunction::FUNC_FIRSTLAYER_INSPECT) + || obj->is_function_supported(PrinterFunction::FUNC_SPAGHETTI)) { + m_options_btn->Show(); + if (print_options_dlg == nullptr) { + print_options_dlg = new PrintOptionsDialog(this); + print_options_dlg->update_machine_obj(obj); + } else { + print_options_dlg->update_machine_obj(obj); + } + print_options_dlg->update_options(obj); } else { - print_options_dlg->update_machine_obj(obj); + m_options_btn->Hide(); } - print_options_dlg->update_options(obj); - + + if (obj->is_function_supported(PrinterFunction::FUNC_TIMELAPSE)) { + m_timelapse_button->Show(); + } else { + m_timelapse_button->Hide(); + } + + if (obj->is_function_supported(PrinterFunction::FUNC_RECORDING)) { + m_recording_button->Show(); + } else { + m_recording_button->Hide(); + } + + if (obj->is_function_supported(PrinterFunction::FUNC_CHAMBER_TEMP)) { + m_tempCtrl_frame->Enable(); + } else { + m_tempCtrl_frame->SetLabel(TEMP_BLANK_STR); + m_tempCtrl_frame->GetTextCtrl()->SetLabel(TEMP_BLANK_STR); + m_tempCtrl_frame->Disable(); + } + update_error_message(); } @@ -2362,6 +2389,11 @@ void StatusPanel::set_default() m_show_ams_group = false; reset_printing_values(); + m_timelapse_button->Show(); + m_recording_button->Show(); + m_tempCtrl_frame->Show(); + m_options_btn->Show(); + reset_temp_misc_control(); m_ams_control->Hide(); m_ams_control_box->Hide();