| 1683 | } |
| 1684 | |
| 1685 | App::any ObjectIdentifier::getValue(bool pathValue, bool* isPseudoProperty) const |
| 1686 | { |
| 1687 | ResolveResults rs(*this); |
| 1688 | |
| 1689 | if (isPseudoProperty) { |
| 1690 | *isPseudoProperty = rs.propertyType != PseudoNone; |
| 1691 | if (rs.propertyType == PseudoSelf && isLocalProperty() |
| 1692 | && rs.propertyIndex + 1 < (int)components.size() |
| 1693 | && owner->getPropertyByName(components[rs.propertyIndex + 1].getName().c_str())) { |
| 1694 | *isPseudoProperty = false; |
| 1695 | } |
| 1696 | } |
| 1697 | |
| 1698 | if (rs.resolvedProperty && rs.propertyType == PseudoNone && pathValue) { |
| 1699 | return rs.resolvedProperty->getPathValue(*this); |
| 1700 | } |
| 1701 | |
| 1702 | Base::PyGILStateLocker lock; |
| 1703 | try { |
| 1704 | return pyObjectToAny(access(rs)); |
| 1705 | } |
| 1706 | catch (Py::Exception&) { |
| 1707 | Base::PyException::throwException(); |
| 1708 | } |
| 1709 | return {}; |
| 1710 | } |
| 1711 | |
| 1712 | Py::Object ObjectIdentifier::getPyValue(bool pathValue, bool* isPseudoProperty) const |
| 1713 | { |
no test coverage detected