mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-11 08:47:52 -06:00
ObjectLayers::del_layer_range() -> delete a layers range using "Del" button from ObjectLayers sizer
This commit is contained in:
parent
e531d224e8
commit
38641ef578
6 changed files with 84 additions and 44 deletions
|
@ -16,8 +16,6 @@ namespace Slic3r
|
|||
namespace GUI
|
||||
{
|
||||
|
||||
typedef std::map<t_layer_height_range, coordf_t> t_layer_height_ranges;
|
||||
|
||||
#define field_width 8
|
||||
|
||||
ObjectLayers::ObjectLayers(wxWindow* parent) :
|
||||
|
@ -76,42 +74,32 @@ static Line create_new_layer(const t_layer_height_ranges::value_type& layer)
|
|||
|
||||
void ObjectLayers::create_layers_list()
|
||||
{
|
||||
auto create_btns = [this](wxWindow* parent) {
|
||||
auto sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
auto del_btn = new ScalableButton(parent, wxID_ANY, m_bmp_delete);
|
||||
del_btn->SetToolTip(_(L("Remove layer")));
|
||||
|
||||
sizer->Add(del_btn, 0, wxRIGHT, em_unit(parent));
|
||||
|
||||
del_btn->Bind(wxEVT_BUTTON, [this](wxEvent &event) {
|
||||
del_layer();
|
||||
// wxTheApp->CallAfter([this]() {
|
||||
// wxWindowUpdateLocker noUpdates(m_parent);
|
||||
// update_layers_list();
|
||||
// m_parent->Layout();
|
||||
// });
|
||||
});
|
||||
|
||||
auto add_btn = new ScalableButton(parent, wxID_ANY, m_bmp_add);
|
||||
add_btn->SetToolTip(_(L("Add layer")));
|
||||
|
||||
sizer->Add(add_btn, 0, wxRIGHT, em_unit(parent));
|
||||
|
||||
add_btn->Bind(wxEVT_BUTTON, [this](wxEvent &event) {
|
||||
add_layer();
|
||||
// wxTheApp->CallAfter([this]() {
|
||||
// wxWindowUpdateLocker noUpdates(m_parent);
|
||||
// update_layers_list();
|
||||
// m_parent->Layout();
|
||||
// });
|
||||
});
|
||||
|
||||
return sizer;
|
||||
};
|
||||
|
||||
for (const auto layer : m_object->layer_height_ranges)
|
||||
{
|
||||
auto create_btns = [this, layer](wxWindow* parent) {
|
||||
auto sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
auto del_btn = new ScalableButton(parent, wxID_ANY, m_bmp_delete);
|
||||
del_btn->SetToolTip(_(L("Remove layer")));
|
||||
|
||||
sizer->Add(del_btn, 0, wxRIGHT, em_unit(parent));
|
||||
|
||||
del_btn->Bind(wxEVT_BUTTON, [this, layer](wxEvent &event) {
|
||||
wxGetApp().obj_list()->del_layer_range(layer.first);
|
||||
});
|
||||
|
||||
auto add_btn = new ScalableButton(parent, wxID_ANY, m_bmp_add);
|
||||
add_btn->SetToolTip(_(L("Add layer")));
|
||||
|
||||
sizer->Add(add_btn, 0, wxRIGHT, em_unit(parent));
|
||||
|
||||
add_btn->Bind(wxEVT_BUTTON, [this, layer](wxEvent &event) {
|
||||
wxGetApp().obj_list()->add_layer_range(layer.first);
|
||||
});
|
||||
|
||||
return sizer;
|
||||
};
|
||||
|
||||
Line line = create_new_layer(layer);
|
||||
line.append_widget(create_btns);
|
||||
m_og->append_line(line);
|
||||
|
@ -122,6 +110,7 @@ void ObjectLayers::create_layer(int id)
|
|||
{
|
||||
t_layer_height_ranges::iterator layer_range = m_object->layer_height_ranges.begin();
|
||||
|
||||
// May be not a best solution #ys_FIXME
|
||||
while (id > 0 && layer_range != m_object->layer_height_ranges.end()) {
|
||||
layer_range++;
|
||||
id--;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue