summaryrefslogtreecommitdiff
path: root/xfa/fxfa
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxfa')
-rw-r--r--xfa/fxfa/cxfa_fffield.cpp5
-rw-r--r--xfa/fxfa/cxfa_widgetacc.cpp9
-rw-r--r--xfa/fxfa/parser/cxfa_scriptdata.cpp18
-rw-r--r--xfa/fxfa/parser/cxfa_scriptdata.h18
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_