Make AMS trays read-only in laser mode and add the gradient fill helper

This commit is contained in:
SoftFever
2026-07-17 05:06:09 +08:00
parent 7265a2fbfe
commit 50abe02f18
9 changed files with 65 additions and 8 deletions
+13
View File
@@ -927,6 +927,7 @@ void AMSControl::UpdateAms(const std::string &series_name,
std::vector<AMSinfo> ext_info,
DevExtderSystem data,
std::string dev_id,
MachineObject* obj,
bool is_reset,
bool test)
{
@@ -996,6 +997,18 @@ void AMSControl::UpdateAms(const std::string &series_name,
}
}
// 2D mode (laser/cut) makes every spool view-only: show the read-only (eye) icon while the spool
// stays clickable to open the read-only filament dialog.
// Orca: gated on the device mode via MachineObject::is_fdm_type(); obj is null for callers that do
// not supply it, leaving spools editable.
const bool view_only = obj && !obj->is_fdm_type();
for (auto ams_item : m_ams_item_list) {
if (ams_item.second == nullptr) { continue; }
for (auto lib_it : ams_item.second->get_can_lib_list()) {
if (lib_it.second) { lib_it.second->set_view_only(view_only); }
}
}
for (auto ams_prv : m_ams_preview_list) {
std::string id = ams_prv.second->get_ams_id();
auto item = m_ams_item_list.find(id);