diff options
-rw-r--r-- | BUILD.gn | 4 | ||||
-rw-r--r-- | fxjs/cjx_node.cpp | 69 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp | 7 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_node.cpp | 2 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_occurdata.cpp (renamed from xfa/fxfa/parser/cxfa_occur.cpp) | 16 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_occurdata.h (renamed from xfa/fxfa/parser/cxfa_occur.h) | 10 | ||||
-rw-r--r-- | xfa/fxfa/parser/xfa_document_datamerger_imp.cpp | 9 |
7 files changed, 58 insertions, 59 deletions
@@ -1858,8 +1858,8 @@ if (pdf_enable_xfa) { "xfa/fxfa/parser/cxfa_nodelocale.h", "xfa/fxfa/parser/cxfa_object.cpp", "xfa/fxfa/parser/cxfa_object.h", - "xfa/fxfa/parser/cxfa_occur.cpp", - "xfa/fxfa/parser/cxfa_occur.h", + "xfa/fxfa/parser/cxfa_occurdata.cpp", + "xfa/fxfa/parser/cxfa_occurdata.h", "xfa/fxfa/parser/cxfa_para.cpp", "xfa/fxfa/parser/cxfa_para.h", "xfa/fxfa/parser/cxfa_rectangle.h", diff --git a/fxjs/cjx_node.cpp b/fxjs/cjx_node.cpp index dcdd0c5bd3..d81c8d5f00 100644 --- a/fxjs/cjx_node.cpp +++ b/fxjs/cjx_node.cpp @@ -25,7 +25,7 @@ #include "xfa/fxfa/parser/cxfa_layoutprocessor.h" #include "xfa/fxfa/parser/cxfa_measurement.h" #include "xfa/fxfa/parser/cxfa_node.h" -#include "xfa/fxfa/parser/cxfa_occur.h" +#include "xfa/fxfa/parser/cxfa_occurdata.h" #include "xfa/fxfa/parser/cxfa_simple_parser.h" #include "xfa/fxfa/parser/xfa_utils.h" @@ -351,9 +351,9 @@ int32_t CJX_Node::Subform_and_SubformSet_InstanceIndex() { } int32_t CJX_Node::InstanceManager_SetInstances(int32_t iDesired) { - CXFA_Occur nodeOccur(GetXFANode()->GetOccurNode()); - int32_t iMax = nodeOccur.GetMax(); - int32_t iMin = nodeOccur.GetMin(); + CXFA_OccurData occurData(GetXFANode()->GetOccurNode()); + int32_t iMax = occurData.GetMax(); + int32_t iMin = occurData.GetMin(); if (iDesired < iMin) { ThrowTooManyOccurancesException(L"min"); return 1; @@ -2449,8 +2449,7 @@ void CJX_Node::Script_InstanceManager_Max(CFXJSE_Value* pValue, ThrowInvalidPropertyException(); return; } - CXFA_Occur nodeOccur(GetXFANode()->GetOccurNode()); - pValue->SetInteger(nodeOccur.GetMax()); + pValue->SetInteger(CXFA_OccurData(GetXFANode()->GetOccurNode()).GetMax()); } void CJX_Node::Script_InstanceManager_Min(CFXJSE_Value* pValue, @@ -2460,8 +2459,7 @@ void CJX_Node::Script_InstanceManager_Min(CFXJSE_Value* pValue, ThrowInvalidPropertyException(); return; } - CXFA_Occur nodeOccur(GetXFANode()->GetOccurNode()); - pValue->SetInteger(nodeOccur.GetMin()); + pValue->SetInteger(CXFA_OccurData(GetXFANode()->GetOccurNode()).GetMin()); } void CJX_Node::Script_InstanceManager_Count(CFXJSE_Value* pValue, @@ -2511,8 +2509,8 @@ void CJX_Node::Script_InstanceManager_RemoveInstance( ThrowIndexOutOfBoundsException(); return; } - CXFA_Occur nodeOccur(GetXFANode()->GetOccurNode()); - int32_t iMin = nodeOccur.GetMin(); + + int32_t iMin = CXFA_OccurData(GetXFANode()->GetOccurNode()).GetMin(); if (iCount - 1 < iMin) { ThrowTooManyOccurancesException(L"min"); return; @@ -2554,30 +2552,31 @@ void CJX_Node::Script_InstanceManager_AddInstance( ThrowParamCountMismatchException(L"addInstance"); return; } + bool fFlags = true; - if (argc == 1) { + if (argc == 1) fFlags = pArguments->GetInt32(0) == 0 ? false : true; - } + int32_t iCount = GetXFANode()->GetCount(); - CXFA_Occur nodeOccur(GetXFANode()->GetOccurNode()); - int32_t iMax = nodeOccur.GetMax(); + int32_t iMax = CXFA_OccurData(GetXFANode()->GetOccurNode()).GetMax(); if (iMax >= 0 && iCount >= iMax) { ThrowTooManyOccurancesException(L"max"); return; } + CXFA_Node* pNewInstance = GetXFANode()->CreateInstance(fFlags); GetXFANode()->InsertItem(pNewInstance, iCount, iCount, false); pArguments->GetReturnValue()->Assign( GetDocument()->GetScriptContext()->GetJSValueFromMap(pNewInstance)); CXFA_FFNotify* pNotify = GetDocument()->GetNotify(); - if (!pNotify) { + if (!pNotify) return; - } + pNotify->RunNodeInitialize(pNewInstance); CXFA_LayoutProcessor* pLayoutPro = GetDocument()->GetLayoutProcessor(); - if (!pLayoutPro) { + if (!pLayoutPro) return; - } + pLayoutPro->AddChangedContainer( ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Form))); } @@ -2589,59 +2588,59 @@ void CJX_Node::Script_InstanceManager_InsertInstance( ThrowParamCountMismatchException(L"insertInstance"); return; } + int32_t iIndex = pArguments->GetInt32(0); - bool bBind = false; - if (argc == 2) { - bBind = pArguments->GetInt32(1) == 0 ? false : true; - } - CXFA_Occur nodeOccur(GetXFANode()->GetOccurNode()); int32_t iCount = GetXFANode()->GetCount(); if (iIndex < 0 || iIndex > iCount) { ThrowIndexOutOfBoundsException(); return; } - int32_t iMax = nodeOccur.GetMax(); + + int32_t iMax = CXFA_OccurData(GetXFANode()->GetOccurNode()).GetMax(); if (iMax >= 0 && iCount >= iMax) { ThrowTooManyOccurancesException(L"max"); return; } - CXFA_Node* pNewInstance = GetXFANode()->CreateInstance(bBind); + + CXFA_Node* pNewInstance = + GetXFANode()->CreateInstance(argc == 2 && pArguments->GetInt32(1) != 0); GetXFANode()->InsertItem(pNewInstance, iIndex, iCount, true); pArguments->GetReturnValue()->Assign( GetDocument()->GetScriptContext()->GetJSValueFromMap(pNewInstance)); CXFA_FFNotify* pNotify = GetDocument()->GetNotify(); - if (!pNotify) { + if (!pNotify) return; - } + pNotify->RunNodeInitialize(pNewInstance); CXFA_LayoutProcessor* pLayoutPro = GetDocument()->GetLayoutProcessor(); - if (!pLayoutPro) { + if (!pLayoutPro) return; - } + pLayoutPro->AddChangedContainer( ToNode(GetDocument()->GetXFAObject(XFA_HASHCODE_Form))); } + void CJX_Node::Script_Occur_Max(CFXJSE_Value* pValue, bool bSetting, XFA_ATTRIBUTE eAttribute) { - CXFA_Occur occur(GetXFANode()); + CXFA_OccurData occurData(GetXFANode()); if (bSetting) { int32_t iMax = pValue->ToInteger(); - occur.SetMax(iMax); + occurData.SetMax(iMax); } else { - pValue->SetInteger(occur.GetMax()); + pValue->SetInteger(occurData.GetMax()); } } void CJX_Node::Script_Occur_Min(CFXJSE_Value* pValue, bool bSetting, XFA_ATTRIBUTE eAttribute) { - CXFA_Occur occur(GetXFANode()); + CXFA_OccurData occurData(GetXFANode()); if (bSetting) { int32_t iMin = pValue->ToInteger(); - occur.SetMin(iMin); + occurData.SetMin(iMin); } else { - pValue->SetInteger(occur.GetMin()); + pValue->SetInteger(occurData.GetMin()); } } diff --git a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp index f408ec4d58..16b0dee096 100644 --- a/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp +++ b/xfa/fxfa/parser/cxfa_itemlayoutprocessor.cpp @@ -23,7 +23,7 @@ #include "xfa/fxfa/parser/cxfa_localemgr.h" #include "xfa/fxfa/parser/cxfa_measurement.h" #include "xfa/fxfa/parser/cxfa_node.h" -#include "xfa/fxfa/parser/cxfa_occur.h" +#include "xfa/fxfa/parser/cxfa_occurdata.h" #include "xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h" #include "xfa/fxfa/parser/xfa_utils.h" @@ -2820,8 +2820,9 @@ bool CXFA_ItemLayoutProcessor::JudgeLeaderOrTrailerForOccur( if (!pTemplate) pTemplate = pFormNode; - CXFA_Occur NodeOccur(pTemplate->GetFirstChildByClass(XFA_Element::Occur)); - int32_t iMax = NodeOccur.GetMax(); + int32_t iMax = + CXFA_OccurData(pTemplate->GetFirstChildByClass(XFA_Element::Occur)) + .GetMax(); if (iMax < 0) return true; diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp index 475295f9dd..64beeffa03 100644 --- a/xfa/fxfa/parser/cxfa_node.cpp +++ b/xfa/fxfa/parser/cxfa_node.cpp @@ -32,7 +32,7 @@ #include "xfa/fxfa/parser/cxfa_document.h" #include "xfa/fxfa/parser/cxfa_layoutprocessor.h" #include "xfa/fxfa/parser/cxfa_measurement.h" -#include "xfa/fxfa/parser/cxfa_occur.h" +#include "xfa/fxfa/parser/cxfa_occurdata.h" #include "xfa/fxfa/parser/cxfa_simple_parser.h" #include "xfa/fxfa/parser/cxfa_traversestrategy_xfacontainernode.h" #include "xfa/fxfa/parser/xfa_basic_data.h" diff --git a/xfa/fxfa/parser/cxfa_occur.cpp b/xfa/fxfa/parser/cxfa_occurdata.cpp index 6c770d2e72..3bbe00cd35 100644 --- a/xfa/fxfa/parser/cxfa_occur.cpp +++ b/xfa/fxfa/parser/cxfa_occurdata.cpp @@ -4,13 +4,13 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "xfa/fxfa/parser/cxfa_occur.h" +#include "xfa/fxfa/parser/cxfa_occurdata.h" #include "xfa/fxfa/parser/cxfa_node.h" -CXFA_Occur::CXFA_Occur(CXFA_Node* pNode) : CXFA_Data(pNode) {} +CXFA_OccurData::CXFA_OccurData(CXFA_Node* pNode) : CXFA_Data(pNode) {} -int32_t CXFA_Occur::GetMax() { +int32_t CXFA_OccurData::GetMax() { int32_t iMax = 1; if (m_pNode) { if (!m_pNode->JSNode()->TryInteger(XFA_ATTRIBUTE_Max, iMax, true)) @@ -19,7 +19,7 @@ int32_t CXFA_Occur::GetMax() { return iMax; } -int32_t CXFA_Occur::GetMin() { +int32_t CXFA_OccurData::GetMin() { int32_t iMin = 1; if (m_pNode) { if (!m_pNode->JSNode()->TryInteger(XFA_ATTRIBUTE_Min, iMin, true) || @@ -29,7 +29,9 @@ int32_t CXFA_Occur::GetMin() { return iMin; } -bool CXFA_Occur::GetOccurInfo(int32_t& iMin, int32_t& iMax, int32_t& iInit) { +bool CXFA_OccurData::GetOccurInfo(int32_t& iMin, + int32_t& iMax, + int32_t& iInit) { if (!m_pNode) return false; if (!m_pNode->JSNode()->TryInteger(XFA_ATTRIBUTE_Min, iMin, false) || @@ -48,7 +50,7 @@ bool CXFA_Occur::GetOccurInfo(int32_t& iMin, int32_t& iMax, int32_t& iInit) { return true; } -void CXFA_Occur::SetMax(int32_t iMax) { +void CXFA_OccurData::SetMax(int32_t iMax) { iMax = (iMax != -1 && iMax < 1) ? 1 : iMax; m_pNode->JSNode()->SetInteger(XFA_ATTRIBUTE_Max, iMax, false); int32_t iMin = GetMin(); @@ -58,7 +60,7 @@ void CXFA_Occur::SetMax(int32_t iMax) { } } -void CXFA_Occur::SetMin(int32_t iMin) { +void CXFA_OccurData::SetMin(int32_t iMin) { iMin = (iMin < 0) ? 1 : iMin; m_pNode->JSNode()->SetInteger(XFA_ATTRIBUTE_Min, iMin, false); int32_t iMax = GetMax(); diff --git a/xfa/fxfa/parser/cxfa_occur.h b/xfa/fxfa/parser/cxfa_occurdata.h index 69db071a11..90554bd0eb 100644 --- a/xfa/fxfa/parser/cxfa_occur.h +++ b/xfa/fxfa/parser/cxfa_occurdata.h @@ -4,17 +4,17 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#ifndef XFA_FXFA_PARSER_CXFA_OCCUR_H_ -#define XFA_FXFA_PARSER_CXFA_OCCUR_H_ +#ifndef XFA_FXFA_PARSER_CXFA_OCCURDATA_H_ +#define XFA_FXFA_PARSER_CXFA_OCCURDATA_H_ #include "core/fxcrt/fx_system.h" #include "xfa/fxfa/parser/cxfa_data.h" class CXFA_Node; -class CXFA_Occur : public CXFA_Data { +class CXFA_OccurData : public CXFA_Data { public: - explicit CXFA_Occur(CXFA_Node* pNode); + explicit CXFA_OccurData(CXFA_Node* pNode); int32_t GetMax(); int32_t GetMin(); @@ -23,4 +23,4 @@ class CXFA_Occur : public CXFA_Data { void SetMin(int32_t iMin); }; -#endif // XFA_FXFA_PARSER_CXFA_OCCUR_H_ +#endif // XFA_FXFA_PARSER_CXFA_OCCURDATA_H_ diff --git a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp index a6441a68db..f7df149ceb 100644 --- a/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp +++ b/xfa/fxfa/parser/xfa_document_datamerger_imp.cpp @@ -19,7 +19,7 @@ #include "xfa/fxfa/parser/cxfa_layoutprocessor.h" #include "xfa/fxfa/parser/cxfa_localemgr.h" #include "xfa/fxfa/parser/cxfa_node.h" -#include "xfa/fxfa/parser/cxfa_occur.h" +#include "xfa/fxfa/parser/cxfa_occurdata.h" #include "xfa/fxfa/parser/cxfa_traversestrategy_xfacontainernode.h" #include "xfa/fxfa/parser/cxfa_traversestrategy_xfanode.h" #include "xfa/fxfa/parser/xfa_resolvenode_rs.h" @@ -49,11 +49,8 @@ bool GetOccurInfo(CXFA_Node* pOccurNode, int32_t& iMin, int32_t& iMax, int32_t& iInit) { - if (!pOccurNode) - return false; - - CXFA_Occur occur(pOccurNode); - return occur.GetOccurInfo(iMin, iMax, iInit); + return pOccurNode && + CXFA_OccurData(pOccurNode).GetOccurInfo(iMin, iMax, iInit); } CXFA_Node* FormValueNode_CreateChild(CXFA_Node* pValueNode, XFA_Element iType) { |