Merge branch 'main' into dev/ams-heat

# Conflicts:
#	src/libslic3r/Preset.cpp
#	src/libslic3r/PrintConfig.hpp
#	src/slic3r/GUI/DeviceCore/CMakeLists.txt
#	src/slic3r/GUI/DeviceCore/DevDefs.h
#	src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp
#	src/slic3r/GUI/DeviceCore/DevFilaSystem.h
#	src/slic3r/GUI/DeviceCore/DevUtilBackend.cpp
#	src/slic3r/GUI/DeviceCore/DevUtilBackend.h
#	src/slic3r/GUI/DeviceManager.cpp
#	src/slic3r/GUI/DeviceManager.hpp
#	src/slic3r/GUI/SelectMachine.cpp
#	src/slic3r/GUI/SelectMachine.hpp
This commit is contained in:
Noisyfox
2026-07-14 10:10:19 +08:00
702 changed files with 85605 additions and 2732 deletions
+14
View File
@@ -13,6 +13,7 @@
#include <wx/hyperlink.h>
#include <wx/animate.h>
#include <wx/dynarray.h>
#include <tuple>
#include "slic3r/GUI/DeviceCore/DevExtruderSystem.h"
#include "slic3r/GUI/AMSDryControl.hpp"
@@ -52,8 +53,16 @@ protected:
int m_total_ext_count = 1;
AMSextruder *m_extruder{nullptr};
SwitcherImage *m_switcher{nullptr}; // Orca: filament-switch routing glyph (hidden unless a switch is installed)
AMSRoadDownPart* m_down_road{ nullptr };
// Orca: "AMS not initialized" warning banner, materialized lazily only when a switch needs it (see show_switcher_status)
wxBoxSizer* m_sizer_body{nullptr};
wxPanel* tipPanel{nullptr};
wxBoxSizer* tipSizer{nullptr};
wxStaticBitmap* icon{nullptr};
wxStaticText* tipText{nullptr};
/*items*/
wxBoxSizer* m_sizer_ams_items{nullptr};
wxScrolledWindow* m_panel_prv_left {nullptr};
@@ -153,6 +162,11 @@ public:
void StopRridLoading(wxString amsid, wxString canid);
void ShowFilamentTip(bool hasams = true);
// Orca: Filament Track Switch awareness. isFilaSwitchReady() resolves the selected machine and
// returns {installed, ready}; show_switcher_status() toggles the "AMS not initialized" banner.
std::tuple<bool, bool> isFilaSwitchReady();
void show_switcher_status(bool show);
void UpdatePassRoad(string ams_id, AMSPassRoadType type, AMSPassRoadSTEP step);
void CreateAms();
void CreateAmsDoubleNozzle(const std::string &series_name, const std::string& printer_type);