From ee83a907c7a118bbad130253db68278c21022278 Mon Sep 17 00:00:00 2001 From: QIDI TECH <893239786@qq.com> Date: Mon, 11 Aug 2025 09:43:55 +0800 Subject: [PATCH] fix some bug --- .../GUI/FrequentlyChangedParameters.cpp | 6 +- src/slic3r/GUI/Plater.cpp | 5 +- src/slic3r/GUI/Plater.hpp | 2 + src/slic3r/GUI/SyncBoxInfoDialog.cpp | 68 +++++++++++-------- src/slic3r/GUI/SyncBoxInfoDialog.hpp | 9 ++- src/slic3r/GUI/Widgets/SwitchButton.cpp | 10 --- 6 files changed, 57 insertions(+), 43 deletions(-) diff --git a/src/slic3r/GUI/FrequentlyChangedParameters.cpp b/src/slic3r/GUI/FrequentlyChangedParameters.cpp index 129012b..8d93e45 100644 --- a/src/slic3r/GUI/FrequentlyChangedParameters.cpp +++ b/src/slic3r/GUI/FrequentlyChangedParameters.cpp @@ -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; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 0c5824f..303e00b 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -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(); diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 9354f6d..7b1afb0 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -68,6 +68,8 @@ struct Box_msg { std::vector 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; }; diff --git a/src/slic3r/GUI/SyncBoxInfoDialog.cpp b/src/slic3r/GUI/SyncBoxInfoDialog.cpp index 1d960db..76d31f4 100644 --- a/src/slic3r/GUI/SyncBoxInfoDialog.cpp +++ b/src/slic3r/GUI/SyncBoxInfoDialog.cpp @@ -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(95, 82, 253), StateColor::Pressed), - std::pair(wxColour(129, 150, 255), StateColor::Hovered), - std::pair(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(this->FindWindowById(wxID_OK, this)); + m_button_cancel = static_cast(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) @@ -362,4 +372,4 @@ void GetBoxInfoDialog::load_box_list(){ wxGetApp().preset_bundle->filament_box_list = filament_box_list; } -}} // namespace Slic3r \ No newline at end of file +}} // namespace Slic3r diff --git a/src/slic3r/GUI/SyncBoxInfoDialog.hpp b/src/slic3r/GUI/SyncBoxInfoDialog.hpp index ea8513b..0bb3576 100644 --- a/src/slic3r/GUI/SyncBoxInfoDialog.hpp +++ b/src/slic3r/GUI/SyncBoxInfoDialog.hpp @@ -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 m_printer_ip; + //y28 + std::vector 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 diff --git a/src/slic3r/GUI/Widgets/SwitchButton.cpp b/src/slic3r/GUI/Widgets/SwitchButton.cpp index cff9fcf..e779915 100644 --- a/src/slic3r/GUI/Widgets/SwitchButton.cpp +++ b/src/slic3r/GUI/Widgets/SwitchButton.cpp @@ -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__