diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 090b8e248..fc1d63627 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1677,6 +1677,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"; @@ -5683,6 +5698,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); } /*aux*/ diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index ddbb0d376..3e49bd189 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -964,6 +964,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 installed_upgrade_kit{false}; int bed_temperature_limit = -1; @@ -1025,6 +1026,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 ca2ebb1ec..ba4c8b118 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1009,9 +1009,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();