DoubleSlider modes(states) are extended and implemented mode detection from model

+ Some code refactoring
This commit is contained in:
YuSanka 2020-01-08 15:26:01 +01:00
parent 07c1c3d1dc
commit fb65e3152f
5 changed files with 82 additions and 43 deletions

View file

@ -5358,6 +5358,38 @@ bool Plater::is_export_gcode_scheduled() const
return p->background_process.is_export_scheduled();
}
bool Plater::is_one_extruder_printed_model()
{
if (wxGetApp().extruders_edited_cnt() == 1)
return true;
// check if model use just one extruder
const ModelObjectPtrs& objects = p->model.objects;
if (!objects.empty())
{
const size_t extruder = objects[0]->config.has("extruder") ?
objects[0]->config.option("extruder")->getInt() : 0;
for (ModelObject* object : objects)
{
if (object->config.has("extruder") &&
object->config.option("extruder")->getInt() != extruder)
return false;
for (ModelVolume* volume : object->volumes)
if (volume->config.has("extruder") &&
volume->config.option("extruder")->getInt() != extruder)
return false;
for (const auto& range : object->layer_config_ranges)
if (range.second.has("extruder") &&
range.second.option("extruder")->getInt() != extruder)
return false;
}
}
return true;
}
int Plater::get_selected_object_idx()
{
return p->get_selected_object_idx();