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

@ -1,10 +1,10 @@
<svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_16585_40433)">
<path d="M7.21631 13.8672C8.84076 13.8672 10.3987 13.2219 11.5473 12.0732C12.696 10.9246 13.3413 9.36664 13.3413 7.74219C13.3413 6.11774 12.696 4.55982 11.5473 3.41116C10.3987 2.2625 8.84076 1.61719 7.21631 1.61719C5.59186 1.61719 4.03394 2.2625 2.88528 3.41116C1.73662 4.55982 1.09131 6.11774 1.09131 7.74219C1.09131 9.36664 1.73662 10.9246 2.88528 12.0732C4.03394 13.2219 5.59186 13.8672 7.21631 13.8672ZM7.21631 0.742188C9.07282 0.742188 10.8533 1.47969 12.1661 2.79244C13.4788 4.10519 14.2163 5.88567 14.2163 7.74219C14.2163 9.5987 13.4788 11.3792 12.1661 12.6919C10.8533 14.0047 9.07282 14.7422 7.21631 14.7422C5.35979 14.7422 3.57932 14.0047 2.26656 12.6919C0.953807 11.3792 0.216309 9.5987 0.216309 7.74219C0.216309 5.88567 0.953807 4.10519 2.26656 2.79244C3.57932 1.47969 5.35979 0.742188 7.21631 0.742188ZM7.87256 7.74219C7.87256 7.91624 7.80342 8.08316 7.68035 8.20623C7.55728 8.3293 7.39036 8.39844 7.21631 8.39844C7.04226 8.39844 6.87534 8.3293 6.75227 8.20623C6.6292 8.08316 6.56006 7.91624 6.56006 7.74219C6.56006 7.56814 6.6292 7.40122 6.75227 7.27815C6.87534 7.15508 7.04226 7.08594 7.21631 7.08594C7.39036 7.08594 7.55728 7.15508 7.68035 7.27815C7.80342 7.40122 7.87256 7.56814 7.87256 7.74219ZM9.84131 7.08594C10.0154 7.08594 10.1823 7.15508 10.3053 7.27815C10.4284 7.40122 10.4976 7.56814 10.4976 7.74219C10.4976 7.91624 10.4284 8.08316 10.3053 8.20623C10.1823 8.3293 10.0154 8.39844 9.84131 8.39844C9.66726 8.39844 9.50034 8.3293 9.37727 8.20623C9.2542 8.08316 9.18506 7.91624 9.18506 7.74219C9.18506 7.56814 9.2542 7.40122 9.37727 7.27815C9.50034 7.15508 9.66726 7.08594 9.84131 7.08594ZM5.24756 7.74219C5.24756 7.91624 5.17842 8.08316 5.05535 8.20623C4.93228 8.3293 4.76536 8.39844 4.59131 8.39844C4.41726 8.39844 4.25034 8.3293 4.12727 8.20623C4.0042 8.08316 3.93506 7.91624 3.93506 7.74219C3.93506 7.56814 4.0042 7.40122 4.12727 7.27815C4.25034 7.15508 4.41726 7.08594 4.59131 7.08594C4.76536 7.08594 4.93228 7.15508 5.05535 7.27815C5.17842 7.40122 5.24756 7.56814 5.24756 7.74219Z" fill="#6B6B6B"/>
</g>
<defs>
<clipPath id="clip0_16585_40433">
<rect width="14" height="14" fill="white" transform="translate(0.216309 0.742188)"/>
</clipPath>
</defs>
<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_21527_27811)">
<path d="M6.99988 12.2021C8.37959 12.2021 9.70279 11.654 10.6784 10.6784C11.654 9.70279 12.2021 8.37959 12.2021 6.99988C12.2021 5.62017 11.654 4.29697 10.6784 3.32137C9.70279 2.34576 8.37959 1.79768 6.99988 1.79768C5.62017 1.79768 4.29697 2.34576 3.32137 3.32137C2.34576 4.29697 1.79768 5.62017 1.79768 6.99988C1.79768 8.37959 2.34576 9.70279 3.32137 10.6784C4.29697 11.654 5.62017 12.2021 6.99988 12.2021ZM6.99988 0.597168C8.69798 0.597168 10.3265 1.27174 11.5273 2.47248C12.728 3.67322 13.4026 5.30177 13.4026 6.99988C13.4026 8.69798 12.728 10.3265 11.5273 11.5273C10.3265 12.728 8.69798 13.4026 6.99988 13.4026C5.30177 13.4026 3.67322 12.728 2.47248 11.5273C1.27174 10.3265 0.597168 8.69798 0.597168 6.99988C0.597168 5.30177 1.27174 3.67322 2.47248 2.47248C3.67322 1.27174 5.30177 0.597168 6.99988 0.597168ZM7.80022 6.99988C7.80022 7.21214 7.7159 7.41571 7.5658 7.5658C7.41571 7.7159 7.21214 7.80022 6.99988 7.80022C6.78761 7.80022 6.58405 7.7159 6.43395 7.5658C6.28386 7.41571 6.19954 7.21214 6.19954 6.99988C6.19954 6.78761 6.28386 6.58405 6.43395 6.43395C6.58405 6.28386 6.78761 6.19954 6.99988 6.19954C7.21214 6.19954 7.41571 6.28386 7.5658 6.43395C7.7159 6.58405 7.80022 6.78761 7.80022 6.99988ZM9.40089 6.19954C9.61316 6.19954 9.81673 6.28386 9.96682 6.43395C10.1169 6.58405 10.2012 6.78761 10.2012 6.99988C10.2012 7.21214 10.1169 7.41571 9.96682 7.5658C9.81673 7.7159 9.61316 7.80022 9.40089 7.80022C9.18863 7.80022 8.98506 7.7159 8.83497 7.5658C8.68488 7.41571 8.60056 7.21214 8.60056 6.99988C8.60056 6.78761 8.68488 6.58405 8.83497 6.43395C8.98506 6.28386 9.18863 6.19954 9.40089 6.19954ZM5.3992 6.99988C5.3992 7.21214 5.31488 7.41571 5.16479 7.5658C5.01469 7.7159 4.81112 7.80022 4.59886 7.80022C4.3866 7.80022 4.18303 7.7159 4.03294 7.5658C3.88284 7.41571 3.79852 7.21214 3.79852 6.99988C3.79852 6.78761 3.88284 6.58405 4.03294 6.43395C4.18303 6.28386 4.3866 6.19954 4.59886 6.19954C4.81112 6.19954 5.01469 6.28386 5.16479 6.43395C5.31488 6.58405 5.3992 6.78761 5.3992 6.99988Z" fill="#262E30"/>
</g>
<defs>
<clipPath id="clip0_21527_27811">
<rect width="14" height="14" fill="white"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before After
Before After

View file

@ -438,7 +438,7 @@ void ParamsPanel::create_layout()
m_mode_sizer->Add(m_mode_region, 0, wxALIGN_CENTER);
m_mode_sizer->AddSpacer(FromDIP(SidebarProps::ElementSpacing()));
m_mode_sizer->Add(m_tips_arrow, 0, wxALIGN_CENTER);
m_mode_sizer->AddStretchSpacer(8);
m_mode_sizer->AddStretchSpacer(12);
m_mode_sizer->Add( m_title_view, 0, wxALIGN_CENTER );
m_mode_sizer->AddSpacer(FromDIP(SidebarProps::ElementSpacing()));
m_mode_sizer->Add(m_mode_view, 0, wxALIGN_CENTER);
@ -446,7 +446,6 @@ void ParamsPanel::create_layout()
m_mode_sizer->Add(m_setting_btn, 0, wxALIGN_CENTER);
m_mode_sizer->AddSpacer(FromDIP(SidebarProps::IconSpacing()));
m_mode_sizer->Add(m_compare_btn, 0, wxALIGN_CENTER);
m_mode_sizer->AddSpacer(FromDIP(SidebarProps::TitlebarMargin()));
//m_mode_sizer->Add( m_search_btn, 0, wxALIGN_CENTER );
//m_mode_sizer->AddSpacer(16);

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");

View file

@ -6768,7 +6768,7 @@ void Page::activate(ConfigOptionMode mode, std::function<void()> throw_if_cancel
for (auto group : m_optgroups) {
if (!group->activate(throw_if_canceled))
continue;
m_vsizer->Add(group->sizer, 0, wxEXPAND | (group->is_legend_line() ? (wxLEFT|wxTOP) : wxALL), 5);
m_vsizer->Add(group->sizer, 0, wxEXPAND | (group->is_legend_line() ? (wxLEFT|wxTOP) : wxALL), 10);
group->update_visibility(mode);
#if HIDE_FIRST_SPLIT_LINE
if (first) group->stb->Hide();

View file

@ -5,6 +5,7 @@ StaticGroup::StaticGroup(wxWindow *parent, wxWindowID id, const wxString &label)
{
SetBackgroundColour(*wxWHITE);
SetForegroundColour("#CECECE");
borderColor_ = wxColour("#CECECE");
#ifdef __WXMSW__
Bind(wxEVT_PAINT, &StaticGroup::OnPaint, this);
#endif
@ -33,8 +34,12 @@ void StaticGroup::ShowBadge(bool show)
#endif
}
#ifdef __WXMSW__
void StaticGroup::SetBorderColor(const wxColour &color)
{
borderColor_ = color;
}
#ifdef __WXMSW__
void StaticGroup::OnPaint(wxPaintEvent &evt)
{
wxStaticBox::OnPaint(evt);
@ -62,7 +67,7 @@ void StaticGroup::PaintForeground(wxDC &dc, const struct tagRECT &rc)
while (image.GetBlue(0, bottom) == blue) --bottom;
// Draw border with foreground color
wxPoint polygon[] = { {left, top}, {0, top}, {0, bottom}, {rc.right - 1, bottom}, {rc.right - 1, top}, {right, top} };
dc.SetPen(wxPen(GetForegroundColour(), 1));
dc.SetPen(wxPen(borderColor_, 1));
for (int i = 1; i < 6; ++i) {
if (i == 4) // fix bottom right corner
++polygon[i - 1].y;

View file

@ -12,7 +12,7 @@ public:
public:
void ShowBadge(bool show);
void SetBorderColor(const wxColour &color);
private:
#ifdef __WXMSW__
void OnPaint(wxPaintEvent &evt);
@ -26,6 +26,7 @@ private:
#ifdef __WXOSX__
ScalableButton * badge { nullptr };
#endif
wxColour borderColor_;
};
#endif // !slic3r_GUI_StaticGroup_hpp_