+ fix order of removed objects in transaction list

+ add assert to check for obvious error
+ removed unneeded method
This commit is contained in:
wmayer 2016-06-20 21:58:00 +02:00
parent 0f2db9061f
commit f2bad4598a
3 changed files with 8 additions and 7 deletions

View File

@ -150,6 +150,8 @@ void Transaction::addObjectNew(TransactionalObject *Obj)
else {
pos->second->status = TransactionObject::New;
pos->second->_NameInDocument = Obj->detachFromDocument();
// move item at the end to make sure the order of removal is kept
_Objects.splice(_Objects.end(), _Objects, pos);
}
}
else {

View File

@ -575,16 +575,16 @@ void Document::slotRedoDocument(const App::Document& doc)
void Document::addViewProvider(Gui::ViewProviderDocumentObject* vp)
{
// Hint: The undo/redo first adds the view provider to the Gui
// document before adding the objects to the App document.
// the view provider is added by TransactionViewProvider and an
// object can be there only once
assert(d->_ViewProviderMap.find(vp->getObject()) == d->_ViewProviderMap.end());
vp->setStatus(Detach, false);
d->_ViewProviderMap[vp->getObject()] = vp;
}
void Document::removeViewProvider(Gui::ViewProviderDocumentObject* vp)
{
vp->setStatus(Detach, true);
d->_ViewProviderMap.erase(vp->getObject());
}
void Document::setModified(bool b)
{
d->_isModified = b;

View File

@ -86,7 +86,6 @@ protected:
//@}
void addViewProvider(Gui::ViewProviderDocumentObject*);
void removeViewProvider(Gui::ViewProviderDocumentObject*);
public:
/** @name Signals of the document */