SCnFieldItem* SCnEditorScene::appendField(SCnFieldItem *field, SCnFieldItem *afterField) { if (field->mEditorScene != 0) field->mEditorScene->removeField(field); field->mEditorScene = this; if (afterField != 0) { bool inserted = false; FieldItems::iterator it; for (it = mFields.begin(); it != mFields.end(); ++it) { if (*it == afterField) { mFields.insert(it + 1, field); inserted = true; break; } } if (!inserted) mFields.push_back(field); }else mFields.push_back(field); addItem(field); updateFieldsPositions(); return field; }
void SCnEditorScene::removeField(SCnFieldItem *field) { if (!mFields.contains(field)) { SCnFieldItem* parent = parentField(field); removeItem(field); delete field; while (parent) { parent->updateOnChilds(); parent = parentField(parent); } updateFieldsPositions(); } }
void SCnEditorScene::removeField(SCnFieldItem *field) { Q_ASSERT(mFields.contains(field)); removeItem(field); for (qint32 i = 0; i < mFields.size(); i++) { if (mFields[i] == field) { mFields.remove(i); break; } } delete field; updateFieldsPositions(); }