mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-01-06 14:57:50 -07:00
ENH: if nothing selected then disable aplly btn && update plate index parse
Jira: [STUDIO-13299] Change-Id: I1ce7271d005f7fec4d71ece9db13916a9fcc1e1d (cherry picked from commit b2386964814dee68a1936da912eea339f5317ddc)
This commit is contained in:
parent
7d147cc550
commit
ddf6ed00c5
3 changed files with 63 additions and 24 deletions
|
|
@ -2988,7 +2988,7 @@ int MachineObject::parse_json(std::string payload, bool key_field_only)
|
|||
}
|
||||
}
|
||||
}
|
||||
if (j_pre["print"].contains("plate_idx") && m_plate_index == -1){
|
||||
if (j_pre["print"].contains("plate_idx")){ // && m_plate_index == -1
|
||||
m_plate_index = j_pre["print"]["plate_idx"].get<int>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,33 @@ namespace Slic3r { namespace GUI {
|
|||
extern wxString hide_passwd(wxString url, std::vector<wxString> const &passwords);
|
||||
extern void refresh_agora_url(char const *device, char const *dev_ver, char const *channel, void *context, void (*callback)(void *context, char const *url));
|
||||
|
||||
StateColor percent_bg(std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Disabled),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Pressed),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Enabled),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Normal));
|
||||
|
||||
static StateColor zoom_bg(std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Disabled),
|
||||
std::pair<wxColour, int>(wxColour(206, 206, 206), StateColor::Pressed),
|
||||
std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Enabled),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Normal));
|
||||
|
||||
static StateColor zoom_bd(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
|
||||
static StateColor zoom_text(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
|
||||
|
||||
static StateColor btn_bg_white(std::pair<wxColour, int>(wxColour(206, 206, 206), StateColor::Pressed),
|
||||
std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(*wxWHITE, StateColor::Normal));
|
||||
|
||||
static StateColor btn_bg_gray(std::pair<wxColour, int>(wxColour(194, 194, 194), StateColor::Pressed),
|
||||
std::pair<wxColour, int>(wxColour(194, 194, 194), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(194, 194, 194), StateColor::Normal));
|
||||
|
||||
static StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed),
|
||||
std::pair<wxColour, int>(wxColour(61, 203, 115), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(0, 177, 66), StateColor::Normal));
|
||||
|
||||
PartSkipDialog::PartSkipDialog(wxWindow *parent) : DPIDialog(parent, wxID_ANY, _L("Skip Objects"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)
|
||||
{
|
||||
std::time_t t = std::time(0);
|
||||
|
|
@ -70,12 +97,7 @@ PartSkipDialog::PartSkipDialog(wxWindow *parent) : DPIDialog(parent, wxID_ANY, _
|
|||
m_canvas_btn_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
m_canvas_btn_sizer->SetMinSize(wxSize(-1, FromDIP(28)));
|
||||
|
||||
StateColor zoom_bg(std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Disabled), std::pair<wxColour, int>(wxColour(206, 206, 206), StateColor::Pressed),
|
||||
std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered), std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Enabled),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Normal));
|
||||
zoom_bg.setTakeFocusedAsHovered(false);
|
||||
StateColor zoom_bd(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
|
||||
StateColor zoom_text(std::pair<wxColour, int>(wxColour(144, 144, 144), StateColor::Disabled), std::pair<wxColour, int>(wxColour(38, 46, 48), StateColor::Enabled));
|
||||
|
||||
m_zoom_out_btn = new Button(m_book_third_panel, wxEmptyString);
|
||||
m_zoom_out_btn->SetIcon("canvas_zoom_out");
|
||||
|
|
@ -85,9 +107,6 @@ PartSkipDialog::PartSkipDialog(wxWindow *parent) : DPIDialog(parent, wxID_ANY, _
|
|||
m_zoom_out_btn->SetCornerRadius(0);
|
||||
m_zoom_out_btn->SetMinSize(wxSize(FromDIP(56), FromDIP(28)));
|
||||
|
||||
StateColor percent_bg(std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Disabled), std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Pressed),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Hovered), std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Enabled),
|
||||
std::pair<wxColour, int>(wxColour(255, 255, 255), StateColor::Normal));
|
||||
m_percent_label = new Button(m_book_third_panel, _L("100 %"));
|
||||
m_percent_label->SetBackgroundColor(percent_bg);
|
||||
m_percent_label->SetBorderColor(wxColour(238, 238, 238));
|
||||
|
|
@ -164,20 +183,15 @@ PartSkipDialog::PartSkipDialog(wxWindow *parent) : DPIDialog(parent, wxID_ANY, _
|
|||
m_tot_label->SetBackgroundColour(*wxWHITE);
|
||||
m_tot_label->SetMinSize(wxSize(FromDIP(200), FromDIP(20)));
|
||||
|
||||
StateColor btn_bg_white(std::pair<wxColour, int>(wxColour(206, 206, 206), StateColor::Pressed), std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(*wxWHITE, StateColor::Normal));
|
||||
|
||||
StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed), std::pair<wxColour, int>(wxColour(61, 203, 115), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(wxColour(0, 177, 66), StateColor::Normal));
|
||||
|
||||
m_apply_btn = new Button(m_book_third_panel, _L("Skip"));
|
||||
m_apply_btn->SetBackgroundColor(btn_bg_green);
|
||||
m_apply_btn->SetBackgroundColor(btn_bg_gray);
|
||||
m_apply_btn->SetTextColor(*wxWHITE);
|
||||
// m_apply_btn->SetBorderColor(wxColour(38, 46, 48));
|
||||
m_apply_btn->SetFont(Label::Body_14);
|
||||
m_apply_btn->SetSize(wxSize(FromDIP(80), FromDIP(32)));
|
||||
m_apply_btn->SetMinSize(wxSize(FromDIP(80), FromDIP(32)));
|
||||
m_apply_btn->SetCornerRadius(FromDIP(16));
|
||||
m_apply_btn->Enable(false);
|
||||
|
||||
m_canvas_sizer->Add(m_canvas, 0, wxLEFT | wxTOP | wxEXPAND, FromDIP(17));
|
||||
m_canvas_sizer->Add(m_canvas_btn_sizer, 0, wxTOP, FromDIP(8));
|
||||
|
|
@ -194,12 +208,12 @@ PartSkipDialog::PartSkipDialog(wxWindow *parent) : DPIDialog(parent, wxID_ANY, _
|
|||
m_dlg_content_sizer->Add(m_list_sizer, 0, wxRIGHT | wxEXPAND, FromDIP(14));
|
||||
|
||||
m_dlg_btn_sizer->Add(0, 0, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(21));
|
||||
m_dlg_btn_sizer->Add(m_cnt_label, 0, wxALIGN_CENTER_VERTICAL, FromDIP(0) );
|
||||
#ifdef __WXMSW__
|
||||
m_dlg_btn_sizer->Add(m_tot_label, 0, wxLEFT |wxTOP| wxALIGN_CENTER_VERTICAL, FromDIP(2));
|
||||
#else
|
||||
m_dlg_btn_sizer->Add(m_tot_label, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
#endif
|
||||
m_dlg_btn_sizer->Add(m_cnt_label, 0, wxALIGN_CENTER_VERTICAL, FromDIP(0));
|
||||
#ifdef __WXMSW__
|
||||
m_dlg_btn_sizer->Add(m_tot_label, 0, wxLEFT | wxTOP | wxALIGN_CENTER_VERTICAL, FromDIP(2));
|
||||
#else
|
||||
m_dlg_btn_sizer->Add(m_tot_label, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
#endif
|
||||
m_dlg_btn_sizer->Add(0, 0, 1, wxEXPAND | wxALIGN_CENTER_VERTICAL, FromDIP(0));
|
||||
m_dlg_btn_sizer->Add(m_apply_btn, 0, wxALIGN_CENTER_VERTICAL, FromDIP(0));
|
||||
m_dlg_btn_sizer->Add(0, 0, 0, wxLEFT | wxEXPAND | wxALIGN_CENTER_VERTICAL, FromDIP(24));
|
||||
|
|
@ -289,7 +303,7 @@ PartSkipDialog::PartSkipDialog(wxWindow *parent) : DPIDialog(parent, wxID_ANY, _
|
|||
m_apply_btn->Bind(wxEVT_BUTTON, &PartSkipDialog::OnApplyDialog, this);
|
||||
m_all_checkbox->Bind(wxEVT_TOGGLEBUTTON, &PartSkipDialog::OnAllCheckbox, this);
|
||||
|
||||
Layout();
|
||||
Layout();
|
||||
Fit();
|
||||
CentreOnParent();
|
||||
}
|
||||
|
|
@ -635,6 +649,8 @@ void PartSkipDialog::UpdatePartsStateFromCanvas(wxCommandEvent &event)
|
|||
m_parts_state[part_id] = part_state;
|
||||
if (part_state == psUnCheck) { m_all_checkbox->SetValue(false); }
|
||||
if (IsAllChecked()) { m_all_checkbox->SetValue(true); }
|
||||
|
||||
UpdateApplyButtonStatus();
|
||||
UpdateDialogUI();
|
||||
}
|
||||
|
||||
|
|
@ -715,6 +731,7 @@ void PartSkipDialog::InitDialogUI()
|
|||
}
|
||||
m_canvas->UpdatePartsInfo(GetPartsInfo());
|
||||
UpdateCountLabel();
|
||||
UpdateApplyButtonStatus();
|
||||
event.Skip();
|
||||
},
|
||||
checkbox->GetId());
|
||||
|
|
@ -821,6 +838,14 @@ bool PartSkipDialog::IsAllChecked()
|
|||
return true;
|
||||
}
|
||||
|
||||
bool PartSkipDialog::IsAllCancled()
|
||||
{
|
||||
for (auto &[part_id, part_state] : m_parts_state) {
|
||||
if (part_state == PartState::psChecked) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void PartSkipDialog::OnAllCheckbox(wxCommandEvent &event)
|
||||
{
|
||||
if (m_all_checkbox->GetValue()) {
|
||||
|
|
@ -832,11 +857,23 @@ void PartSkipDialog::OnAllCheckbox(wxCommandEvent &event)
|
|||
if (part_state == PartState::psChecked) part_state = PartState::psUnCheck;
|
||||
}
|
||||
}
|
||||
UpdateApplyButtonStatus();
|
||||
m_canvas->UpdatePartsInfo(GetPartsInfo());
|
||||
UpdateDialogUI();
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void PartSkipDialog::UpdateApplyButtonStatus()
|
||||
{
|
||||
if (IsAllCancled()) {
|
||||
m_apply_btn->SetBackgroundColor(btn_bg_gray);
|
||||
m_apply_btn->Enable(false);
|
||||
} else {
|
||||
m_apply_btn->SetBackgroundColor(btn_bg_green);
|
||||
m_apply_btn->Enable(true);
|
||||
}
|
||||
}
|
||||
|
||||
void PartSkipDialog::OnApplyDialog(wxCommandEvent &event)
|
||||
{
|
||||
event.Skip();
|
||||
|
|
@ -866,7 +903,7 @@ void PartSkipDialog::OnApplyDialog(wxCommandEvent &event)
|
|||
if (all_skipped) {
|
||||
m_obj->command_task_abort();
|
||||
BOOST_LOG_TRIVIAL(info) << "part skip: command skip all parts, abort task.";
|
||||
} else {
|
||||
} else if (m_partskip_ids.size() > 0) {
|
||||
m_obj->command_task_partskip(m_partskip_ids);
|
||||
BOOST_LOG_TRIVIAL(info) << "part skip: command skip " << m_partskip_ids.size() << " parts.";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,9 @@ private:
|
|||
void UpdateZoomPercent();
|
||||
void UpdateCountLabel();
|
||||
void UpdateDialogUI();
|
||||
void UpdateApplyButtonStatus();
|
||||
bool IsAllChecked();
|
||||
bool IsAllCancled();
|
||||
|
||||
void OnRetryButton(wxCommandEvent &event);
|
||||
void OnAllCheckbox(wxCommandEvent &event);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue