fix some bug

This commit is contained in:
QIDI TECH
2025-08-11 09:43:55 +08:00
parent cc57492e35
commit ee83a907c7
6 changed files with 57 additions and 43 deletions

View File

@@ -324,12 +324,14 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent)
auto sizer = new wxBoxSizer(wxHORIZONTAL);
sizer->Add(sync_btn, 0, wxALIGN_CENTER_VERTICAL);
sync_btn->Bind(wxEVT_BUTTON, [parent](wxCommandEvent& e){
//y25
//y25 y28
std::string ph_host = "";
std::string ph_api_key = "";
bool has_select_printer = wxGetApp().preset_bundle->physical_printers.has_selection();
if (has_select_printer) {
PhysicalPrinter& ph_printer = wxGetApp().preset_bundle->physical_printers.get_selected_printer();
ph_host = ph_printer.config.opt_string("print_host");
ph_api_key = ph_printer.config.opt_string("printhost_apikey");
}
GetBoxInfoDialog dlg(wxGetApp().plater());
@@ -337,7 +339,7 @@ FreqChangedParams::FreqChangedParams(wxWindow* parent)
dlg.ShowModal();
}
else{
dlg.synchronize_by_ip(ph_host);
dlg.synchronize_by_ip(ph_host, ph_api_key);
}
});
return sizer;

View File

@@ -7404,6 +7404,8 @@ void Plater::send_gcode()
}
std::string sync_ip = box_msg.box_list_printer_ip;
//y28
std::string sync_api_key = box_msg.box_list_printer_api_key;
bool has_diff = false;
@@ -7418,7 +7420,8 @@ void Plater::send_gcode()
QIDINetwork qidi;
wxString msg = "";
GUI::Box_info filament_info;
filament_info = qidi.get_box_info(msg, sync_ip);
//y28
filament_info = qidi.get_box_info(msg, sync_ip, sync_api_key);
GUI::Box_info cur_box_info;
cur_box_info = get_cur_box_info();

View File

@@ -68,6 +68,8 @@ struct Box_msg {
std::vector<std::string> filament_type;
std::string box_list_preset_name;
std::string box_list_printer_ip;
//y28
std::string box_list_printer_api_key;
int box_count = 0;
int auto_reload_detect = 0;
};

View File

@@ -25,7 +25,6 @@ namespace Slic3r { namespace GUI {
SetIcon(wxIcon(icon_path.c_str(), wxBITMAP_TYPE_ICO));
Freeze();
SetBackgroundColour(m_colour_def_color);
m_sizer_main = new wxBoxSizer(wxVERTICAL);
m_sizer_main->SetMinSize(wxSize(0, -1));
@@ -39,17 +38,20 @@ namespace Slic3r { namespace GUI {
m_stext_printer_title = new wxStaticText(this, wxID_ANY, _L("Printer"), wxDefaultPosition, wxSize(-1, -1), 0);
m_stext_printer_title->SetFont(::Label::Head_14);
m_stext_printer_title->Wrap(-1);
m_stext_printer_title->SetForegroundColour(m_colour_bold_color);
m_stext_printer_title->SetBackgroundColour(m_colour_def_color);
m_comboBox_printer = new ::ComboBox(this, wxID_ANY, "", wxDefaultPosition, wxSize(FromDIP(250), 20), 0, nullptr, wxCB_READONLY);
m_sizer_printer->Add(m_stext_printer_title, 0, wxALIGN_CENTER | wxALL, FromDIP(5));
m_sizer_printer->Add(0, 0, 0, wxEXPAND | wxALIGN_CENTER | wxLEFT, FromDIP(12));
m_sizer_printer->Add(m_comboBox_printer, 1, wxEXPAND | wxALIGN_CENTER | wxALL, FromDIP(5));
wxPanel* switch_button_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxTAB_TRAVERSAL | wxBU_RIGHT);
wxBoxSizer* sizer_switch_area = new wxBoxSizer(wxHORIZONTAL);
switch_button_panel->SetBackgroundColour((wxColour("#FFFFFF")));
//y28
#ifdef _WIN32
bool is_dark = wxGetApp().app_config->get_bool("dark_color_mode");
switch_button_panel->SetBackgroundColour(is_dark ? wxColour(43, 43, 43) : wxColour(255, 255, 255));
#endif
m_switch_button = new SwitchButton(switch_button_panel);
m_switch_button->SetMaxSize(wxSize(100, 100));
m_switch_button->SetLabels(_L("Local"), _L("Link"));
@@ -61,6 +63,8 @@ namespace Slic3r { namespace GUI {
m_comboBox_printer->SetValue("");
m_comboBox_printer->Clear();
m_printer_ip.clear();
//y28
m_printer_api_key.clear();
PresetBundle& preset_bundle = *wxGetApp().preset_bundle;
PhysicalPrinterCollection& ph_printers = wxGetApp().preset_bundle->physical_printers;
std::string preset_typename = NormalizeVendor(preset_bundle.printers.get_edited_preset().name);
@@ -71,6 +75,8 @@ namespace Slic3r { namespace GUI {
if (preset_typename.find(NormalizeVendor(printer_preset)) != std::string::npos) {
m_comboBox_printer->Append(from_u8(printer_name));
m_printer_ip.push_back((it->config.opt_string("print_host")));
//y28
m_printer_api_key.push_back((it->config.opt_string("printhost_apikey")));
}
}
m_comboBox_printer->SetSelection(0);
@@ -102,23 +108,16 @@ namespace Slic3r { namespace GUI {
switch_button_panel->Layout();
m_sizer_printer->Add(switch_button_panel, 0, wxALL | wxALIGN_CENTER, FromDIP(5));
wxBoxSizer* m_sizer_btn = new wxBoxSizer(wxHORIZONTAL);
btn_bg_enable = StateColor(
std::pair<wxColour, int>(wxColour(95, 82, 253), StateColor::Pressed),
std::pair<wxColour, int>(wxColour(129, 150, 255), StateColor::Hovered),
std::pair<wxColour, int>(wxColour(68, 121, 251), StateColor::Normal));
m_button_sync = new wxButton(this, wxID_ANY, _L("Sync"), wxDefaultPosition, wxSize(60, 25), wxBU_EXACTFIT);
wxGetApp().UpdateDarkUI(m_button_sync, true);
//y28
wxStdDialogButtonSizer* btns = this->CreateStdDialogButtonSizer(wxOK | wxCANCEL);
m_button_sync = static_cast<wxButton*>(this->FindWindowById(wxID_OK, this));
m_button_cancel = static_cast<wxButton*>(this->FindWindowById(wxID_CANCEL, this));
m_button_sync->Bind(wxEVT_BUTTON, &GetBoxInfoDialog::synchronization, this);
m_button_cancel = new wxButton(this, wxID_ANY, _L("Cancel"), wxDefaultPosition, wxSize(60, 25), wxBU_EXACTFIT);
wxGetApp().UpdateDarkUI(m_button_cancel, true);
m_button_cancel->Bind(wxEVT_BUTTON, &GetBoxInfoDialog::cancel, this);
m_sizer_btn->AddStretchSpacer();
m_sizer_btn->Add(m_button_sync, 0, wxALIGN_RIGHT | wxALL, FromDIP(5));
m_sizer_btn->Add(m_button_cancel, 0, wxALIGN_RIGHT | wxALL, FromDIP(5));
m_button_sync->Bind(wxEVT_BUTTON, &GetBoxInfoDialog::cancel, this);
#ifdef _WIN32
wxGetApp().UpdateDarkUI(m_button_sync);
wxGetApp().UpdateDarkUI(m_button_cancel);
#endif
m_sizer_main->Add(m_line_top, 0, wxEXPAND | wxTOP, FromDIP(0));
m_sizer_main->AddSpacer(FromDIP(10));
@@ -126,7 +125,7 @@ namespace Slic3r { namespace GUI {
m_sizer_main->AddSpacer(FromDIP(15));
m_sizer_main->Add(m_sizer_printer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
m_sizer_main->AddSpacer(FromDIP(25));
m_sizer_main->Add(m_sizer_btn, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
m_sizer_main->Add(btns, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
m_sizer_main->AddSpacer(FromDIP(10));
SetSizer(m_sizer_main);
@@ -162,19 +161,27 @@ void GetBoxInfoDialog::synchronization(wxCommandEvent &event)
#if QDT_RELEASE_TO_PUBLIC
int selected_idx = m_comboBox_printer->GetSelection();
std::string printer_ip = m_printer_ip[selected_idx];
//y28
std::string printer_api_key = "";
if(!m_printer_api_key.empty())
printer_api_key = m_printer_api_key[selected_idx];
m_sync_printer_ip = printer_ip;
m_sync_printer_api_key = printer_api_key;
QIDINetwork qidi;
wxString msg = "";
bool has_box = qidi.get_box_state(msg, printer_ip);
//y28
bool has_box = qidi.get_box_state(msg, printer_ip, printer_api_key);
if (!has_box) {
WarningDialog(this, _L("This Printer has not connect the box, please check.")).ShowModal();
}
else {
//Get Box_info
GUI::Box_info filament_info;
filament_info = qidi.get_box_info(msg, printer_ip);
filament_info = qidi.get_box_info(msg, printer_ip, printer_api_key);
m_plater->current_box_info = filament_info;
qidi.get_color_filament_str(msg, filament_info, printer_ip);
qidi.get_color_filament_str(msg, filament_info, printer_ip, printer_api_key);
generate_filament_id(filament_info);
syn_box_info = std::move(filament_info);
update_filament_info(filament_info);
@@ -190,23 +197,25 @@ void GetBoxInfoDialog::synchronization(wxCommandEvent &event)
#endif
}
void GetBoxInfoDialog::synchronize_by_ip(std::string ip)
//y28
void GetBoxInfoDialog::synchronize_by_ip(std::string ip, std::string api_key)
{
#if QDT_RELEASE_TO_PUBLIC
m_sync_printer_ip = ip;
m_sync_printer_api_key = api_key;
QIDINetwork qidi;
wxString msg = "";
bool has_box = qidi.get_box_state(msg, m_sync_printer_ip);
bool has_box = qidi.get_box_state(msg, m_sync_printer_ip, m_sync_printer_api_key);
if (!has_box) {
WarningDialog(this, _L("This Printer has not connect the box, please check.")).ShowModal();
}
else {
//Get Box_info
GUI::Box_info filament_info;
filament_info = qidi.get_box_info(msg, m_sync_printer_ip);
filament_info = qidi.get_box_info(msg, m_sync_printer_ip, m_sync_printer_api_key);
m_plater->current_box_info = filament_info;
qidi.get_color_filament_str(msg, filament_info, m_sync_printer_ip);
qidi.get_color_filament_str(msg, filament_info, m_sync_printer_ip, m_sync_printer_api_key);
generate_filament_id(filament_info);
syn_box_info = filament_info;
update_filament_info(filament_info);
@@ -260,6 +269,7 @@ void GetBoxInfoDialog::update_filament_info(GUI::Box_info& machine_filament_info
m_plater->box_msg.box_list_preset_name = preset_name_box;
m_plater->box_msg.box_list_printer_ip = m_sync_printer_ip;
m_plater->box_msg.box_list_printer_api_key = m_sync_printer_api_key;
}
void GetBoxInfoDialog::cancel(wxCommandEvent &event)

View File

@@ -26,7 +26,10 @@ public:
GetBoxInfoDialog(Plater* plater = nullptr);
~GetBoxInfoDialog();
void synchronization(wxCommandEvent &event);
void synchronize_by_ip(std::string ip);
//y28
void synchronize_by_ip(std::string ip, std::string api_key);
void cancel(wxCommandEvent &event);
void on_dpi_changed(const wxRect& suggested_rect) override;
void init_printer_combox();
@@ -37,6 +40,8 @@ public:
void load_box_list();
std::vector<std::string> m_printer_ip;
//y28
std::vector<std::string> m_printer_api_key;
private:
Plater* m_plater{ nullptr };
@@ -52,6 +57,8 @@ private:
bool m_isNetMode;
GUI::Box_info syn_box_info;
std::string m_sync_printer_ip;
//y28
std::string m_sync_printer_api_key;
};
}} // namespace Slic3r::GUI

View File

@@ -137,19 +137,9 @@ void SwitchButton::Rescale()
}
memdc.SetTextForeground(text_color.colorForStates(state ^ StateColor::Checked));
auto text_y = BS + (thumbSize.y - textSize[0].y) / 2;
#ifdef __APPLE__
if (Slic3r::is_mac_version_15()) {
text_y -= FromDIP(2);
}
#endif
memdc.DrawText(labels[0], {BS + (thumbSize.x - textSize[0].x) / 2, text_y});
memdc.SetTextForeground(text_color2.count() == 0 ? text_color.colorForStates(state) : text_color2.colorForStates(state));
auto text_y_1 = BS + (thumbSize.y - textSize[1].y) / 2;
#ifdef __APPLE__
if (Slic3r::is_mac_version_15()) {
text_y_1 -= FromDIP(2);
}
#endif
memdc.DrawText(labels[1], {trackSize.x - thumbSize.x - BS + (thumbSize.x - textSize[1].x) / 2, text_y_1});
memdc.SelectObject(wxNullBitmap);
#ifdef __WXOSX__