Kaydet (Commit) 2f6af46d authored tarafından Noel Grandin's avatar Noel Grandin

Revert "optimise SdrObjList::SetObjectOrdNum"

This reverts commit 30e87214.
which I accidentally pushed.
üst a99f068f
...@@ -577,52 +577,26 @@ SdrObject* SdrObjList::SetObjectOrdNum(size_t nOldObjNum, size_t nNewObjNum) ...@@ -577,52 +577,26 @@ SdrObject* SdrObjList::SetObjectOrdNum(size_t nOldObjNum, size_t nNewObjNum)
return NULL; return NULL;
} }
SdrObject* pObj = maList[nOldObjNum]; SdrObject* pObj=maList[nOldObjNum];
assert(pObj!=NULL && "SdrObjList::SetObjectOrdNum: Object not found."); if (nOldObjNum==nNewObjNum) return pObj;
if (nOldObjNum == nNewObjNum) DBG_ASSERT(pObj!=NULL,"SdrObjList::SetObjectOrdNum: Object not found.");
return pObj; if (pObj!=NULL) {
SdrObject* pOtherObj = maList[nNewObjNum]; DBG_ASSERT(pObj->IsInserted(),"SdrObjList::SetObjectOrdNum: ZObjekt does not have status Inserted.");
assert(pOtherObj!=NULL && "SdrObjList::SetObjectOrdNum: other Object not found."); RemoveObjectFromContainer(nOldObjNum);
InsertObjectIntoContainer(*pObj,nNewObjNum);
assert(pObj->IsInserted() && "SdrObjList::SetObjectOrdNum: ZObjekt does not have status Inserted.");
// Update the navigation positions.
if (HasObjectNavigationOrder())
{
SdrObjectWeakRef aReference (pOtherObj);
WeakSdrObjectContainerType::iterator iObject (::std::find(
mxNavigationOrder->begin(),
mxNavigationOrder->end(),
aReference));
if (iObject != mxNavigationOrder->end())
mxNavigationOrder->erase(iObject);
mbIsNavigationOrderDirty = true;
// The new object does not have a user defined position so append it
// to the list.
pObj->SetNavigationPosition(mxNavigationOrder->size());
mxNavigationOrder->push_back(pObj);
}
maList.erase(maList.begin()+nOldObjNum);
if (nNewObjNum >= maList.size())
maList.push_back(pObj);
else
maList.insert(maList.begin()+nNewObjNum, pObj);
const size_t nCount = maList.size();
for (size_t no=nOldObjNum; no<nCount; ++no) {
maList[no]->SetOrdNum(no);
}
// No need to delete visualisation data since same object // No need to delete visualisation data since same object
// gets inserted again. Also a single ActionChanged is enough // gets inserted again. Also a single ActionChanged is enough
pObj->ActionChanged(); pObj->ActionChanged();
if (pModel!=NULL) pObj->SetOrdNum(nNewObjNum);
{ bObjOrdNumsDirty=true;
// TODO: We need a different broadcast here. if (pModel!=NULL)
if (pObj->GetPage()!=NULL) pModel->Broadcast(SdrHint(*pObj)); {
pModel->SetChanged(); // TODO: We need a different broadcast here.
if (pObj->GetPage()!=NULL) pModel->Broadcast(SdrHint(*pObj));
pModel->SetChanged();
}
} }
return pObj; return pObj;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment