summaryrefslogtreecommitdiff
path: root/fxjs/xfa/cjx_node.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-12-12 18:24:09 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-12-12 18:24:09 +0000
commitf7aa204aafe97505b98f38a7b52a74f5e2a59a8e (patch)
tree9b16759dc83b931227d0ca7eb94779650a2ff623 /fxjs/xfa/cjx_node.cpp
parenta4789fffa5f9fb514264db30aec51899e06818fe (diff)
downloadpdfium-f7aa204aafe97505b98f38a7b52a74f5e2a59a8e.tar.xz
Move Script_Attribute_String to CJX_Object
The CJX_Node isn't the root of the CJX hierarchy. This causes issues now that CJX_Object has child objects which don't inherit from CJX_Node. This CL moves Script_Attribute_String from CJX_Node to CJX_Object. Change-Id: Icbf1cb3ea132e358fd53f00008c0b748ed4cc941 Reviewed-on: https://pdfium-review.googlesource.com/20950 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fxjs/xfa/cjx_node.cpp')
-rw-r--r--fxjs/xfa/cjx_node.cpp67
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) {