Gui: add new API ViewProviderDocumentObject::allowOverride()
This API is used to delcare if a view provider can be used as an override for a give object. Conflicts: src/App/DocumentObject.h
This commit is contained in:
@@ -3540,17 +3540,8 @@ DocumentObject * Document::addObject(const char* sType, const char* pObjectName,
|
||||
|
||||
pcObject->setStatus(ObjectStatus::PartialObject, isPartial);
|
||||
|
||||
// If an object does not allow to override its view provider then ignore any
|
||||
// input of the Document.xml or from Python as this information could be wrong.
|
||||
// In this case the default type from getViewProviderName() is used.
|
||||
if (pcObject->allowOverrideViewProviderName()) {
|
||||
if (!viewType || viewType[0] == '\0') {
|
||||
viewType = pcObject->getViewProviderNameOverride();
|
||||
}
|
||||
}
|
||||
else {
|
||||
viewType = pcObject->getViewProviderName();
|
||||
}
|
||||
if (!viewType || viewType[0] == '\0')
|
||||
viewType = pcObject->getViewProviderNameOverride();
|
||||
|
||||
if (viewType && viewType[0] != '\0')
|
||||
pcObject->_pcViewProviderName = viewType;
|
||||
@@ -3644,16 +3635,8 @@ std::vector<DocumentObject *> Document::addObjects(const char* sType, const std:
|
||||
// mark the object as new (i.e. set status bit 2) and send the signal
|
||||
pcObject->setStatus(ObjectStatus::New, true);
|
||||
|
||||
// If an object does not allow to override its view provider then use
|
||||
// getViewProviderName() instead.
|
||||
if (pcObject->allowOverrideViewProviderName()) {
|
||||
const char *viewType = pcObject->getViewProviderNameOverride();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
}
|
||||
else {
|
||||
const char *viewType = pcObject->getViewProviderName();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
}
|
||||
const char *viewType = pcObject->getViewProviderNameOverride();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
|
||||
signalNewObject(*pcObject);
|
||||
|
||||
@@ -3711,16 +3694,8 @@ void Document::addObject(DocumentObject* pcObject, const char* pObjectName)
|
||||
// mark the object as new (i.e. set status bit 2) and send the signal
|
||||
pcObject->setStatus(ObjectStatus::New, true);
|
||||
|
||||
// If an object does not allow to override its view provider then use
|
||||
// getViewProviderName() instead.
|
||||
if (pcObject->allowOverrideViewProviderName()) {
|
||||
const char *viewType = pcObject->getViewProviderNameOverride();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
}
|
||||
else {
|
||||
const char *viewType = pcObject->getViewProviderName();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
}
|
||||
const char *viewType = pcObject->getViewProviderNameOverride();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
|
||||
signalNewObject(*pcObject);
|
||||
|
||||
@@ -3751,16 +3726,8 @@ void Document::_addObject(DocumentObject* pcObject, const char* pObjectName)
|
||||
d->activeUndoTransaction->addObjectDel(pcObject);
|
||||
}
|
||||
|
||||
// If an object does not allow to override its view provider then use
|
||||
// getViewProviderName() instead.
|
||||
if (pcObject->allowOverrideViewProviderName()) {
|
||||
const char *viewType = pcObject->getViewProviderNameOverride();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
}
|
||||
else {
|
||||
const char *viewType = pcObject->getViewProviderName();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
}
|
||||
const char *viewType = pcObject->getViewProviderNameOverride();
|
||||
pcObject->_pcViewProviderName = viewType ? viewType : "";
|
||||
|
||||
// send the signal
|
||||
signalNewObject(*pcObject);
|
||||
|
||||
Reference in New Issue
Block a user