diff options
Diffstat (limited to 'fxjs/xfa/cjx_node.cpp')
-rw-r--r-- | fxjs/xfa/cjx_node.cpp | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp index d8a3b1c74f..7627a3f783 100644 --- a/fxjs/xfa/cjx_node.cpp +++ b/fxjs/xfa/cjx_node.cpp @@ -635,73 +635,6 @@ void CJX_Node::Script_Attribute_BOOLRead(CFXJSE_Value* pValue, pValue->SetString(GetBoolean(eAttribute) ? "1" : "0"); } -void CJX_Node::Script_Attribute_String(CFXJSE_Value* pValue, - bool bSetting, - XFA_Attribute eAttribute) { - if (!bSetting) { - pValue->SetString(GetAttribute(eAttribute).UTF8Encode().AsStringView()); - return; - } - - WideString wsValue = pValue->ToWideString(); - SetAttribute(eAttribute, wsValue.AsStringView(), true); - if (eAttribute != XFA_Attribute::Use || - GetXFANode()->GetElementType() != XFA_Element::Desc) { - return; - } - - CXFA_Node* pTemplateNode = - ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Template)); - CXFA_Node* pProtoRoot = - pTemplateNode->GetFirstChildByClass(XFA_Element::Subform) - ->GetFirstChildByClass(XFA_Element::Proto); - - WideString wsID; - WideString wsSOM; - if (!wsValue.IsEmpty()) { - if (wsValue[0] == '#') - wsID = WideString(wsValue.c_str() + 1, wsValue.GetLength() - 1); - else - wsSOM = wsValue; - } - - CXFA_Node* pProtoNode = nullptr; - if (!wsSOM.IsEmpty()) { - XFA_RESOLVENODE_RS resolveNodeRS; - bool iRet = GetDocument()->GetScriptContext()->ResolveObjects( - pProtoRoot, wsSOM.AsStringView(), &resolveNodeRS, - XFA_RESOLVENODE_Children | XFA_RESOLVENODE_Attributes | - XFA_RESOLVENODE_Properties | XFA_RESOLVENODE_Parent | - XFA_RESOLVENODE_Siblings, - nullptr); - if (iRet && resolveNodeRS.objects.front()->IsNode()) - pProtoNode = resolveNodeRS.objects.front()->AsNode(); - - } else if (!wsID.IsEmpty()) { - pProtoNode = GetDocument()->GetNodeByID(pProtoRoot, wsID.AsStringView()); - } - if (!pProtoNode) - return; - - CXFA_Node* pHeadChild = GetXFANode()->GetNodeItem(XFA_NODEITEM_FirstChild); - while (pHeadChild) { - CXFA_Node* pSibling = pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); - GetXFANode()->RemoveChild(pHeadChild, true); - pHeadChild = pSibling; - } - - std::unique_ptr<CXFA_Node> pProtoForm(pProtoNode->CloneTemplateToForm(true)); - pHeadChild = pProtoForm->GetNodeItem(XFA_NODEITEM_FirstChild); - while (pHeadChild) { - CXFA_Node* pSibling = pHeadChild->GetNodeItem(XFA_NODEITEM_NextSibling); - pProtoForm->RemoveChild(pHeadChild, true); - GetXFANode()->InsertChild(pHeadChild, nullptr); - pHeadChild = pSibling; - } - - GetDocument()->RemovePurgeNode(pProtoForm.get()); -} - void CJX_Node::Script_Attribute_StringRead(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute) { |