FIX: fix plater UI

Jira: 10520
Change-Id: Iec4401862d1c28df45067dc9b545dafe1341eb35
(cherry picked from commit 94ceedf97faf2b99e104489e73de0e72c4d27fca)
This commit is contained in:
Mixian
2025-02-25 17:49:18 +08:00
committed by Noisyfox
parent 7e98754e9b
commit 00579388b1
6 changed files with 61 additions and 53 deletions

View File

@@ -506,57 +506,58 @@ void Sidebar::priv::layout_printer(bool isBBL, bool isDual)
sizer == nullptr || isDual != (sizer->GetOrientation() == wxVERTICAL)) {
wxBoxSizer *hsizer_printer_btn = new wxBoxSizer(wxHORIZONTAL);
hsizer_printer_btn->AddStretchSpacer(1);
hsizer_printer_btn->Add(btn_edit_printer, 0, wxALIGN_CENTER | wxLEFT, FromDIP(4));
hsizer_printer_btn->Add(btn_edit_printer, 0);
hsizer_printer_btn->Add(btn_connect_printer, 0, wxALIGN_CENTER | wxLEFT, FromDIP(4));
combo_printer->SetWindowStyle(combo_printer->GetWindowStyle() & ~wxALIGN_MASK | (isDual ? wxALIGN_CENTER_HORIZONTAL : wxALIGN_RIGHT));
if (isDual) {
wxBoxSizer *vsizer = new wxBoxSizer(wxVERTICAL);
vsizer->AddStretchSpacer(1);
wxBoxSizer *hsizer = new wxBoxSizer(wxHORIZONTAL);
hsizer->AddStretchSpacer(1);
hsizer->Add(image_printer, 0);
hsizer->Add(hsizer_printer_btn, 1, wxRIGHT, FromDIP(12));
vsizer->Add(hsizer, 0, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, FromDIP(4));
hsizer->Add(image_printer, 1, wxEXPAND | wxTOP, FromDIP(8));
hsizer->Add(hsizer_printer_btn, 1, wxEXPAND, 0);
vsizer->AddSpacer(FromDIP(4));
vsizer->Add(hsizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(8));
vsizer->Add(combo_printer, 0, wxEXPAND | wxALL, FromDIP(4));
vsizer->AddStretchSpacer(1);
panel_printer_preset->SetSizer(vsizer);
} else {
wxBoxSizer *hsizer = new wxBoxSizer(wxHORIZONTAL);
hsizer->Add(image_printer, 0, wxLEFT | wxALIGN_CENTER, FromDIP(4));
wxBoxSizer *vsizer = new wxBoxSizer(wxVERTICAL);
vsizer->AddSpacer(FromDIP(4));
vsizer->Add(hsizer_printer_btn, 1, wxEXPAND | wxRIGHT, FromDIP(16));
vsizer->Add(combo_printer, 0, wxEXPAND | wxLEFT, FromDIP(4));
vsizer->AddStretchSpacer(1);
vsizer->AddSpacer(FromDIP(4));
hsizer->Add(vsizer, 1, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(4));
hsizer->Add(combo_printer, 1, wxALIGN_CENTRE | wxLEFT | wxRIGHT, FromDIP(6));
hsizer->Add(hsizer_printer_btn, 0, wxALIGN_TOP | wxTOP | wxRIGHT, FromDIP(4));
hsizer->AddSpacer(FromDIP(4));
panel_printer_preset->SetSizer(hsizer);
}
}
if (vsizer_printer->GetItemCount() == 0) {
wxBoxSizer *hsizer_printer = new wxBoxSizer(wxHORIZONTAL);
hsizer_printer->Add(panel_printer_preset, 1, wxEXPAND);
hsizer_printer->Add(panel_printer_preset, 1, wxEXPAND, 0);
hsizer_printer->Add(panel_printer_bed, 0, wxLEFT | wxEXPAND, FromDIP(4));
hsizer_printer->Add(btn_sync_printer, 0, wxLEFT | wxEXPAND, FromDIP(4));
vsizer_printer->Add(hsizer_printer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(4));
vsizer_printer->AddSpacer(FromDIP(4));
// Printer - extruder
// double
auto hsizer_extruder = new wxBoxSizer(wxHORIZONTAL);
hsizer_extruder->AddSpacer(FromDIP(4));
hsizer_extruder->Add(left_extruder->sizer, 1, wxEXPAND);
hsizer_extruder->Add(right_extruder->sizer, 1, wxLEFT | wxEXPAND, FromDIP(4));
hsizer_extruder->AddSpacer(FromDIP(4));
// single
vsizer_printer->Add(hsizer_extruder, 0, wxEXPAND | wxLEFT, 0);
vsizer_printer->Add(single_extruder->sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(4));
vsizer_printer->Add(hsizer_printer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(4));
vsizer_printer->Add(hsizer_extruder, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(4));
vsizer_printer->Add(single_extruder->sizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, FromDIP(4));
vsizer_printer->AddSpacer(FromDIP(4));
}
btn_connect_printer->Show(!isBBL);
btn_sync_printer->Show(isDual);
panel_printer_bed->Show(isBBL);
vsizer_printer->GetItem(1)->GetSizer()->GetItem(1)->Show(isDual);
vsizer_printer->GetItem(1)->Show(isBBL && isDual);
vsizer_printer->GetItem(2)->Show(isBBL && !isDual);
vsizer_printer->GetItem(2)->GetSizer()->GetItem(1)->Show(isDual);
vsizer_printer->GetItem(2)->Show(isBBL && isDual);
vsizer_printer->GetItem(3)->Show(isBBL && !isDual);
}
void Sidebar::priv::flush_printer_sync(bool restart)
@@ -941,8 +942,9 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title
: StaticGroup(parent, wxID_ANY, title)
{
SetFont(Label::Body_10);
SetForegroundColour(wxColour(0xCECECE));
SetBorderColor(wxColour(0xEEEEEE));
ShowBadge(true);
// Nozzle
wxStaticText *label_flow = new wxStaticText(this, wxID_ANY, _L("Flow"));
label_flow->SetFont(Label::Body_14);
@@ -984,8 +986,8 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title
// AMS not installed message
ams_not_installed_msg = new wxStaticText(this, wxID_ANY, _L("Not installed"));
label_ams->SetFont(Label::Body_14);
label_ams->SetForegroundColour("#262E30");
ams_not_installed_msg->SetFont(Label::Body_14);
ams_not_installed_msg->SetForegroundColour("#262E30");
// AMS group
for (size_t i = 0; i < 4; ++i) {
@@ -1032,7 +1034,6 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title
vsizer->Add(hsizer_nozzle, 0, wxEXPAND | wxALL, FromDIP(4));
this->sizer = vsizer;
}
AMSCountPopupWindow::UpdateAMSCount(index < 0 ? 0 : index, this);
}
@@ -1486,9 +1487,13 @@ Sidebar::Sidebar(Plater *parent)
p->m_panel_printer_content = new wxPanel(p->scrolled, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
p->m_panel_printer_content->SetBackgroundColour(wxColour(255, 255, 255));
StateColor panel_bd_col(std::pair<wxColour, int>(wxColour(0x00AE42), StateColor::Pressed),
std::pair<wxColour, int>(wxColour(0x00AE42), StateColor::Hovered),
std::pair<wxColour, int>(wxColour(0xEEEEEE), StateColor::Normal));
p->panel_printer_preset = new StaticBox(p->m_panel_printer_content);
p->panel_printer_preset->SetCornerRadius(8);
p->panel_printer_preset->SetBorderColor(wxColour("#CECECE"));
p->panel_printer_preset->SetBorderColor(panel_bd_col);
p->panel_printer_preset->SetMinSize(PRINTER_PANEL_SIZE_SMALL);
p->panel_printer_preset->Bind(wxEVT_LEFT_DOWN, [this](auto & evt) {
p->combo_printer->wxEvtHandler::ProcessEvent(evt);
@@ -1535,7 +1540,7 @@ Sidebar::Sidebar(Plater *parent)
// Bed type selection
p->panel_printer_bed = new StaticBox(p->m_panel_printer_content);
p->panel_printer_bed->SetCornerRadius(8);
p->panel_printer_bed->SetBorderColor(wxColour("#CECECE"));
p->panel_printer_bed->SetBorderColor(panel_bd_col);
p->panel_printer_bed->SetMinSize(PRINTER_PANEL_SIZE_SMALL);
p->panel_printer_bed->Bind(wxEVT_LEFT_DOWN, [this](auto &evt) {
p->combo_printer_bed->wxEvtHandler::ProcessEvent(evt);
@@ -1582,19 +1587,17 @@ Sidebar::Sidebar(Plater *parent)
});
p->image_printer_bed->Bind(wxEVT_LEAVE_WINDOW, [this](wxMouseEvent &evt) { p->big_bed_image_popup->on_hide(); });
wxBoxSizer *bed_type_sizer = new wxBoxSizer(wxVERTICAL);
bed_type_sizer->AddStretchSpacer(1);
wxBoxSizer *bed_type_vsizer = new wxBoxSizer(wxVERTICAL);
bed_type_vsizer->AddStretchSpacer(1);
wxBoxSizer *bed_type_hsizer = new wxBoxSizer(wxHORIZONTAL);
wxBoxSizer *bed_type_hsizer2 = new wxBoxSizer(wxHORIZONTAL);
bed_type_hsizer2->AddStretchSpacer(1);
bed_type_hsizer2->Add(wiki_bed, 0, wxLEFT, FromDIP(4));
bed_type_hsizer->Add(bed_type_hsizer2, 1);
bed_type_hsizer->Add(p->image_printer_bed, 0);
bed_type_hsizer->AddStretchSpacer(1);
bed_type_sizer->Add(bed_type_hsizer, 0, wxALIGN_CENTER | wxLEFT | wxTOP | wxRIGHT, FromDIP(2));
bed_type_sizer->Add(p->combo_printer_bed, 0, wxEXPAND | wxALL, FromDIP(2));
bed_type_sizer->AddStretchSpacer(1);
p->panel_printer_bed->SetSizer(bed_type_sizer);
bed_type_hsizer->Add(p->image_printer_bed, 1, wxEXPAND | wxTOP, FromDIP(8));
bed_type_hsizer->Add(wiki_bed, 1, wxTOP, FromDIP(2));
bed_type_vsizer->Add(bed_type_hsizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(8));
bed_type_vsizer->Add(p->combo_printer_bed, 0, wxEXPAND | wxALL, FromDIP(2));
bed_type_vsizer->AddStretchSpacer(1);
p->panel_printer_bed->SetSizer(bed_type_vsizer);
AppConfig *app_config = wxGetApp().app_config;
std::string str_bed_type = app_config->get("curr_bed_type");