diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 2228bdde81..f76b428d8c 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1675,6 +1675,21 @@ bool MachineObject::is_studio_cmd(int sequence_id) return false; } +bool MachineObject::canEnableTimelapse() const +{ + if (!is_support_timelapse) + { + return false; + } + + if (is_support_internal_timelapse) + { + return true; + } + + return sdcard_state == MachineObject::SdcardState::HAS_SDCARD_NORMAL; +} + int MachineObject::command_select_extruder(int id) { BOOST_LOG_TRIVIAL(info) << "select_extruder"; @@ -5745,6 +5760,7 @@ void MachineObject::parse_new_info(json print) is_support_user_preset = get_flag_bits(fun, 11); is_support_nozzle_blob_detection = get_flag_bits(fun, 13); is_support_upgrade_kit = get_flag_bits(fun, 14); + is_support_internal_timelapse = get_flag_bits(fun, 28); is_support_command_homing = get_flag_bits(fun, 32); } diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 46be6ae345..f2a621c5eb 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -982,6 +982,7 @@ public: bool is_support_agora{false}; bool is_support_upgrade_kit{false}; bool is_support_filament_setting_inprinting{false}; + bool is_support_internal_timelapse { false };// fun[28], support timelapse without SD card bool is_support_command_homing { false };// fun[32] bool installed_upgrade_kit{false}; @@ -1047,6 +1048,9 @@ public: void parse_version_func(); bool is_studio_cmd(int seq); + /* quick check*/ + bool canEnableTimelapse() const; + /* command commands */ int command_get_version(bool with_retry = true); int command_request_push_all(bool request_now = false); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 2eb54bd857..e7392be942 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -975,9 +975,16 @@ void SelectMachineDialog::update_select_layout(MachineObject *obj) if (obj && obj->is_support_auto_leveling) { m_checkbox_list["bed_leveling"]->Show(); } - if (obj && obj->is_support_timelapse) { + + /*STUDIO-9197*/ + if (obj && obj->canEnableTimelapse()) + { m_checkbox_list["timelapse"]->Show(); } + else + { + m_checkbox_list["timelapse"]->Hide(); + } Layout(); Fit();