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
+13
View File
@@ -134,6 +134,13 @@ protected:
wxStaticLine* m_extinguish_line_above = nullptr;;
uiDeviceUpdateVersion* m_extinguish_version = nullptr;
/* nozzle rack (H2C induction hotend rack) — opens wgtDeviceNozzleRackUpgradeDlg */
wxBoxSizer* m_nozzle_rack_sizer = nullptr;
wxStaticBitmap* m_nozzle_rack_img = nullptr;
wxStaticLine* m_nozzle_rack_line_above = nullptr;
wxStaticText* m_nozzle_rack_text = nullptr;
Button* m_nozzle_rack_update_btn = nullptr;
/* upgrade widgets */
wxBoxSizer* m_upgrading_sizer;
wxStaticText * m_staticText_upgrading_info;
@@ -155,6 +162,7 @@ protected:
ScalableBitmap m_img_cutting;
ScalableBitmap m_img_laser;
ScalableBitmap m_img_extinguish;
ScalableBitmap m_img_nozzle_rack;
ScalableBitmap upgrade_gray_icon;
ScalableBitmap upgrade_green_icon;
ScalableBitmap upgrade_yellow_icon;
@@ -212,16 +220,21 @@ private:
void createCuttingWidgets(wxBoxSizer* main_left_sizer);
void createLaserWidgets(wxBoxSizer* main_left_sizer);
void createExtinguishWidgets(wxBoxSizer* main_left_sizer);
void createNozzleRackWidgets(wxBoxSizer* main_left_sizer);
void update_air_pump(MachineObject* obj);
void update_cut(MachineObject* obj);
void update_laszer(MachineObject* obj);
void update_extinguish(MachineObject* obj);
void update_nozzle_rack(MachineObject* obj);
void show_air_pump(bool show = true);
void show_cut(bool show = true);
void show_laszer(bool show = true);
void show_extinguish(bool show = true);
void show_nozzle_rack(bool show = true);
void on_nozzle_rack_update(wxCommandEvent& event);
};
//enum UpgradeMode {