From ec06e1186d0dc1b5bcac6a0d73c5d51e8a4682df Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Mon, 22 Jan 2018 20:38:27 +0000 Subject: Change GetContainerWidgetAcc to GetContainerNode This Cl converts the code which retrieved the containers WidgetAcc to retrieve the container itself and then get the WidgetAcc from the container. Change-Id: Ib279a150500d1204e3d18f11f6a638c1f6c368ec Reviewed-on: https://pdfium-review.googlesource.com/23350 Reviewed-by: Henrique Nakashima Commit-Queue: dsinclair --- xfa/fxfa/parser/cxfa_node.cpp | 15 +++++++-------- xfa/fxfa/parser/cxfa_node.h | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'xfa/fxfa/parser') diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index 90103673cd..026e013dae 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp @@ -724,7 +724,7 @@ bool CXFA_Node::HasBindItem() { return GetPacketType() == XFA_PacketType::Datasets && GetBindingNode(); } -CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { +CXFA_Node* CXFA_Node::GetContainerNode() { if (GetPacketType() != XFA_PacketType::Form) return nullptr; XFA_Element eType = GetElementType(); @@ -744,7 +744,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { wsPicture = pFieldWidgetAcc->GetPictureContent(XFA_VALUEPICTURE_DataBind); } if (!wsPicture.IsEmpty()) - return pFieldWidgetAcc; + return this; CXFA_Node* pDataNode = GetBindData(); if (!pDataNode) @@ -763,7 +763,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { break; pFieldWidgetAcc = nullptr; } - return pFieldWidgetAcc; + return pFieldWidgetAcc ? pFieldWidgetAcc->GetNode() : nullptr; } CXFA_Node* pGrandNode = pParentNode ? pParentNode->GetParent() : nullptr; @@ -779,8 +779,7 @@ CXFA_WidgetAcc* CXFA_Node::GetContainerWidgetAcc() { } CXFA_Node* pParentOfValueNode = pValueNode ? pValueNode->GetParent() : nullptr; - return pParentOfValueNode ? pParentOfValueNode->GetContainerWidgetAcc() - : nullptr; + return pParentOfValueNode ? pParentOfValueNode->GetContainerNode() : nullptr; } IFX_Locale* CXFA_Node::GetLocale() { @@ -1695,9 +1694,9 @@ void CXFA_Node::SendAttributeChangeMessage(XFA_Attribute eAttribute, void CXFA_Node::SyncValue(const WideString& wsValue, bool bNotify) { WideString wsFormatValue = wsValue; - CXFA_WidgetAcc* pContainerWidgetAcc = GetContainerWidgetAcc(); - if (pContainerWidgetAcc) - wsFormatValue = pContainerWidgetAcc->GetFormatDataValue(wsValue); + CXFA_Node* pContainerNode = GetContainerNode(); + if (pContainerNode && pContainerNode->GetWidgetAcc()) + wsFormatValue = pContainerNode->GetWidgetAcc()->GetFormatDataValue(wsValue); JSObject()->SetContent(wsValue, wsFormatValue, bNotify, false, true); } diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h index fa455ba21b..9cda17c527 100644 --- a/xfa/fxfa/parser/cxfa_node.h +++ b/xfa/fxfa/parser/cxfa_node.h @@ -194,7 +194,7 @@ class CXFA_Node : public CXFA_Object { int32_t AddBindItem(CXFA_Node* pFormNode); int32_t RemoveBindItem(CXFA_Node* pFormNode); bool HasBindItem(); - CXFA_WidgetAcc* GetContainerWidgetAcc(); + CXFA_Node* GetContainerNode(); IFX_Locale* GetLocale(); Optional GetLocaleName(); XFA_AttributeEnum GetIntact(); -- cgit v1.2.3