Modal estimated printing time dialog

Fixed conflicts after merge with master
This commit is contained in:
enricoturri1966 2020-07-27 14:53:17 +02:00
commit 48ae8dc9a2
22 changed files with 1301 additions and 264 deletions

View file

@ -1595,20 +1595,21 @@ void Selection::update_type()
}
else
{
unsigned int sla_volumes_count = 0;
// Note: sla_volumes_count is a count of the selected sla_volumes per object instead of per instance, like a model_volumes_count is
for (unsigned int i : m_list) {
if ((*m_volumes)[i]->volume_idx() < 0)
++sla_volumes_count;
}
if (m_cache.content.size() == 1) // single object
{
const ModelObject* model_object = m_model->objects[m_cache.content.begin()->first];
unsigned int model_volumes_count = (unsigned int)model_object->volumes.size();
unsigned int sla_volumes_count = 0;
for (unsigned int i : m_list)
{
if ((*m_volumes)[i]->volume_idx() < 0)
++sla_volumes_count;
}
unsigned int volumes_count = model_volumes_count + sla_volumes_count;
unsigned int instances_count = (unsigned int)model_object->instances.size();
unsigned int selected_instances_count = (unsigned int)m_cache.content.begin()->second.size();
if (volumes_count * instances_count == (unsigned int)m_list.size())
if (model_volumes_count * instances_count + sla_volumes_count == (unsigned int)m_list.size())
{
m_type = SingleFullObject;
// ensures the correct mode is selected
@ -1616,7 +1617,7 @@ void Selection::update_type()
}
else if (selected_instances_count == 1)
{
if (volumes_count == (unsigned int)m_list.size())
if (model_volumes_count + sla_volumes_count == (unsigned int)m_list.size())
{
m_type = SingleFullInstance;
// ensures the correct mode is selected
@ -1639,7 +1640,7 @@ void Selection::update_type()
requires_disable = true;
}
}
else if ((selected_instances_count > 1) && (selected_instances_count * volumes_count == (unsigned int)m_list.size()))
else if ((selected_instances_count > 1) && (selected_instances_count * model_volumes_count + sla_volumes_count == (unsigned int)m_list.size()))
{
m_type = MultipleFullInstance;
// ensures the correct mode is selected
@ -1656,7 +1657,7 @@ void Selection::update_type()
unsigned int instances_count = (unsigned int)model_object->instances.size();
sels_cntr += volumes_count * instances_count;
}
if (sels_cntr == (unsigned int)m_list.size())
if (sels_cntr + sla_volumes_count == (unsigned int)m_list.size())
{
m_type = MultipleFullObject;
// ensures the correct mode is selected