| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "xfa/fxfa/parser/xfa_object.h" | 7 #include "xfa/fxfa/parser/xfa_object.h" |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 | 54 |
| 55 CXFA_Object::CXFA_Object(CXFA_Document* pDocument, | 55 CXFA_Object::CXFA_Object(CXFA_Document* pDocument, |
| 56 XFA_ObjectType objectType, | 56 XFA_ObjectType objectType, |
| 57 XFA_Element elementType) | 57 XFA_Element elementType) |
| 58 : m_pDocument(pDocument), | 58 : m_pDocument(pDocument), |
| 59 m_objectType(objectType), | 59 m_objectType(objectType), |
| 60 m_elementType(elementType) {} | 60 m_elementType(elementType) {} |
| 61 | 61 |
| 62 CXFA_Object::~CXFA_Object() {} | 62 CXFA_Object::~CXFA_Object() {} |
| 63 | 63 |
| 64 void CXFA_Object::GetClassName(CFX_WideStringC& wsName) const { | 64 CFX_WideStringC CXFA_Object::GetClassName() const { |
| 65 wsName = XFA_GetElementByID(GetElementType())->pName; | 65 return XFA_GetElementByID(GetElementType())->pName; |
| 66 } | 66 } |
| 67 | 67 |
| 68 uint32_t CXFA_Object::GetClassHashCode() const { | 68 uint32_t CXFA_Object::GetClassHashCode() const { |
| 69 return XFA_GetElementByID(GetElementType())->uHash; | 69 return XFA_GetElementByID(GetElementType())->uHash; |
| 70 } | 70 } |
| 71 | 71 |
| 72 XFA_Element CXFA_Object::GetElementType() const { | 72 XFA_Element CXFA_Object::GetElementType() const { |
| 73 return m_elementType; | 73 return m_elementType; |
| 74 } | 74 } |
| 75 | 75 |
| 76 void CXFA_Object::Script_ObjectClass_ClassName(CFXJSE_Value* pValue, | 76 void CXFA_Object::Script_ObjectClass_ClassName(CFXJSE_Value* pValue, |
| 77 FX_BOOL bSetting, | 77 FX_BOOL bSetting, |
| 78 XFA_ATTRIBUTE eAttribute) { | 78 XFA_ATTRIBUTE eAttribute) { |
| 79 if (!bSetting) { | 79 if (!bSetting) { |
| 80 CFX_WideStringC className; | 80 CFX_WideStringC className = GetClassName(); |
| 81 GetClassName(className); | |
| 82 pValue->SetString( | 81 pValue->SetString( |
| 83 FX_UTF8Encode(className.c_str(), className.GetLength()).AsStringC()); | 82 FX_UTF8Encode(className.c_str(), className.GetLength()).AsStringC()); |
| 84 } else { | 83 } else { |
| 85 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 84 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 86 } | 85 } |
| 87 } | 86 } |
| 88 | 87 |
| 89 void CXFA_Object::ThrowException(int32_t iStringID, ...) { | 88 void CXFA_Object::ThrowException(int32_t iStringID, ...) { |
| 90 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider(); | 89 IXFA_AppProvider* pAppProvider = m_pDocument->GetNotify()->GetAppProvider(); |
| 91 ASSERT(pAppProvider); | 90 ASSERT(pAppProvider); |
| (...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 744 } | 743 } |
| 745 } | 744 } |
| 746 | 745 |
| 747 void CXFA_Node::Script_TreeClass_ClassAll(CFXJSE_Value* pValue, | 746 void CXFA_Node::Script_TreeClass_ClassAll(CFXJSE_Value* pValue, |
| 748 FX_BOOL bSetting, | 747 FX_BOOL bSetting, |
| 749 XFA_ATTRIBUTE eAttribute) { | 748 XFA_ATTRIBUTE eAttribute) { |
| 750 if (bSetting) { | 749 if (bSetting) { |
| 751 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 750 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 752 } else { | 751 } else { |
| 753 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; | 752 uint32_t dwFlag = XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL; |
| 754 CFX_WideStringC wsName; | 753 CFX_WideString wsExpression = |
| 755 GetClassName(wsName); | 754 FX_WSTRC(L"#") + GetClassName() + FX_WSTRC(L"[*]"); |
| 756 CFX_WideString wsExpression = FX_WSTRC(L"#") + wsName + FX_WSTRC(L"[*]"); | |
| 757 Script_Som_ResolveNodeList(pValue, wsExpression, dwFlag); | 755 Script_Som_ResolveNodeList(pValue, wsExpression, dwFlag); |
| 758 } | 756 } |
| 759 } | 757 } |
| 760 | 758 |
| 761 void CXFA_Node::Script_TreeClass_Parent(CFXJSE_Value* pValue, | 759 void CXFA_Node::Script_TreeClass_Parent(CFXJSE_Value* pValue, |
| 762 FX_BOOL bSetting, | 760 FX_BOOL bSetting, |
| 763 XFA_ATTRIBUTE eAttribute) { | 761 XFA_ATTRIBUTE eAttribute) { |
| 764 if (bSetting) { | 762 if (bSetting) { |
| 765 ThrowException(XFA_IDS_INVAlID_PROP_SET); | 763 ThrowException(XFA_IDS_INVAlID_PROP_SET); |
| 766 } else { | 764 } else { |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 958 CFX_WideStringC wsContentType = GetCData(XFA_ATTRIBUTE_ContentType); | 956 CFX_WideStringC wsContentType = GetCData(XFA_ATTRIBUTE_ContentType); |
| 959 if (!wsContentType.IsEmpty()) { | 957 if (!wsContentType.IsEmpty()) { |
| 960 pFakeRoot->SetCData(XFA_ATTRIBUTE_ContentType, | 958 pFakeRoot->SetCData(XFA_ATTRIBUTE_ContentType, |
| 961 CFX_WideString(wsContentType)); | 959 CFX_WideString(wsContentType)); |
| 962 } | 960 } |
| 963 CFDE_XMLNode* pFakeXMLRoot = pFakeRoot->GetXMLMappingNode(); | 961 CFDE_XMLNode* pFakeXMLRoot = pFakeRoot->GetXMLMappingNode(); |
| 964 if (!pFakeXMLRoot) { | 962 if (!pFakeXMLRoot) { |
| 965 CFDE_XMLNode* pThisXMLRoot = GetXMLMappingNode(); | 963 CFDE_XMLNode* pThisXMLRoot = GetXMLMappingNode(); |
| 966 pFakeXMLRoot = pThisXMLRoot ? pThisXMLRoot->Clone(FALSE) : nullptr; | 964 pFakeXMLRoot = pThisXMLRoot ? pThisXMLRoot->Clone(FALSE) : nullptr; |
| 967 } | 965 } |
| 968 if (!pFakeXMLRoot) { | 966 if (!pFakeXMLRoot) |
| 969 CFX_WideStringC wsClassName; | 967 pFakeXMLRoot = new CFDE_XMLElement(CFX_WideString(GetClassName())); |
| 970 GetClassName(wsClassName); | 968 |
| 971 pFakeXMLRoot = new CFDE_XMLElement(CFX_WideString(wsClassName)); | |
| 972 } | |
| 973 if (bIgnoreRoot) { | 969 if (bIgnoreRoot) { |
| 974 CFDE_XMLNode* pXMLChild = pXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild); | 970 CFDE_XMLNode* pXMLChild = pXMLNode->GetNodeItem(CFDE_XMLNode::FirstChild); |
| 975 while (pXMLChild) { | 971 while (pXMLChild) { |
| 976 CFDE_XMLNode* pXMLSibling = | 972 CFDE_XMLNode* pXMLSibling = |
| 977 pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling); | 973 pXMLChild->GetNodeItem(CFDE_XMLNode::NextSibling); |
| 978 pXMLNode->RemoveChildNode(pXMLChild); | 974 pXMLNode->RemoveChildNode(pXMLChild); |
| 979 pFakeXMLRoot->InsertChildNode(pXMLChild); | 975 pFakeXMLRoot->InsertChildNode(pXMLChild); |
| 980 pXMLChild = pXMLSibling; | 976 pXMLChild = pXMLSibling; |
| 981 } | 977 } |
| 982 } else { | 978 } else { |
| (...skipping 4280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5263 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); | 5259 return m_pAttachNode->InsertChild(pNewNode, pBeforeNode); |
| 5264 } | 5260 } |
| 5265 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { | 5261 FX_BOOL CXFA_AttachNodeList::Remove(CXFA_Node* pNode) { |
| 5266 return m_pAttachNode->RemoveChild(pNode); | 5262 return m_pAttachNode->RemoveChild(pNode); |
| 5267 } | 5263 } |
| 5268 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { | 5264 CXFA_Node* CXFA_AttachNodeList::Item(int32_t iIndex) { |
| 5269 return m_pAttachNode->GetChild( | 5265 return m_pAttachNode->GetChild( |
| 5270 iIndex, XFA_Element::Unknown, | 5266 iIndex, XFA_Element::Unknown, |
| 5271 m_pAttachNode->GetElementType() == XFA_Element::Subform); | 5267 m_pAttachNode->GetElementType() == XFA_Element::Subform); |
| 5272 } | 5268 } |
| OLD | NEW |