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_document_datamerger_imp.h" | 7 #include "xfa/fxfa/parser/xfa_document_datamerger_imp.h" |
8 | 8 |
9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
10 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" | 10 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 case XFA_ELEMENT_Signature: | 333 case XFA_ELEMENT_Signature: |
334 case XFA_ELEMENT_TextEdit: | 334 case XFA_ELEMENT_TextEdit: |
335 default: | 335 default: |
336 XFA_DataMerge_FormValueNode_SetChildContent( | 336 XFA_DataMerge_FormValueNode_SetChildContent( |
337 defValue.GetNode(), wsNormailizeValue, XFA_ELEMENT_Text); | 337 defValue.GetNode(), wsNormailizeValue, XFA_ELEMENT_Text); |
338 break; | 338 break; |
339 } | 339 } |
340 } | 340 } |
341 } | 341 } |
342 static CXFA_Node* XFA_DataMerge_GetGlobalBinding(CXFA_Document* pDocument, | 342 static CXFA_Node* XFA_DataMerge_GetGlobalBinding(CXFA_Document* pDocument, |
343 FX_DWORD dwNameHash) { | 343 uint32_t dwNameHash) { |
344 CXFA_Node* pNode = NULL; | 344 CXFA_Node* pNode = NULL; |
345 pDocument->m_rgGlobalBinding.Lookup(dwNameHash, pNode); | 345 pDocument->m_rgGlobalBinding.Lookup(dwNameHash, pNode); |
346 return pNode; | 346 return pNode; |
347 } | 347 } |
348 static void XFA_DataMerge_RegisterGlobalBinding(CXFA_Document* pDocument, | 348 static void XFA_DataMerge_RegisterGlobalBinding(CXFA_Document* pDocument, |
349 FX_DWORD dwNameHash, | 349 uint32_t dwNameHash, |
350 CXFA_Node* pDataNode) { | 350 CXFA_Node* pDataNode) { |
351 pDocument->m_rgGlobalBinding.SetAt(dwNameHash, pDataNode); | 351 pDocument->m_rgGlobalBinding.SetAt(dwNameHash, pDataNode); |
352 } | 352 } |
353 static void XFA_DataMerge_ClearGlobalBinding(CXFA_Document* pDocument) { | 353 static void XFA_DataMerge_ClearGlobalBinding(CXFA_Document* pDocument) { |
354 pDocument->m_rgGlobalBinding.RemoveAll(); | 354 pDocument->m_rgGlobalBinding.RemoveAll(); |
355 } | 355 } |
356 static CXFA_Node* XFA_DataMerge_ScopeMatchGlobalBinding( | 356 static CXFA_Node* XFA_DataMerge_ScopeMatchGlobalBinding( |
357 CXFA_Node* pDataScope, | 357 CXFA_Node* pDataScope, |
358 FX_DWORD dwNameHash, | 358 uint32_t dwNameHash, |
359 XFA_ELEMENT eMatchDataNodeType, | 359 XFA_ELEMENT eMatchDataNodeType, |
360 FX_BOOL bUpLevel = TRUE) { | 360 FX_BOOL bUpLevel = TRUE) { |
361 for (CXFA_Node *pCurDataScope = pDataScope, *pLastDataScope = NULL; | 361 for (CXFA_Node *pCurDataScope = pDataScope, *pLastDataScope = NULL; |
362 pCurDataScope && pCurDataScope->GetPacketID() == XFA_XDPPACKET_Datasets; | 362 pCurDataScope && pCurDataScope->GetPacketID() == XFA_XDPPACKET_Datasets; |
363 pLastDataScope = pCurDataScope, | 363 pLastDataScope = pCurDataScope, |
364 pCurDataScope = | 364 pCurDataScope = |
365 pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) { | 365 pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) { |
366 for (CXFA_Node* pDataChild = pCurDataScope->GetFirstChildByName(dwNameHash); | 366 for (CXFA_Node* pDataChild = pCurDataScope->GetFirstChildByName(dwNameHash); |
367 pDataChild; | 367 pDataChild; |
368 pDataChild = pDataChild->GetNextSameNameSibling(dwNameHash)) { | 368 pDataChild = pDataChild->GetNextSameNameSibling(dwNameHash)) { |
(...skipping 18 matching lines...) Expand all Loading... |
387 if (!bUpLevel) { | 387 if (!bUpLevel) { |
388 break; | 388 break; |
389 } | 389 } |
390 } | 390 } |
391 return NULL; | 391 return NULL; |
392 } | 392 } |
393 static CXFA_Node* XFA_DataMerge_FindGlobalDataNode(CXFA_Document* pDocument, | 393 static CXFA_Node* XFA_DataMerge_FindGlobalDataNode(CXFA_Document* pDocument, |
394 CFX_WideStringC wsName, | 394 CFX_WideStringC wsName, |
395 CXFA_Node* pDataScope, | 395 CXFA_Node* pDataScope, |
396 XFA_ELEMENT eMatchNodeType) { | 396 XFA_ELEMENT eMatchNodeType) { |
397 FX_DWORD dwNameHash = | 397 uint32_t dwNameHash = |
398 wsName.IsEmpty() ? 0 : FX_HashCode_String_GetW(wsName.GetPtr(), | 398 wsName.IsEmpty() ? 0 : FX_HashCode_String_GetW(wsName.GetPtr(), |
399 wsName.GetLength()); | 399 wsName.GetLength()); |
400 if (dwNameHash != 0) { | 400 if (dwNameHash != 0) { |
401 CXFA_Node* pBounded = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); | 401 CXFA_Node* pBounded = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); |
402 if (!pBounded) { | 402 if (!pBounded) { |
403 pBounded = XFA_DataMerge_ScopeMatchGlobalBinding(pDataScope, dwNameHash, | 403 pBounded = XFA_DataMerge_ScopeMatchGlobalBinding(pDataScope, dwNameHash, |
404 eMatchNodeType); | 404 eMatchNodeType); |
405 if (pBounded) { | 405 if (pBounded) { |
406 XFA_DataMerge_RegisterGlobalBinding(pDocument, dwNameHash, pBounded); | 406 XFA_DataMerge_RegisterGlobalBinding(pDocument, dwNameHash, pBounded); |
407 } | 407 } |
408 } | 408 } |
409 return pBounded; | 409 return pBounded; |
410 } | 410 } |
411 return NULL; | 411 return NULL; |
412 } | 412 } |
413 static CXFA_Node* XFA_DataMerge_FindOnceDataNode(CXFA_Document* pDocument, | 413 static CXFA_Node* XFA_DataMerge_FindOnceDataNode(CXFA_Document* pDocument, |
414 CFX_WideStringC wsName, | 414 CFX_WideStringC wsName, |
415 CXFA_Node* pDataScope, | 415 CXFA_Node* pDataScope, |
416 XFA_ELEMENT eMatchNodeType) { | 416 XFA_ELEMENT eMatchNodeType) { |
417 FX_DWORD dwNameHash = | 417 uint32_t dwNameHash = |
418 wsName.IsEmpty() ? 0 : FX_HashCode_String_GetW(wsName.GetPtr(), | 418 wsName.IsEmpty() ? 0 : FX_HashCode_String_GetW(wsName.GetPtr(), |
419 wsName.GetLength()); | 419 wsName.GetLength()); |
420 if (dwNameHash != 0) { | 420 if (dwNameHash != 0) { |
421 for (CXFA_Node *pCurDataScope = pDataScope, *pLastDataScope = NULL; | 421 for (CXFA_Node *pCurDataScope = pDataScope, *pLastDataScope = NULL; |
422 pCurDataScope && | 422 pCurDataScope && |
423 pCurDataScope->GetPacketID() == XFA_XDPPACKET_Datasets; | 423 pCurDataScope->GetPacketID() == XFA_XDPPACKET_Datasets; |
424 pLastDataScope = pCurDataScope, | 424 pLastDataScope = pCurDataScope, |
425 pCurDataScope = | 425 pCurDataScope = |
426 pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) { | 426 pCurDataScope->GetNodeItem(XFA_NODEITEM_Parent)) { |
427 for (CXFA_Node* pDataChild = | 427 for (CXFA_Node* pDataChild = |
(...skipping 12 matching lines...) Expand all Loading... |
440 } | 440 } |
441 return NULL; | 441 return NULL; |
442 } | 442 } |
443 static CXFA_Node* XFA_DataMerge_FindDataRefDataNode(CXFA_Document* pDocument, | 443 static CXFA_Node* XFA_DataMerge_FindDataRefDataNode(CXFA_Document* pDocument, |
444 CFX_WideStringC wsRef, | 444 CFX_WideStringC wsRef, |
445 CXFA_Node* pDataScope, | 445 CXFA_Node* pDataScope, |
446 XFA_ELEMENT eMatchNodeType, | 446 XFA_ELEMENT eMatchNodeType, |
447 CXFA_Node* pTemplateNode, | 447 CXFA_Node* pTemplateNode, |
448 FX_BOOL bForceBind, | 448 FX_BOOL bForceBind, |
449 FX_BOOL bUpLevel = TRUE) { | 449 FX_BOOL bUpLevel = TRUE) { |
450 FX_DWORD dFlags = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_BindNew; | 450 uint32_t dFlags = XFA_RESOLVENODE_Children | XFA_RESOLVENODE_BindNew; |
451 if (bUpLevel || wsRef != FX_WSTRC(L"name")) { | 451 if (bUpLevel || wsRef != FX_WSTRC(L"name")) { |
452 dFlags |= (XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings); | 452 dFlags |= (XFA_RESOLVENODE_Parent | XFA_RESOLVENODE_Siblings); |
453 } | 453 } |
454 XFA_RESOLVENODE_RS rs; | 454 XFA_RESOLVENODE_RS rs; |
455 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, dFlags, | 455 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, dFlags, |
456 pTemplateNode); | 456 pTemplateNode); |
457 if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeAll || | 457 if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeAll || |
458 rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeMidAll || | 458 rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeMidAll || |
459 rs.nodes.GetSize() > 1) { | 459 rs.nodes.GetSize() > 1) { |
460 return pDocument->GetNotBindNode(rs.nodes); | 460 return pDocument->GetNotBindNode(rs.nodes); |
461 } | 461 } |
462 if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeOne) { | 462 if (rs.dwFlags == XFA_RESOLVENODE_RSTYPE_CreateNodeOne) { |
463 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; | 463 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; |
464 CXFA_Node* pNode = ToNode(pObject); | 464 CXFA_Node* pNode = ToNode(pObject); |
465 if (!bForceBind && pNode && pNode->HasBindItem()) { | 465 if (!bForceBind && pNode && pNode->HasBindItem()) { |
466 pNode = NULL; | 466 pNode = NULL; |
467 } | 467 } |
468 return pNode; | 468 return pNode; |
469 } | 469 } |
470 return NULL; | 470 return NULL; |
471 } | 471 } |
472 CXFA_Node* XFA_DataMerge_FindFormDOMInstance(CXFA_Document* pDocument, | 472 CXFA_Node* XFA_DataMerge_FindFormDOMInstance(CXFA_Document* pDocument, |
473 XFA_ELEMENT eClassID, | 473 XFA_ELEMENT eClassID, |
474 FX_DWORD dwNameHash, | 474 uint32_t dwNameHash, |
475 CXFA_Node* pFormParent) { | 475 CXFA_Node* pFormParent) { |
476 CXFA_Node* pFormChild = pFormParent->GetNodeItem(XFA_NODEITEM_FirstChild); | 476 CXFA_Node* pFormChild = pFormParent->GetNodeItem(XFA_NODEITEM_FirstChild); |
477 for (; pFormChild; | 477 for (; pFormChild; |
478 pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { | 478 pFormChild = pFormChild->GetNodeItem(XFA_NODEITEM_NextSibling)) { |
479 if (pFormChild->GetClassID() == eClassID && | 479 if (pFormChild->GetClassID() == eClassID && |
480 pFormChild->GetNameHash() == dwNameHash && | 480 pFormChild->GetNameHash() == dwNameHash && |
481 pFormChild->HasFlag(XFA_NODEFLAG_UnusedNode)) { | 481 pFormChild->HasFlag(XFA_NODEFLAG_UnusedNode)) { |
482 return pFormChild; | 482 return pFormChild; |
483 } | 483 } |
484 } | 484 } |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 } | 551 } |
552 return pNewNode; | 552 return pNewNode; |
553 } | 553 } |
554 static CXFA_Node* XFA_NodeMerge_CloneOrMergeInstanceManager( | 554 static CXFA_Node* XFA_NodeMerge_CloneOrMergeInstanceManager( |
555 CXFA_Document* pDocument, | 555 CXFA_Document* pDocument, |
556 CXFA_Node* pFormParent, | 556 CXFA_Node* pFormParent, |
557 CXFA_Node* pTemplateNode, | 557 CXFA_Node* pTemplateNode, |
558 CXFA_NodeArray& subforms) { | 558 CXFA_NodeArray& subforms) { |
559 CFX_WideStringC wsSubformName = pTemplateNode->GetCData(XFA_ATTRIBUTE_Name); | 559 CFX_WideStringC wsSubformName = pTemplateNode->GetCData(XFA_ATTRIBUTE_Name); |
560 CFX_WideString wsInstMgrNodeName = FX_WSTRC(L"_") + wsSubformName; | 560 CFX_WideString wsInstMgrNodeName = FX_WSTRC(L"_") + wsSubformName; |
561 FX_DWORD dwInstNameHash = | 561 uint32_t dwInstNameHash = |
562 FX_HashCode_String_GetW(wsInstMgrNodeName, wsInstMgrNodeName.GetLength()); | 562 FX_HashCode_String_GetW(wsInstMgrNodeName, wsInstMgrNodeName.GetLength()); |
563 CXFA_Node* pExistingNode = XFA_DataMerge_FindFormDOMInstance( | 563 CXFA_Node* pExistingNode = XFA_DataMerge_FindFormDOMInstance( |
564 pDocument, XFA_ELEMENT_InstanceManager, dwInstNameHash, pFormParent); | 564 pDocument, XFA_ELEMENT_InstanceManager, dwInstNameHash, pFormParent); |
565 if (pExistingNode) { | 565 if (pExistingNode) { |
566 FX_DWORD dwNameHash = pTemplateNode->GetNameHash(); | 566 uint32_t dwNameHash = pTemplateNode->GetNameHash(); |
567 for (CXFA_Node* pNode = | 567 for (CXFA_Node* pNode = |
568 pExistingNode->GetNodeItem(XFA_NODEITEM_NextSibling); | 568 pExistingNode->GetNodeItem(XFA_NODEITEM_NextSibling); |
569 pNode;) { | 569 pNode;) { |
570 XFA_ELEMENT eCurType = pNode->GetClassID(); | 570 XFA_ELEMENT eCurType = pNode->GetClassID(); |
571 if (eCurType == XFA_ELEMENT_InstanceManager) { | 571 if (eCurType == XFA_ELEMENT_InstanceManager) { |
572 break; | 572 break; |
573 } | 573 } |
574 if ((eCurType != XFA_ELEMENT_Subform) && | 574 if ((eCurType != XFA_ELEMENT_Subform) && |
575 (eCurType != XFA_ELEMENT_SubformSet)) { | 575 (eCurType != XFA_ELEMENT_SubformSet)) { |
576 pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling); | 576 pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling); |
(...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1145 if (pDataParent != pDataScope) { | 1145 if (pDataParent != pDataScope) { |
1146 FXSYS_assert(pDataParent); | 1146 FXSYS_assert(pDataParent); |
1147 pDataParent->RemoveChild(pDataNode); | 1147 pDataParent->RemoveChild(pDataNode); |
1148 pDataScope->InsertChild(pDataNode); | 1148 pDataScope->InsertChild(pDataNode); |
1149 } | 1149 } |
1150 } | 1150 } |
1151 } | 1151 } |
1152 break; | 1152 break; |
1153 case XFA_ATTRIBUTEENUM_Global: | 1153 case XFA_ATTRIBUTEENUM_Global: |
1154 if (!bDataRef || bParentDataRef) { | 1154 if (!bDataRef || bParentDataRef) { |
1155 FX_DWORD dwNameHash = pFormNode->GetNameHash(); | 1155 uint32_t dwNameHash = pFormNode->GetNameHash(); |
1156 if (dwNameHash != 0 && !pDataNode) { | 1156 if (dwNameHash != 0 && !pDataNode) { |
1157 pDataNode = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); | 1157 pDataNode = XFA_DataMerge_GetGlobalBinding(pDocument, dwNameHash); |
1158 if (!pDataNode) { | 1158 if (!pDataNode) { |
1159 XFA_ELEMENT eDataNodeType = (eClassID == XFA_ELEMENT_Subform || | 1159 XFA_ELEMENT eDataNodeType = (eClassID == XFA_ELEMENT_Subform || |
1160 XFA_FieldIsMultiListBox(pFormNode)) | 1160 XFA_FieldIsMultiListBox(pFormNode)) |
1161 ? XFA_ELEMENT_DataGroup | 1161 ? XFA_ELEMENT_DataGroup |
1162 : XFA_ELEMENT_DataValue; | 1162 : XFA_ELEMENT_DataValue; |
1163 CXFA_Node* pRecordNode = | 1163 CXFA_Node* pRecordNode = |
1164 ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record)); | 1164 ToNode(pDocument->GetXFAObject(XFA_HASHCODE_Record)); |
1165 pDataNode = XFA_DataDescription_MaybeCreateDataNode( | 1165 pDataNode = XFA_DataDescription_MaybeCreateDataNode( |
(...skipping 12 matching lines...) Expand all Loading... |
1178 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode); | 1178 XFA_DataMerge_FormValueNode_MatchNoneCreateChild(pFormNode); |
1179 } | 1179 } |
1180 } | 1180 } |
1181 break; | 1181 break; |
1182 case XFA_ATTRIBUTEENUM_DataRef: { | 1182 case XFA_ATTRIBUTEENUM_DataRef: { |
1183 bMatchRef = bDataRef; | 1183 bMatchRef = bDataRef; |
1184 bParentDataRef = TRUE; | 1184 bParentDataRef = TRUE; |
1185 if (!pDataNode && bDataRef) { | 1185 if (!pDataNode && bDataRef) { |
1186 CFX_WideStringC wsRef = | 1186 CFX_WideStringC wsRef = |
1187 pTemplateNodeBind->GetCData(XFA_ATTRIBUTE_Ref); | 1187 pTemplateNodeBind->GetCData(XFA_ATTRIBUTE_Ref); |
1188 FX_DWORD dFlags = | 1188 uint32_t dFlags = |
1189 XFA_RESOLVENODE_Children | XFA_RESOLVENODE_CreateNode; | 1189 XFA_RESOLVENODE_Children | XFA_RESOLVENODE_CreateNode; |
1190 XFA_RESOLVENODE_RS rs; | 1190 XFA_RESOLVENODE_RS rs; |
1191 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, | 1191 pDocument->GetScriptContext()->ResolveObjects(pDataScope, wsRef, rs, |
1192 dFlags, pTemplateNode); | 1192 dFlags, pTemplateNode); |
1193 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; | 1193 CXFA_Object* pObject = (rs.nodes.GetSize() > 0) ? rs.nodes[0] : NULL; |
1194 pDataNode = ToNode(pObject); | 1194 pDataNode = ToNode(pObject); |
1195 if (pDataNode) { | 1195 if (pDataNode) { |
1196 XFA_DataMerge_CreateDataBinding( | 1196 XFA_DataMerge_CreateDataBinding( |
1197 pFormNode, pDataNode, | 1197 pFormNode, pDataNode, |
1198 rs.dwFlags == XFA_RESOVENODE_RSTYPE_ExistNodes); | 1198 rs.dwFlags == XFA_RESOVENODE_RSTYPE_ExistNodes); |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1308 IFDE_XMLElement* pDataRootXMLNode = | 1308 IFDE_XMLElement* pDataRootXMLNode = |
1309 IFDE_XMLElement::Create(FX_WSTRC(L"xfa:data")); | 1309 IFDE_XMLElement::Create(FX_WSTRC(L"xfa:data")); |
1310 FXSYS_assert(pDataRootXMLNode); | 1310 FXSYS_assert(pDataRootXMLNode); |
1311 pDataRoot = CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataGroup); | 1311 pDataRoot = CreateNode(XFA_XDPPACKET_Datasets, XFA_ELEMENT_DataGroup); |
1312 pDataRoot->SetCData(XFA_ATTRIBUTE_Name, FX_WSTRC(L"data")); | 1312 pDataRoot->SetCData(XFA_ATTRIBUTE_Name, FX_WSTRC(L"data")); |
1313 pDataRoot->SetXMLMappingNode(pDataRootXMLNode); | 1313 pDataRoot->SetXMLMappingNode(pDataRootXMLNode); |
1314 pDatasetsRoot->InsertChild(pDataRoot); | 1314 pDatasetsRoot->InsertChild(pDataRoot); |
1315 } | 1315 } |
1316 CXFA_Node* pDataTopLevel = | 1316 CXFA_Node* pDataTopLevel = |
1317 pDataRoot->GetFirstChildByClass(XFA_ELEMENT_DataGroup); | 1317 pDataRoot->GetFirstChildByClass(XFA_ELEMENT_DataGroup); |
1318 FX_DWORD dwNameHash = pDataTopLevel ? pDataTopLevel->GetNameHash() : 0; | 1318 uint32_t dwNameHash = pDataTopLevel ? pDataTopLevel->GetNameHash() : 0; |
1319 CXFA_Node* pTemplateRoot = | 1319 CXFA_Node* pTemplateRoot = |
1320 m_pRootNode->GetFirstChildByClass(XFA_ELEMENT_Template); | 1320 m_pRootNode->GetFirstChildByClass(XFA_ELEMENT_Template); |
1321 if (!pTemplateRoot) { | 1321 if (!pTemplateRoot) { |
1322 return; | 1322 return; |
1323 } | 1323 } |
1324 CXFA_Node* pTemplateChosen = | 1324 CXFA_Node* pTemplateChosen = |
1325 dwNameHash != 0 ? pTemplateRoot->GetFirstChildByName(dwNameHash) : NULL; | 1325 dwNameHash != 0 ? pTemplateRoot->GetFirstChildByName(dwNameHash) : NULL; |
1326 if (!pTemplateChosen || | 1326 if (!pTemplateChosen || |
1327 pTemplateChosen->GetClassID() != XFA_ELEMENT_Subform) { | 1327 pTemplateChosen->GetClassID() != XFA_ELEMENT_Subform) { |
1328 pTemplateChosen = pTemplateRoot->GetFirstChildByClass(XFA_ELEMENT_Subform); | 1328 pTemplateChosen = pTemplateRoot->GetFirstChildByClass(XFA_ELEMENT_Subform); |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1420 } | 1420 } |
1421 pFormRoot->SetObject(XFA_ATTRIBUTE_BindingNode, NULL); | 1421 pFormRoot->SetObject(XFA_ATTRIBUTE_BindingNode, NULL); |
1422 } | 1422 } |
1423 XFA_DataMerge_ClearGlobalBinding(this); | 1423 XFA_DataMerge_ClearGlobalBinding(this); |
1424 if (bDoDataMerge) { | 1424 if (bDoDataMerge) { |
1425 DoDataMerge(); | 1425 DoDataMerge(); |
1426 } | 1426 } |
1427 CXFA_LayoutProcessor* pLayoutProcessor = GetLayoutProcessor(); | 1427 CXFA_LayoutProcessor* pLayoutProcessor = GetLayoutProcessor(); |
1428 pLayoutProcessor->SetForceReLayout(TRUE); | 1428 pLayoutProcessor->SetForceReLayout(TRUE); |
1429 } | 1429 } |
OLD | NEW |