feat(gui): multi-nozzle UI for H2C/A2L

Multi-nozzle sync widget, AMS rack-nozzle mapping popup, calibration rework, send-dialog nozzle mapping and extruder-count UI. Includes the fix to persist the AMS sync badge on filament cards (H2C/A2L and direct-sync printers).
This commit is contained in:
SoftFever
2026-07-09 01:16:26 +08:00
parent a098b483f6
commit 28b7127150
52 changed files with 6136 additions and 250 deletions
+12
View File
@@ -50,6 +50,7 @@ namespace GUI {
// Previous definitions
class MessageDialog;
class wgtDeviceNozzleRack;
enum CameraRecordingStatus {
RECORDING_NONE,
@@ -518,11 +519,16 @@ protected:
bool m_show_ams_group{false};
bool m_show_filament_group{ false };
/* AMS control box <-> live nozzle-rack panel toggle (rack printers only) */
SwitchBoard* m_ams_rack_switch{ nullptr };
AMSControl* m_ams_control;
StaticBox* m_ams_control_box;
wxStaticBitmap *m_ams_extruder_img;
wxStaticBitmap* m_bitmap_extruder_img;
wgtDeviceNozzleRack* m_panel_nozzle_rack{ nullptr };
wxPanel * m_panel_separator_right;
wxPanel * m_panel_separotor_bottom;
wxGridBagSizer *m_tasklist_info_sizer{nullptr};
@@ -611,6 +617,11 @@ public:
void show_ams_group(bool show = true);
void show_filament_load_group(bool show = true);
MediaPlayCtrl* get_media_play_ctrl() {return m_media_play_ctrl;};
void jump_to_Rack();
private:
void on_ams_rack_switch(wxCommandEvent& event);
};
@@ -767,6 +778,7 @@ protected:
void update_temp_ctrl(MachineObject *obj);
void update_misc_ctrl(MachineObject *obj);
void update_ams(MachineObject* obj);
void update_rack(MachineObject* obj);
void update_filament_loading_panel(MachineObject* obj);
void update_extruder_status(MachineObject* obj);