本文整理汇总了C++中app::DocumentObject::testStatus方法的典型用法代码示例。如果您正苦于以下问题:C++ DocumentObject::testStatus方法的具体用法?C++ DocumentObject::testStatus怎么用?C++ DocumentObject::testStatus使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app::DocumentObject
的用法示例。
在下文中一共展示了DocumentObject::testStatus方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setValues
void PropertyLinkSubList::setValues(const std::vector<DocumentObject*>& lValue,const std::vector<std::string>& lSubNames)
{
if (lValue.size() != lSubNames.size())
throw Base::ValueError("PropertyLinkSubList::setValues: size of subelements list != size of objects list");
#ifndef USE_OLD_DAG
//maintain backlinks.
if (getContainer() && getContainer()->isDerivedFrom(App::DocumentObject::getClassTypeId())) {
App::DocumentObject* parent = static_cast<DocumentObject*>(getContainer());
// before accessing internals make sure the object is not about to be destroyed
// otherwise the backlink contains dangling pointers
if (!parent->testStatus(ObjectStatus::Destroy)) {
//_lValueList can contain items multiple times, but we trust the document
//object to ensure that this works
for(auto *obj : _lValueList)
obj->_removeBackLink(parent);
//maintain backlinks. lValue can contain items multiple times, but we trust the document
//object to ensure that the backlink is only added once
for(auto *obj : lValue)
obj->_addBackLink(parent);
}
}
#endif
aboutToSetValue();
_lValueList = lValue;
_lSubList = lSubNames;
hasSetValue();
}
示例2: setValue
void PropertyLinkSubList::setValue(DocumentObject* lValue,const char* SubName)
{
#ifndef USE_OLD_DAG
//maintain backlinks
if (getContainer() && getContainer()->isDerivedFrom(App::DocumentObject::getClassTypeId())) {
App::DocumentObject* parent = static_cast<DocumentObject*>(getContainer());
// before accessing internals make sure the object is not about to be destroyed
// otherwise the backlink contains dangling pointers
if (!parent->testStatus(ObjectStatus::Destroy)) {
for(auto *obj : _lValueList)
obj->_removeBackLink(parent);
if (lValue)
lValue->_addBackLink(parent);
}
}
#endif
if (lValue) {
aboutToSetValue();
_lValueList.resize(1);
_lValueList[0]=lValue;
_lSubList.resize(1);
_lSubList[0]=SubName;
hasSetValue();
}
else {
aboutToSetValue();
_lValueList.clear();
_lSubList.clear();
hasSetValue();
}
}
示例3:
PropertyLinkSub::~PropertyLinkSub()
{
//in case this property is dynamically removed
#ifndef USE_OLD_DAG
if (_pcLinkSub && getContainer() && getContainer()->isDerivedFrom(App::DocumentObject::getClassTypeId())) {
App::DocumentObject* parent = static_cast<DocumentObject*>(getContainer());
// before accessing internals make sure the object is not about to be destroyed
// otherwise the backlink contains dangling pointers
if (!parent->testStatus(ObjectStatus::Destroy)) {
if (_pcLinkSub)
_pcLinkSub->_removeBackLink(parent);
}
}
#endif
}