Fixed object adding to list with same object's name
+ Added name for main object for complex objects + Fixed incorrect Instances and Settings deleting from ObjectList
This commit is contained in:
parent
d7f013ba19
commit
5557ee3cd2
4 changed files with 8 additions and 4 deletions
|
@ -415,6 +415,7 @@ void Model::convert_multipart_object(unsigned int max_extruders)
|
||||||
|
|
||||||
ModelObject* object = new ModelObject(this);
|
ModelObject* object = new ModelObject(this);
|
||||||
object->input_file = this->objects.front()->input_file;
|
object->input_file = this->objects.front()->input_file;
|
||||||
|
object->name = this->objects.front()->name;
|
||||||
|
|
||||||
reset_auto_extruder_id();
|
reset_auto_extruder_id();
|
||||||
|
|
||||||
|
|
|
@ -868,7 +868,7 @@ void ObjectList::del_settings_from_config()
|
||||||
|
|
||||||
void ObjectList::del_instances_from_object(const int obj_idx)
|
void ObjectList::del_instances_from_object(const int obj_idx)
|
||||||
{
|
{
|
||||||
auto instances = (*m_objects)[obj_idx]->instances;
|
auto& instances = (*m_objects)[obj_idx]->instances;
|
||||||
if (instances.size() <= 1)
|
if (instances.size() <= 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -1109,6 +1109,9 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path> &input_
|
||||||
// $self->async_apply_config;
|
// $self->async_apply_config;
|
||||||
} else {
|
} else {
|
||||||
model = Slic3r::Model::read_from_file(path.string(), nullptr, false);
|
model = Slic3r::Model::read_from_file(path.string(), nullptr, false);
|
||||||
|
for (auto obj : model.objects)
|
||||||
|
if (obj->name.empty())
|
||||||
|
obj->name = fs::path(obj->input_file).filename().string();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (const std::runtime_error &e) {
|
catch (const std::runtime_error &e) {
|
||||||
|
@ -1156,7 +1159,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path> &input_
|
||||||
new_model->convert_multipart_object(nozzle_dmrs->values.size());
|
new_model->convert_multipart_object(nozzle_dmrs->values.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto loaded_idxs = load_model_objects(model.objects);
|
auto loaded_idxs = load_model_objects(new_model->objects);
|
||||||
obj_idxs.insert(obj_idxs.end(), loaded_idxs.begin(), loaded_idxs.end());
|
obj_idxs.insert(obj_idxs.end(), loaded_idxs.begin(), loaded_idxs.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1176,7 +1179,7 @@ std::vector<size_t> Plater::priv::load_model_objects(const ModelObjectPtrs &mode
|
||||||
bool scaled_down = false;
|
bool scaled_down = false;
|
||||||
std::vector<size_t> obj_idxs;
|
std::vector<size_t> obj_idxs;
|
||||||
#if ENABLE_EXTENDED_SELECTION
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
unsigned int obj_count = 0;
|
unsigned int obj_count = model.objects.size();
|
||||||
#endif // ENABLE_EXTENDED_SELECTION
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
for (ModelObject *model_object : model_objects) {
|
for (ModelObject *model_object : model_objects) {
|
||||||
|
|
|
@ -789,7 +789,7 @@ void PrusaObjectDataViewModel::GetItemInfo(const wxDataViewItem& item, ItemType&
|
||||||
type = itUndef;
|
type = itUndef;
|
||||||
|
|
||||||
PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID();
|
PrusaObjectDataViewModelNode *node = (PrusaObjectDataViewModelNode*)item.GetID();
|
||||||
if (!node || node->GetIdx() < 0 && node->GetType() != itObject)
|
if (!node || node->GetIdx() < 0 && !(node->GetType() & (itObject|itSettings|itInstanceRoot)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
idx = node->GetIdx();
|
idx = node->GetIdx();
|
||||||
|
|
Loading…
Reference in a new issue