Restored slicing cancellation.

This commit is contained in:
bubnikv 2018-10-25 10:07:11 +02:00
parent f90795bd55
commit 5e39ff7c58

View file

@ -810,7 +810,6 @@ struct Plater::priv
void schedule_background_process();
void async_apply_config();
void start_background_process();
void stop_background_process();
void reload_from_disk();
void export_object_stl();
void fix_through_netfabb();
@ -1018,9 +1017,6 @@ void Plater::priv::update(bool force_autocenter)
model.center_instances_around_point(bed_center);
}
// stop_background_process(); // TODO
// print.reload_model_instances();
#if !ENABLE_EXTENDED_SELECTION
const auto selections = collect_selections();
_3DScene::set_objects_selections(canvas3D, selections);
@ -1488,8 +1484,6 @@ void Plater::priv::select_view()
void Plater::priv::remove(size_t obj_idx)
{
// $self->stop_background_process; // TODO
// Prevent toolpaths preview from rendering while we modify the Print object
preview->set_enabled(false);
@ -1514,8 +1508,6 @@ void Plater::priv::remove(size_t obj_idx)
void Plater::priv::reset()
{
// $self->stop_background_process; // TODO
// Prevent toolpaths preview from rendering while we modify the Print object
preview->set_enabled(false);
@ -1576,12 +1568,6 @@ void Plater::priv::mirror(Axis axis)
model_object->mirror(axis);
// $self->stop_background_process; // TODO
#if ENABLE_EXTENDED_SELECTION
// print.add_model_object(model_object, obj_idx);
#else
// print.add_model_object(model_object, *obj_idx);
#endif // ENABLE_EXTENDED_SELECTION
selection_changed();
update();
#endif // ENABLE_MIRROR
@ -1596,8 +1582,6 @@ void Plater::priv::scale()
void Plater::priv::arrange()
{
// $self->stop_background_process;
main_frame->app_controller()->arrange_model();
// ignore arrange failures on purpose: user has visual feedback and we don't need to warn him
@ -1624,8 +1608,6 @@ void Plater::priv::split_object()
return;
}
// $self->stop_background_process;
ModelObjectPtrs new_objects;
current_model_object->split(&new_objects);
if (new_objects.size() == 1)
@ -1695,8 +1677,11 @@ void Plater::priv::async_apply_config()
}
}
if (invalidated != Print::APPLY_STATUS_UNCHANGED && this->get_config("background_processing") == "1" &&
this->print.num_object_instances() > 0)
this->background_process.start();
this->print.num_object_instances() > 0 && this->background_process.start())
this->statusbar()->set_cancel_callback([this](){
this->statusbar()->set_status_text(L("Cancelling"));
this->background_process.stop();
});
}
void Plater::priv::start_background_process()
@ -1716,13 +1701,6 @@ void Plater::priv::start_background_process()
}
}
void Plater::priv::stop_background_process()
{
this->background_process.stop();
if (this->preview != nullptr)
this->preview->reload_print();
}
void Plater::priv::reload_from_disk()
{
// TODO
@ -1855,7 +1833,8 @@ void Plater::priv::on_process_completed(wxCommandEvent &evt)
this->statusbar()->reset_cancel_callback();
this->statusbar()->stop_busy();
bool success = evt.GetInt();
bool canceled = evt.GetInt() < 0;
bool success = evt.GetInt() > 0;
// Reset the "export G-code path" name, so that the automatic background processing will be enabled again.
this->background_process.reset_export();
if (! success) {
@ -1864,8 +1843,10 @@ void Plater::priv::on_process_completed(wxCommandEvent &evt)
message = _(L("Export failed"));
this->statusbar()->set_status_text(message);
}
if (canceled)
this->statusbar()->set_status_text(L("Cancelled"));
this->sidebar->show_info_sizers(false);
this->sidebar->show_info_sizers(success);
// this updates buttons status
//$self->object_list_changed;
@ -1991,8 +1972,6 @@ void Plater::priv::on_scale_uniformly(SimpleEvent&)
// my $model_object = $self->{model}->objects->[$obj_idx];
// my $model_instance = $model_object->instances->[0];
// $self->stop_background_process;
// my $variation = $scale / $model_instance->scaling_factor;
// #FIXME Scale the layer height profile?
// foreach my $range (@{ $model_object->layer_height_ranges }) {
@ -2219,8 +2198,6 @@ void Plater::increase_instances(size_t num)
auto *model_instance = model_object->instances[model_object->instances.size() - 1];
#endif // ENABLE_EXTENDED_SELECTION
// $self->stop_background_process;
float offset = 10.0;
for (size_t i = 0; i < num; i++, offset += 10.0) {
Vec3d offset_vec = model_instance->get_offset() + Vec3d(offset, offset, 0.0);
@ -2456,14 +2433,10 @@ void Plater::reslice()
// this->p->stop_background_process();
// Rather perform one additional unnecessary update of the print object instead of skipping a pending async update.
this->p->async_apply_config();
/*
$self->statusbar->SetCancelCallback(sub {
$self->stop_background_process;
$self->statusbar->SetStatusText(L("Slicing cancelled"));
# this updates buttons status
$self->object_list_changed;
this->p->statusbar()->set_cancel_callback([this](){
this->p->statusbar()->set_status_text(L("Cancelling"));
this->p->background_process.stop();
});
*/
this->p->start_background_process();
}
@ -2570,8 +2543,6 @@ void Plater::changed_object_settings(int obj_idx)
// update print
if (list->is_parts_changed() || list->is_part_settings_changed()) {
// stop_background_process();
// $self->{print}->reload_object($obj_idx);
this->p->schedule_background_process();
#if !ENABLE_EXTENDED_SELECTION
if (p->canvas3D) _3DScene::reload_scene(p->canvas3D, true);