diff options
Diffstat (limited to 'xfa/fxfa')
-rw-r--r-- | xfa/fxfa/cxfa_fffield.cpp | 5 | ||||
-rw-r--r-- | xfa/fxfa/cxfa_widgetacc.cpp | 9 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_scriptdata.cpp | 18 | ||||
-rw-r--r-- | xfa/fxfa/parser/cxfa_scriptdata.h | 18 |
4 files changed, 22 insertions, 28 deletions
diff --git a/xfa/fxfa/cxfa_fffield.cpp b/xfa/fxfa/cxfa_fffield.cpp index 3b9b7c67c8..ca3d2bb047 100644 --- a/xfa/fxfa/cxfa_fffield.cpp +++ b/xfa/fxfa/cxfa_fffield.cpp @@ -689,10 +689,7 @@ int32_t CXFA_FFField::CalculateWidgetAcc(CXFA_WidgetAcc* pAcc) { CXFA_ScriptData scriptData = calcData.GetScriptData(); if (!scriptData.HasValidNode()) return 1; - - WideString wsExpression; - scriptData.GetExpression(wsExpression); - if (wsExpression.IsEmpty()) + if (scriptData.GetExpression().IsEmpty()) return 1; } diff --git a/xfa/fxfa/cxfa_widgetacc.cpp b/xfa/fxfa/cxfa_widgetacc.cpp index 816e2a2204..fcc1e69762 100644 --- a/xfa/fxfa/cxfa_widgetacc.cpp +++ b/xfa/fxfa/cxfa_widgetacc.cpp @@ -599,19 +599,18 @@ std::pair<int32_t, bool> CXFA_WidgetAcc::ExecuteBoolScript( if (scriptData.GetRunAt() == XFA_ATTRIBUTEENUM_Server) return {XFA_EVENTERROR_Disabled, false}; - WideString wsExpression; - scriptData.GetExpression(wsExpression); + WideString wsExpression = scriptData.GetExpression(); if (wsExpression.IsEmpty()) return {XFA_EVENTERROR_NotExist, false}; - XFA_ScriptDataType eScriptType = scriptData.GetContentType(); - if (eScriptType == XFA_ScriptDataType::Unknown) + CXFA_ScriptData::Type eScriptType = scriptData.GetContentType(); + if (eScriptType == CXFA_ScriptData::Type::Unknown) return {XFA_EVENTERROR_Success, false}; CXFA_FFDoc* pDoc = GetDoc(); CFXJSE_Engine* pContext = pDoc->GetXFADoc()->GetScriptContext(); pContext->SetEventParam(*pEventParam); - pContext->SetRunAtType((XFA_ATTRIBUTEENUM)scriptData.GetRunAt()); + pContext->SetRunAtType(scriptData.GetRunAt()); std::vector<CXFA_Node*> refNodes; if (pEventParam->m_eType == XFA_EVENT_InitCalculate || diff --git a/xfa/fxfa/parser/cxfa_scriptdata.cpp b/xfa/fxfa/parser/cxfa_scriptdata.cpp index 39d9a4b8c9..40a22b672d 100644 --- a/xfa/fxfa/parser/cxfa_scriptdata.cpp +++ b/xfa/fxfa/parser/cxfa_scriptdata.cpp @@ -10,22 +10,20 @@ CXFA_ScriptData::CXFA_ScriptData(CXFA_Node* pNode) : CXFA_DataData(pNode) {} -XFA_ScriptDataType CXFA_ScriptData::GetContentType() { +CXFA_ScriptData::Type CXFA_ScriptData::GetContentType() const { pdfium::Optional<WideString> cData = m_pNode->JSNode()->TryCData(XFA_Attribute::ContentType, false); - if (!cData) - return XFA_ScriptDataType::Formcalc; + if (!cData || *cData == L"application/x-formcalc") + return Type::Formcalc; if (*cData == L"application/x-javascript") - return XFA_ScriptDataType::Javascript; - if (*cData == L"application/x-formcalc") - return XFA_ScriptDataType::Formcalc; - return XFA_ScriptDataType::Unknown; + return Type::Javascript; + return Type::Unknown; } -int32_t CXFA_ScriptData::GetRunAt() { +XFA_ATTRIBUTEENUM CXFA_ScriptData::GetRunAt() const { return m_pNode->JSNode()->GetEnum(XFA_Attribute::RunAt); } -void CXFA_ScriptData::GetExpression(WideString& wsExpression) { - wsExpression = m_pNode->JSNode()->GetContent(false); +WideString CXFA_ScriptData::GetExpression() const { + return m_pNode->JSNode()->GetContent(false); } diff --git a/xfa/fxfa/parser/cxfa_scriptdata.h b/xfa/fxfa/parser/cxfa_scriptdata.h index 6e85d79ed2..2129928fb7 100644 --- a/xfa/fxfa/parser/cxfa_scriptdata.h +++ b/xfa/fxfa/parser/cxfa_scriptdata.h @@ -12,21 +12,21 @@ #include "core/fxcrt/fx_string.h" #include "xfa/fxfa/parser/cxfa_datadata.h" -enum class XFA_ScriptDataType { - Formcalc = 0, - Javascript, - Unknown, -}; - class CXFA_Node; class CXFA_ScriptData : public CXFA_DataData { public: + enum class Type { + Formcalc = 0, + Javascript, + Unknown, + }; + explicit CXFA_ScriptData(CXFA_Node* pNode); - XFA_ScriptDataType GetContentType(); - int32_t GetRunAt(); - void GetExpression(WideString& wsExpression); + Type GetContentType() const; + XFA_ATTRIBUTEENUM GetRunAt() const; + WideString GetExpression() const; }; #endif // XFA_FXFA_PARSER_CXFA_SCRIPTDATA_H_ |