mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-18 11:02:08 +00:00
FIX: something
Change-Id: I2923786337f97f4297b0444522c620891aa2ad90 Jira: STUDIO-9725 filament menu delete icon Jira: STUDIO-9785 StaticGroup border color Jira: STUDIO-9716 update badge icon Jira: STUDIO-9815 click printer/bed panel for combobox Jira: STUDIO-9867 label with for single noozle Jira: STUDIO-9739 ams page up/down (cherry picked from commit 1cde0b844a97f3420db4999927f05a833b92b0fb)
This commit is contained in:
@@ -352,12 +352,14 @@ struct ExtruderGroup : StaticGroup
|
||||
ExtruderGroup(wxWindow * parent, int index, wxString const &title);
|
||||
wxStaticBoxSizer *sizer = nullptr;
|
||||
ScalableButton * btn_edit = nullptr;
|
||||
ComboBox * combo_nozzle = nullptr;
|
||||
ComboBox * combo_flow = nullptr;
|
||||
AMSPreview * ams[4] = {nullptr};
|
||||
wxStaticText *ams_not_installed_msg{nullptr};
|
||||
ScalableButton *up_down_btn{nullptr};
|
||||
ScalableButton * btn_up{nullptr};
|
||||
ScalableButton * btn_down{nullptr};
|
||||
wxBoxSizer *hsizer_ams { nullptr };
|
||||
bool is_upward{false};
|
||||
int page_cur{0};
|
||||
int page_num{3};
|
||||
int ams_n4 = 0;
|
||||
int ams_n1 = 0;
|
||||
|
||||
@@ -375,7 +377,9 @@ struct ExtruderGroup : StaticGroup
|
||||
{
|
||||
if (btn_edit)
|
||||
btn_edit->msw_rescale();
|
||||
combo_nozzle->Rescale();
|
||||
btn_up->msw_rescale();
|
||||
btn_down->msw_rescale();
|
||||
combo_flow->Rescale();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -911,22 +915,22 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title
|
||||
: StaticGroup(parent, wxID_ANY, title)
|
||||
{
|
||||
SetFont(Label::Body_10);
|
||||
SetForegroundColour("#909090");
|
||||
ShowBadge(true);
|
||||
|
||||
// Nozzle
|
||||
wxStaticText *label_nozzle = new wxStaticText(this, wxID_ANY, _L("Flow"));
|
||||
label_nozzle->SetFont(Label::Body_14);
|
||||
label_nozzle->SetForegroundColour("#262E30");
|
||||
auto combo_nozzle = new ComboBox(this, wxID_ANY, wxString(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY);
|
||||
combo_nozzle->GetDropDown().SetUseContentWidth(true);
|
||||
combo_nozzle->Bind(wxEVT_COMBOBOX, [this, index, combo_nozzle](wxCommandEvent &evt) {
|
||||
wxStaticText *label_flow = new wxStaticText(this, wxID_ANY, _L("Flow"));
|
||||
label_flow->SetFont(Label::Body_14);
|
||||
label_flow->SetForegroundColour("#262E30");
|
||||
if (index >= 0) label_flow->SetMinSize({FromDIP(80), -1});
|
||||
auto combo_flow = new ComboBox(this, wxID_ANY, wxString(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY);
|
||||
combo_flow->GetDropDown().SetUseContentWidth(true);
|
||||
combo_flow->Bind(wxEVT_COMBOBOX, [this, index, combo_flow](wxCommandEvent &evt) {
|
||||
auto printer_tab = dynamic_cast<TabPrinter *>(wxGetApp().get_tab(Preset::TYPE_PRINTER));
|
||||
printer_tab->set_extruder_volume_type(index, NozzleVolumeType(intptr_t(combo_nozzle->GetClientData(evt.GetInt()))));
|
||||
printer_tab->set_extruder_volume_type(index, NozzleVolumeType(intptr_t(combo_flow->GetClientData(evt.GetInt()))));
|
||||
if (GUI::wxGetApp().plater())
|
||||
GUI::wxGetApp().plater()->update_machine_sync_status();
|
||||
});
|
||||
this->combo_nozzle = combo_nozzle;
|
||||
this->combo_flow = combo_flow;
|
||||
|
||||
// AMS
|
||||
wxStaticText *label_ams = new wxStaticText(this, wxID_ANY, _L("AMS"));
|
||||
@@ -946,7 +950,7 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title
|
||||
});
|
||||
|
||||
auto hovered = std::make_shared<wxWindow *>();
|
||||
for (wxWindow *w : std::initializer_list<wxWindow *>{this, label_nozzle, combo_nozzle, btn_edit, label_ams}) {
|
||||
for (wxWindow *w : std::initializer_list<wxWindow *>{this, label_flow, combo_flow, btn_edit, label_ams}) {
|
||||
w->Bind(wxEVT_ENTER_WINDOW, [w, hovered, this](wxMouseEvent &evt) { *hovered = w; btn_edit->SetBitmap_("edit"); });
|
||||
w->Bind(wxEVT_LEAVE_WINDOW, [w, hovered, this](wxMouseEvent &evt) { if (*hovered == w) { btn_edit->SetBitmap_("dot"); *hovered = nullptr; } });
|
||||
}
|
||||
@@ -969,15 +973,25 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title
|
||||
if (btn_edit)
|
||||
hsizer_ams->Add(btn_edit, 0, wxLEFT | wxALIGN_CENTER, FromDIP(2));
|
||||
|
||||
up_down_btn = new ScalableButton(this, wxID_ANY, "dot");
|
||||
up_down_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this, index](auto &evt) {
|
||||
is_upward = !is_upward;
|
||||
btn_up = new ScalableButton(this, wxID_ANY, "page_up", "", {-1, FromDIP(14)});
|
||||
btn_up->SetBackgroundColour(*wxWHITE);
|
||||
btn_up->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this, index](auto &evt) {
|
||||
if (page_cur > 0)
|
||||
--page_cur;
|
||||
update_ams();
|
||||
});
|
||||
btn_down = new ScalableButton(this, wxID_ANY, "page_down", "", {-1, FromDIP(14)});
|
||||
btn_down->SetBackgroundColour(*wxWHITE);
|
||||
btn_down->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this, index](auto &evt) {
|
||||
if (page_cur + 1 < page_num)
|
||||
++page_cur;
|
||||
update_ams();
|
||||
});
|
||||
|
||||
|
||||
wxBoxSizer * hsizer_nozzle = new wxBoxSizer(wxHORIZONTAL);
|
||||
hsizer_nozzle->Add(label_nozzle, 2, wxALIGN_CENTER);
|
||||
hsizer_nozzle->Add(combo_nozzle, 3, wxEXPAND);
|
||||
hsizer_nozzle->Add(label_flow, 2, wxALIGN_CENTER);
|
||||
hsizer_nozzle->Add(combo_flow, 3, wxEXPAND);
|
||||
if (index < 0) {
|
||||
label_ams->Hide();
|
||||
ams_not_installed_msg->Hide();
|
||||
@@ -999,8 +1013,8 @@ void ExtruderGroup::update_ams()
|
||||
{
|
||||
int display_capacity = 8;
|
||||
|
||||
if (ams_n4 * 4 + ams_n1 * 2 <= 8)
|
||||
is_upward = false;
|
||||
//if (ams_n4 * 4 + ams_n1 * 2 <= 8)
|
||||
// is_upward = false;
|
||||
|
||||
std::vector<wxColour> colors = {
|
||||
wxColour(255, 110, 100),
|
||||
@@ -1009,7 +1023,7 @@ void ExtruderGroup::update_ams()
|
||||
wxColour(170, 111, 252)
|
||||
};
|
||||
|
||||
bool display_front_ams = !is_upward;
|
||||
bool display_front_ams = false; //!is_upward;
|
||||
size_t i = 0;
|
||||
for (; i < ams_n4 && i < 4; ++i) {
|
||||
display_capacity -= 4;
|
||||
@@ -1051,7 +1065,7 @@ void ExtruderGroup::update_ams()
|
||||
|
||||
if (i == 0) {
|
||||
ams_not_installed_msg->Show();
|
||||
up_down_btn->Hide();
|
||||
btn_up->Hide();
|
||||
for (AMSPreview *a : ams) {
|
||||
a->Close();
|
||||
}
|
||||
@@ -1059,12 +1073,15 @@ void ExtruderGroup::update_ams()
|
||||
ams_not_installed_msg->Hide();
|
||||
for (; i < 4; ++i) { ams[i]->Close(); }
|
||||
if (display_capacity < 0) {
|
||||
up_down_btn->Show();
|
||||
btn_up->Show();
|
||||
} else {
|
||||
up_down_btn->Hide();
|
||||
btn_up->Hide();
|
||||
}
|
||||
}
|
||||
|
||||
btn_up->Show(page_cur > 0);
|
||||
btn_down->Show(page_cur + 1 < page_num);
|
||||
|
||||
while (hsizer_ams->GetItemCount() > 2)
|
||||
hsizer_ams->Remove(2);
|
||||
if (ams_not_installed_msg->IsShown()) {
|
||||
@@ -1076,9 +1093,19 @@ void ExtruderGroup::update_ams()
|
||||
if (ams[i]->IsShown())
|
||||
hsizer_ams->Add(this->ams[i], 0, wxLEFT, FromDIP(4));
|
||||
}
|
||||
if (up_down_btn->IsShown()) {
|
||||
if (btn_up->IsShown() || btn_down->IsShown()) {
|
||||
hsizer_ams->AddStretchSpacer(1);
|
||||
hsizer_ams->Add(up_down_btn, 0, wxALIGN_CENTER);
|
||||
if (btn_up->IsShown() && btn_down->IsShown()) {
|
||||
auto vsizer_btn = new wxBoxSizer(wxVERTICAL);
|
||||
auto size = btn_up->GetSize();
|
||||
vsizer_btn->Add(btn_up, 0);
|
||||
vsizer_btn->Add(btn_down, 0);
|
||||
hsizer_ams->Add(vsizer_btn, 0, wxALIGN_CENTER | wxLEFT, FromDIP(2));
|
||||
} else if (btn_up->IsShown()) {
|
||||
hsizer_ams->Add(btn_up, 0, wxALIGN_CENTER | wxLEFT, FromDIP(2));
|
||||
} else {
|
||||
hsizer_ams->Add(btn_down, 0, wxALIGN_CENTER | wxLEFT, FromDIP(2));
|
||||
}
|
||||
}
|
||||
|
||||
sizer->Layout();
|
||||
@@ -1160,7 +1187,7 @@ void Sidebar::priv::update_sync_status(const MachineObject *obj)
|
||||
auto clear_all_sync_status = [this]() {
|
||||
panel_printer_preset->ShowBadge(false);
|
||||
panel_printer_bed->ShowBadge(false);
|
||||
left_extruder->ShowBadge(false);
|
||||
//left_extruder->ShowBadge(false);
|
||||
right_extruder->ShowBadge(false);
|
||||
single_extruder->ShowBadge(false);
|
||||
};
|
||||
@@ -1413,6 +1440,9 @@ Sidebar::Sidebar(Plater *parent)
|
||||
p->panel_printer_preset->SetCornerRadius(8);
|
||||
p->panel_printer_preset->SetBorderColor(wxColour("#CECECE"));
|
||||
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);
|
||||
});
|
||||
|
||||
ScalableButton *edit_btn = new ScalableButton(p->panel_printer_preset, wxID_ANY, "dot");
|
||||
edit_btn->SetToolTip(_L("Click to edit preset"));
|
||||
@@ -1426,6 +1456,10 @@ Sidebar::Sidebar(Plater *parent)
|
||||
|
||||
ScalableBitmap bitmap_printer(p->panel_printer_preset, "printer_placeholder", 48);
|
||||
p->image_printer = new wxStaticBitmap(p->panel_printer_preset, wxID_ANY, bitmap_printer.bmp(), wxDefaultPosition, PRINTER_THUMBNAIL_SIZE, 0);
|
||||
p->image_printer->Bind(wxEVT_LEFT_DOWN, [this](auto &evt) {
|
||||
p->combo_printer->wxEvtHandler::ProcessEvent(evt);
|
||||
});
|
||||
|
||||
PlaterPresetComboBox *combo_printer = new PlaterPresetComboBox(p->panel_printer_preset, Preset::TYPE_PRINTER);
|
||||
combo_printer->SetWindowStyle(combo_printer->GetWindowStyle() & ~wxALIGN_MASK | wxALIGN_CENTER_HORIZONTAL);
|
||||
combo_printer->SetBorderWidth(0);
|
||||
@@ -1453,6 +1487,9 @@ Sidebar::Sidebar(Plater *parent)
|
||||
p->panel_printer_bed->SetCornerRadius(8);
|
||||
p->panel_printer_bed->SetBorderColor(wxColour("#CECECE"));
|
||||
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);
|
||||
});
|
||||
|
||||
ScalableButton *wiki_bed = new ScalableButton(p->panel_printer_bed, wxID_ANY, "dot");
|
||||
wiki_bed->Bind(wxEVT_BUTTON, [](wxCommandEvent) {
|
||||
@@ -1461,6 +1498,9 @@ Sidebar::Sidebar(Plater *parent)
|
||||
|
||||
ScalableBitmap bitmap_bed(p->panel_printer_bed, "printer_placeholder", 32);
|
||||
p->image_printer_bed = new wxStaticBitmap(p->panel_printer_bed, wxID_ANY, bitmap_bed.bmp(), wxDefaultPosition, wxDefaultSize, 0);
|
||||
p->image_printer_bed->Bind(wxEVT_LEFT_DOWN, [this](auto &evt) {
|
||||
p->combo_printer_bed->wxEvtHandler::ProcessEvent(evt);
|
||||
});
|
||||
|
||||
p->combo_printer_bed = new ComboBox(p->panel_printer_bed, wxID_ANY, wxString(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY | wxALIGN_CENTER_HORIZONTAL);
|
||||
p->combo_printer_bed->SetBorderWidth(0);
|
||||
|
||||
Reference in New Issue
Block a user