Fix crash when pressing 'A' without any objects on plater
This commit is contained in:
parent
ba8b81b27e
commit
f7c832ddaf
2 changed files with 9 additions and 6 deletions
|
@ -165,8 +165,6 @@ void ArrangeJob::process(Ctl &ctl)
|
|||
{
|
||||
static const auto arrangestr = _u8L("Arranging");
|
||||
|
||||
ctl.update_status(0, arrangestr);
|
||||
|
||||
arrangement::ArrangeParams params;
|
||||
Points bedpts;
|
||||
ctl.call_on_main_thread([this, ¶ms, &bedpts]{
|
||||
|
@ -175,7 +173,12 @@ void ArrangeJob::process(Ctl &ctl)
|
|||
bedpts = get_bed_shape(*m_plater->config());
|
||||
}).wait();
|
||||
|
||||
auto count = unsigned(m_selected.size() + m_unprintable.size());
|
||||
auto count = unsigned(m_selected.size() + m_unprintable.size());
|
||||
|
||||
if (count == 0) // Should be taken care of by plater, but doesn't hurt
|
||||
return;
|
||||
|
||||
ctl.update_status(0, arrangestr);
|
||||
|
||||
params.stopcondition = [&ctl]() { return ctl.was_canceled(); };
|
||||
|
||||
|
|
|
@ -4977,7 +4977,7 @@ bool Plater::priv::can_split_to_volumes() const
|
|||
|
||||
bool Plater::priv::can_arrange() const
|
||||
{
|
||||
if (model.objects.empty() && m_worker.is_idle()) return false;
|
||||
if (model.objects.empty() || !m_worker.is_idle()) return false;
|
||||
if (q->canvas3D()->get_gizmos_manager().get_current_type() == GLGizmosManager::Emboss) return false;
|
||||
return true;
|
||||
}
|
||||
|
@ -6821,8 +6821,8 @@ GLCanvas3D* Plater::get_current_canvas3D()
|
|||
|
||||
void Plater::arrange()
|
||||
{
|
||||
auto &w = get_ui_job_worker();
|
||||
if (w.is_idle()) {
|
||||
if (p->can_arrange()) {
|
||||
auto &w = get_ui_job_worker();
|
||||
p->take_snapshot(_L("Arrange"));
|
||||
replace_job(w, std::make_unique<ArrangeJob>());
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue