Fold CXFA_CalculateData into CXFA_Calculate
This CL folds CXFA_CalculateData into CXFA_Calculate as it is just a
thin wrapper.
Change-Id: I35efbee6c0244139a7ece19f3e8ee18bfb931dda
Reviewed-on: https://pdfium-review.googlesource.com/22090
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 975071a..b6482c7 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -2143,8 +2143,6 @@
"xfa/fxfa/parser/cxfa_cache.h",
"xfa/fxfa/parser/cxfa_calculate.cpp",
"xfa/fxfa/parser/cxfa_calculate.h",
- "xfa/fxfa/parser/cxfa_calculatedata.cpp",
- "xfa/fxfa/parser/cxfa_calculatedata.h",
"xfa/fxfa/parser/cxfa_calendarsymbols.cpp",
"xfa/fxfa/parser/cxfa_calendarsymbols.h",
"xfa/fxfa/parser/cxfa_caption.cpp",
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 3fea83c..bd2b709 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -31,6 +31,7 @@
#include "xfa/fxfa/cxfa_widgetacciterator.h"
#include "xfa/fxfa/parser/cxfa_acrobat.h"
#include "xfa/fxfa/parser/cxfa_binditemsdata.h"
+#include "xfa/fxfa/parser/cxfa_calculate.h"
#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
#include "xfa/fxfa/parser/cxfa_pageset.h"
#include "xfa/fxfa/parser/cxfa_present.h"
@@ -416,13 +417,13 @@
}
return XFA_EVENTERROR_Disabled;
case XFA_EVENT_InitCalculate: {
- CXFA_CalculateData calcData = pWidgetAcc->GetCalculateData();
- if (!calcData.HasValidNode())
+ CXFA_Calculate* calc = pWidgetAcc->GetCalculate();
+ if (!calc)
return XFA_EVENTERROR_NotExist;
if (pWidgetAcc->GetNode()->IsUserInteractive())
return XFA_EVENTERROR_Disabled;
- return pWidgetAcc->ExecuteScript(calcData.GetScript(), pParam);
+ return pWidgetAcc->ExecuteScript(calc->GetScript(), pParam);
}
default:
break;
diff --git a/xfa/fxfa/cxfa_fffield.cpp b/xfa/fxfa/cxfa_fffield.cpp
index 2b47487..827d38d 100644
--- a/xfa/fxfa/cxfa_fffield.cpp
+++ b/xfa/fxfa/cxfa_fffield.cpp
@@ -22,6 +22,7 @@
#include "xfa/fxfa/cxfa_ffwidget.h"
#include "xfa/fxfa/cxfa_fwltheme.h"
#include "xfa/fxfa/cxfa_textlayout.h"
+#include "xfa/fxfa/parser/cxfa_calculate.h"
#include "xfa/fxfa/parser/cxfa_node.h"
#include "xfa/fxfa/parser/cxfa_script.h"
#include "xfa/fxgraphics/cxfa_gecolor.h"
@@ -661,12 +662,12 @@
}
int32_t CXFA_FFField::CalculateWidgetAcc(CXFA_WidgetAcc* pAcc) {
- CXFA_CalculateData calcData = pAcc->GetCalculateData();
- if (!calcData.HasValidNode())
+ CXFA_Calculate* calc = pAcc->GetCalculate();
+ if (!calc)
return 1;
XFA_VERSION version = pAcc->GetDoc()->GetXFADoc()->GetCurVersionMode();
- switch (calcData.GetOverride()) {
+ switch (calc->GetOverride()) {
case XFA_AttributeEnum::Error: {
if (version <= XFA_VERSION_204)
return 1;
@@ -681,7 +682,7 @@
}
case XFA_AttributeEnum::Warning: {
if (version <= XFA_VERSION_204) {
- CXFA_Script* script = calcData.GetScript();
+ CXFA_Script* script = calc->GetScript();
if (!script)
return 1;
if (script->GetExpression().IsEmpty())
@@ -695,7 +696,7 @@
if (!pAppProvider)
return 0;
- WideString wsMessage = calcData.GetMessageText();
+ WideString wsMessage = calc->GetMessageText();
if (!wsMessage.IsEmpty())
wsMessage += L"\r\n";
diff --git a/xfa/fxfa/cxfa_ffwidgethandler.cpp b/xfa/fxfa/cxfa_ffwidgethandler.cpp
index 7fe3c17..b65321f 100644
--- a/xfa/fxfa/cxfa_ffwidgethandler.cpp
+++ b/xfa/fxfa/cxfa_ffwidgethandler.cpp
@@ -13,6 +13,7 @@
#include "xfa/fxfa/cxfa_fffield.h"
#include "xfa/fxfa/cxfa_ffwidget.h"
#include "xfa/fxfa/cxfa_fwladapterwidgetmgr.h"
+#include "xfa/fxfa/parser/cxfa_calculate.h"
#include "xfa/fxfa/parser/cxfa_checkbutton.h"
#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
#include "xfa/fxfa/parser/cxfa_measurement.h"
@@ -192,8 +193,8 @@
switch (eEventType) {
case XFA_EVENT_Calculate: {
- CXFA_CalculateData calcData = pWidgetAcc->GetCalculateData();
- return calcData.HasValidNode() && calcData.GetScript();
+ CXFA_Calculate* calc = pWidgetAcc->GetCalculate();
+ return calc && calc->GetScript();
}
case XFA_EVENT_Validate: {
CXFA_Validate* validate = pWidgetAcc->GetValidate(false);
@@ -223,12 +224,12 @@
}
return XFA_EVENTERROR_Disabled;
case XFA_EVENT_InitCalculate: {
- CXFA_CalculateData calcData = pWidgetAcc->GetCalculateData();
- if (!calcData.HasValidNode())
+ CXFA_Calculate* calc = pWidgetAcc->GetCalculate();
+ if (!calc)
return XFA_EVENTERROR_NotExist;
if (pWidgetAcc->GetNode()->IsUserInteractive())
return XFA_EVENTERROR_Disabled;
- return pWidgetAcc->ExecuteScript(calcData.GetScript(), pParam);
+ return pWidgetAcc->ExecuteScript(calc->GetScript(), pParam);
}
default:
break;
diff --git a/xfa/fxfa/cxfa_widgetacc.cpp b/xfa/fxfa/cxfa_widgetacc.cpp
index 63f59dc..dcf621f 100644
--- a/xfa/fxfa/cxfa_widgetacc.cpp
+++ b/xfa/fxfa/cxfa_widgetacc.cpp
@@ -21,6 +21,7 @@
#include "xfa/fxfa/cxfa_fontmgr.h"
#include "xfa/fxfa/cxfa_textlayout.h"
#include "xfa/fxfa/cxfa_textprovider.h"
+#include "xfa/fxfa/parser/cxfa_calculate.h"
#include "xfa/fxfa/parser/cxfa_items.h"
#include "xfa/fxfa/parser/cxfa_layoutprocessor.h"
#include "xfa/fxfa/parser/cxfa_localevalue.h"
@@ -328,15 +329,15 @@
if (GetElementType() == XFA_Element::Draw)
return XFA_EVENTERROR_NotExist;
- CXFA_CalculateData calcData = GetCalculateData();
- if (!calcData.HasValidNode())
+ CXFA_Calculate* calc = GetCalculate();
+ if (!calc)
return XFA_EVENTERROR_NotExist;
if (GetNode()->IsUserInteractive())
return XFA_EVENTERROR_Disabled;
CXFA_EventParam EventParam;
EventParam.m_eType = XFA_EVENT_Calculate;
- int32_t iRet = ExecuteScript(calcData.GetScript(), &EventParam);
+ int32_t iRet = ExecuteScript(calc->GetScript(), &EventParam);
if (iRet != XFA_EVENTERROR_Success)
return iRet;
diff --git a/xfa/fxfa/parser/cxfa_calculate.cpp b/xfa/fxfa/parser/cxfa_calculate.cpp
index 714dfde..cacb326 100644
--- a/xfa/fxfa/parser/cxfa_calculate.cpp
+++ b/xfa/fxfa/parser/cxfa_calculate.cpp
@@ -8,6 +8,9 @@
#include "fxjs/xfa/cjx_calculate.h"
#include "third_party/base/ptr_util.h"
+#include "xfa/fxfa/parser/cxfa_message.h"
+#include "xfa/fxfa/parser/cxfa_script.h"
+#include "xfa/fxfa/parser/cxfa_text.h"
namespace {
@@ -39,3 +42,22 @@
pdfium::MakeUnique<CJX_Calculate>(this)) {}
CXFA_Calculate::~CXFA_Calculate() {}
+
+XFA_AttributeEnum CXFA_Calculate::GetOverride() {
+ return JSObject()
+ ->TryEnum(XFA_Attribute::Override, false)
+ .value_or(XFA_AttributeEnum::Error);
+}
+
+CXFA_Script* CXFA_Calculate::GetScript() {
+ return GetChild<CXFA_Script>(0, XFA_Element::Script, false);
+}
+
+WideString CXFA_Calculate::GetMessageText() {
+ CXFA_Message* pNode = GetChild<CXFA_Message>(0, XFA_Element::Message, false);
+ if (!pNode)
+ return L"";
+
+ CXFA_Text* text = pNode->GetChild<CXFA_Text>(0, XFA_Element::Text, false);
+ return text ? text->GetContent() : L"";
+}
diff --git a/xfa/fxfa/parser/cxfa_calculate.h b/xfa/fxfa/parser/cxfa_calculate.h
index 01fe853..3f6ca6a 100644
--- a/xfa/fxfa/parser/cxfa_calculate.h
+++ b/xfa/fxfa/parser/cxfa_calculate.h
@@ -9,10 +9,16 @@
#include "xfa/fxfa/parser/cxfa_node.h"
+class CXFA_Script;
+
class CXFA_Calculate : public CXFA_Node {
public:
CXFA_Calculate(CXFA_Document* doc, XFA_PacketType packet);
~CXFA_Calculate() override;
+
+ XFA_AttributeEnum GetOverride();
+ CXFA_Script* GetScript();
+ WideString GetMessageText();
};
#endif // XFA_FXFA_PARSER_CXFA_CALCULATE_H_
diff --git a/xfa/fxfa/parser/cxfa_calculatedata.cpp b/xfa/fxfa/parser/cxfa_calculatedata.cpp
deleted file mode 100644
index f919224..0000000
--- a/xfa/fxfa/parser/cxfa_calculatedata.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fxfa/parser/cxfa_calculatedata.h"
-
-#include "xfa/fxfa/parser/cxfa_message.h"
-#include "xfa/fxfa/parser/cxfa_node.h"
-#include "xfa/fxfa/parser/cxfa_script.h"
-#include "xfa/fxfa/parser/cxfa_text.h"
-
-CXFA_CalculateData::CXFA_CalculateData(CXFA_Node* pNode)
- : CXFA_DataData(pNode) {}
-
-XFA_AttributeEnum CXFA_CalculateData::GetOverride() const {
- return m_pNode->JSObject()
- ->TryEnum(XFA_Attribute::Override, false)
- .value_or(XFA_AttributeEnum::Error);
-}
-
-CXFA_Script* CXFA_CalculateData::GetScript() const {
- return m_pNode->GetChild<CXFA_Script>(0, XFA_Element::Script, false);
-}
-
-WideString CXFA_CalculateData::GetMessageText() const {
- CXFA_Message* pNode =
- m_pNode->GetChild<CXFA_Message>(0, XFA_Element::Message, false);
- if (!pNode)
- return L"";
-
- CXFA_Text* text = pNode->GetChild<CXFA_Text>(0, XFA_Element::Text, false);
- return text ? text->GetContent() : L"";
-}
diff --git a/xfa/fxfa/parser/cxfa_calculatedata.h b/xfa/fxfa/parser/cxfa_calculatedata.h
deleted file mode 100644
index 3e0802e..0000000
--- a/xfa/fxfa/parser/cxfa_calculatedata.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FXFA_PARSER_CXFA_CALCULATEDATA_H_
-#define XFA_FXFA_PARSER_CXFA_CALCULATEDATA_H_
-
-#include "core/fxcrt/fx_string.h"
-#include "xfa/fxfa/parser/cxfa_datadata.h"
-
-class CXFA_Node;
-class CXFA_Script;
-
-class CXFA_CalculateData : public CXFA_DataData {
- public:
- explicit CXFA_CalculateData(CXFA_Node* pNode);
-
- XFA_AttributeEnum GetOverride() const;
- CXFA_Script* GetScript() const;
- WideString GetMessageText() const;
-};
-
-#endif // XFA_FXFA_PARSER_CXFA_CALCULATEDATA_H_
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp
index 6e68ee3..ba10f24 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.cpp
+++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp
@@ -324,9 +324,9 @@
false);
}
-CXFA_CalculateData CXFA_WidgetData::GetCalculateData() {
- return CXFA_CalculateData(m_pNode->JSObject()->GetProperty<CXFA_Calculate>(
- 0, XFA_Element::Calculate, false));
+CXFA_Calculate* CXFA_WidgetData::GetCalculate() {
+ return m_pNode->JSObject()->GetProperty<CXFA_Calculate>(
+ 0, XFA_Element::Calculate, false);
}
CXFA_Validate* CXFA_WidgetData::GetValidate(bool bModified) {
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.h b/xfa/fxfa/parser/cxfa_widgetdata.h
index 2873ff9..e7016bd 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.h
+++ b/xfa/fxfa/parser/cxfa_widgetdata.h
@@ -16,7 +16,6 @@
#include "fxbarcode/BC_Library.h"
#include "xfa/fxfa/parser/cxfa_binddata.h"
#include "xfa/fxfa/parser/cxfa_borderdata.h"
-#include "xfa/fxfa/parser/cxfa_calculatedata.h"
#include "xfa/fxfa/parser/cxfa_captiondata.h"
#include "xfa/fxfa/parser/cxfa_datadata.h"
#include "xfa/fxfa/parser/cxfa_fontdata.h"
@@ -35,6 +34,7 @@
XFA_VALUEPICTURE_DataBind,
};
+class CXFA_Calculate;
class CXFA_Node;
class CXFA_Para;
class CXFA_Validate;
@@ -65,7 +65,7 @@
CXFA_Para* GetPara();
CXFA_Value* GetDefaultValue();
CXFA_Value* GetFormValue();
- CXFA_CalculateData GetCalculateData();
+ CXFA_Calculate* GetCalculate();
CXFA_Validate* GetValidate(bool bModified);
CXFA_BorderData GetUIBorderData();