summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-01-23 16:52:14 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-01-23 16:52:14 +0000
commit8a0941d6deeee75bf1f9f51a00e61a15d3aa18d1 (patch)
tree7e7652eaaa9a5ffe41fe73d05059839e0b4a5688
parent66b9fa0e45b9b31882f0b78bb9213f634e211bbf (diff)
downloadpdfium-8a0941d6deeee75bf1f9f51a00e61a15d3aa18d1.tar.xz
Remove CXFA_WidgetAcc from CXFA_FFDocView methods
This CL updates CXFA_FFDocView methods and members to use CXFA_Node objects instead of CXFA_WidgetAcc objects. Change-Id: Ic79af39ef49152a6d50ed5acfc153063db39353d Reviewed-on: https://pdfium-review.googlesource.com/23590 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
-rw-r--r--fpdfsdk/cpdfsdk_widget.cpp2
-rw-r--r--xfa/fxfa/cxfa_ffcheckbutton.cpp4
-rw-r--r--xfa/fxfa/cxfa_ffcombobox.cpp2
-rw-r--r--xfa/fxfa/cxfa_ffdocview.cpp76
-rw-r--r--xfa/fxfa/cxfa_ffdocview.h18
-rw-r--r--xfa/fxfa/cxfa_fffield.cpp2
-rw-r--r--xfa/fxfa/cxfa_ffnotify.cpp18
-rw-r--r--xfa/fxfa/parser/cxfa_node.cpp2
8 files changed, 58 insertions, 66 deletions
diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp
index ec63bac68f..393d119c05 100644
--- a/fpdfsdk/cpdfsdk_widget.cpp
+++ b/fpdfsdk/cpdfsdk_widget.cpp
@@ -338,7 +338,7 @@ void CPDFSDK_Widget::Synchronize(bool bSynchronizeElse) {
if (bSynchronizeElse) {
CPDFXFA_Context* context = m_pPageView->GetFormFillEnv()->GetXFAContext();
- context->GetXFADocView()->ProcessValueChanged(node->GetWidgetAcc());
+ context->GetXFADocView()->ProcessValueChanged(node);
}
}
diff --git a/xfa/fxfa/cxfa_ffcheckbutton.cpp b/xfa/fxfa/cxfa_ffcheckbutton.cpp
index 4f9f402fff..a52bcb7d14 100644
--- a/xfa/fxfa/cxfa_ffcheckbutton.cpp
+++ b/xfa/fxfa/cxfa_ffcheckbutton.cpp
@@ -314,8 +314,8 @@ void CXFA_FFCheckButton::OnProcessEvent(CFWL_Event* pEvent) {
if (ProcessCommittedData()) {
eParam.m_pTarget = exclNode;
if (exclNode) {
- m_pDocView->AddValidateWidget(exclNode->GetWidgetAcc());
- m_pDocView->AddCalculateWidgetAcc(exclNode->GetWidgetAcc());
+ m_pDocView->AddValidateNode(exclNode);
+ m_pDocView->AddCalculateNode(exclNode);
exclNode->ProcessEvent(GetDocView(), XFA_AttributeEnum::Change,
&eParam);
}
diff --git a/xfa/fxfa/cxfa_ffcombobox.cpp b/xfa/fxfa/cxfa_ffcombobox.cpp
index 3f3cfe3d36..fcb8eb1aa5 100644
--- a/xfa/fxfa/cxfa_ffcombobox.cpp
+++ b/xfa/fxfa/cxfa_ffcombobox.cpp
@@ -307,7 +307,7 @@ void CXFA_FFComboBox::OnSelectChanged(CFWL_Widget* pWidget, bool bLButtonUp) {
eParam.m_wsPrevText = m_pNode->GetWidgetAcc()->GetValue(XFA_VALUEPICTURE_Raw);
FWLEventSelChange(&eParam);
if (m_pNode->GetWidgetAcc()->IsChoiceListCommitOnSelect() && bLButtonUp)
- m_pDocView->SetFocusWidgetAcc(nullptr);
+ m_pDocView->SetFocusNode(nullptr);
}
void CXFA_FFComboBox::OnPreOpen(CFWL_Widget* pWidget) {
diff --git a/xfa/fxfa/cxfa_ffdocview.cpp b/xfa/fxfa/cxfa_ffdocview.cpp
index 50fa5033fe..376f2d412d 100644
--- a/xfa/fxfa/cxfa_ffdocview.cpp
+++ b/xfa/fxfa/cxfa_ffdocview.cpp
@@ -134,9 +134,9 @@ void CXFA_FFDocView::StopLayout() {
if (RunLayout())
ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, false, true);
- m_CalculateAccs.clear();
- if (m_pFocusAcc && !m_pFocusWidget)
- SetFocusWidgetAcc(m_pFocusAcc.Get());
+ m_CalculateNodes.clear();
+ if (m_pFocusNode && !m_pFocusWidget)
+ SetFocusNode(m_pFocusNode.Get());
m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_End;
}
@@ -186,7 +186,7 @@ void CXFA_FFDocView::UpdateDocView() {
RunEventLayoutReady();
m_bLayoutEvent = false;
- m_CalculateAccs.clear();
+ m_CalculateNodes.clear();
RunInvalidate();
UnlockUpdate();
}
@@ -216,7 +216,7 @@ bool CXFA_FFDocView::ResetSingleNodeData(CXFA_Node* pNode) {
if (!validate)
return true;
- AddValidateWidget(pNode->GetWidgetAcc());
+ AddValidateNode(pNode);
validate->SetFlag(XFA_NodeFlag_NeedsInitApp, false);
return true;
}
@@ -296,23 +296,23 @@ bool CXFA_FFDocView::SetFocus(CXFA_FFWidget* hWidget) {
}
if (pNewFocus) {
CXFA_Node* node = pNewFocus->GetNode();
- m_pFocusAcc = node->IsWidgetReady() ? node->GetWidgetAcc() : nullptr;
+ m_pFocusNode = node->IsWidgetReady() ? node : nullptr;
} else {
- m_pFocusAcc = nullptr;
+ m_pFocusNode = nullptr;
}
m_pFocusWidget = pNewFocus;
m_pOldFocusWidget = m_pFocusWidget;
return true;
}
-void CXFA_FFDocView::SetFocusWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) {
+void CXFA_FFDocView::SetFocusNode(CXFA_Node* node) {
CXFA_FFWidget* pNewFocus = nullptr;
- if (pWidgetAcc)
- pNewFocus = GetWidgetForNode(pWidgetAcc->GetNode());
+ if (node)
+ pNewFocus = GetWidgetForNode(node);
if (!SetFocus(pNewFocus))
return;
- m_pFocusAcc = pWidgetAcc;
+ m_pFocusNode = node;
if (m_iStatus != XFA_DOCVIEW_LAYOUTSTATUS_End)
return;
@@ -321,10 +321,10 @@ void CXFA_FFDocView::SetFocusWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) {
}
void CXFA_FFDocView::DeleteLayoutItem(CXFA_FFWidget* pWidget) {
- if (m_pFocusAcc && m_pFocusAcc->GetNode() != pWidget->GetNode())
+ if (m_pFocusNode != pWidget->GetNode())
return;
- m_pFocusAcc = nullptr;
+ m_pFocusNode = nullptr;
m_pFocusWidget = nullptr;
m_pOldFocusWidget = nullptr;
}
@@ -514,11 +514,11 @@ void CXFA_FFDocView::RunDocClose() {
ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocClose, false, true);
}
-void CXFA_FFDocView::AddCalculateWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) {
- CXFA_WidgetAcc* pCurrentAcc =
- !m_CalculateAccs.empty() ? m_CalculateAccs.back() : nullptr;
- if (pCurrentAcc != pWidgetAcc)
- m_CalculateAccs.push_back(pWidgetAcc);
+void CXFA_FFDocView::AddCalculateNode(CXFA_Node* node) {
+ CXFA_Node* pCurrentNode =
+ !m_CalculateNodes.empty() ? m_CalculateNodes.back() : nullptr;
+ if (pCurrentNode != node)
+ m_CalculateNodes.push_back(node);
}
void CXFA_FFDocView::AddCalculateNodeNotify(CXFA_Node* pNodeChange) {
@@ -528,13 +528,13 @@ void CXFA_FFDocView::AddCalculateNodeNotify(CXFA_Node* pNodeChange) {
for (auto* pResult : pGlobalData->m_Globals) {
if (!pResult->HasRemovedChildren() && pResult->IsWidgetReady())
- AddCalculateWidgetAcc(pResult->GetWidgetAcc());
+ AddCalculateNode(pResult);
}
}
size_t CXFA_FFDocView::RunCalculateRecursive(size_t index) {
- while (index < m_CalculateAccs.size()) {
- CXFA_Node* node = m_CalculateAccs[index]->GetNode();
+ while (index < m_CalculateNodes.size()) {
+ CXFA_Node* node = m_CalculateNodes[index];
AddCalculateNodeNotify(node);
size_t recurse = node->JSObject()->GetCalcRecursionCount() + 1;
@@ -543,7 +543,7 @@ size_t CXFA_FFDocView::RunCalculateRecursive(size_t index) {
break;
if (node->ProcessCalculate(this) == XFA_EVENTERROR_Success &&
node->IsWidgetReady()) {
- AddValidateWidget(node->GetWidgetAcc());
+ AddValidateNode(node);
}
index = RunCalculateRecursive(++index);
@@ -554,28 +554,28 @@ size_t CXFA_FFDocView::RunCalculateRecursive(size_t index) {
int32_t CXFA_FFDocView::RunCalculateWidgets() {
if (!m_pDoc->GetDocEnvironment()->IsCalculationsEnabled(m_pDoc.Get()))
return XFA_EVENTERROR_Disabled;
- if (!m_CalculateAccs.empty())
+ if (!m_CalculateNodes.empty())
RunCalculateRecursive(0);
- for (CXFA_WidgetAcc* pCurAcc : m_CalculateAccs)
- pCurAcc->GetNode()->JSObject()->SetCalcRecursionCount(0);
+ for (CXFA_Node* node : m_CalculateNodes)
+ node->JSObject()->SetCalcRecursionCount(0);
- m_CalculateAccs.clear();
+ m_CalculateNodes.clear();
return XFA_EVENTERROR_Success;
}
-void CXFA_FFDocView::AddValidateWidget(CXFA_WidgetAcc* pWidget) {
- if (!pdfium::ContainsValue(m_ValidateAccs, pWidget))
- m_ValidateAccs.push_back(pWidget);
+void CXFA_FFDocView::AddValidateNode(CXFA_Node* node) {
+ if (!pdfium::ContainsValue(m_ValidateNodes, node))
+ m_ValidateNodes.push_back(node);
}
void CXFA_FFDocView::InitCalculate(CXFA_Node* pNode) {
ExecEventActivityByDeepFirst(pNode, XFA_EVENT_InitCalculate, false, true);
}
-void CXFA_FFDocView::ProcessValueChanged(CXFA_WidgetAcc* widgetAcc) {
- AddValidateWidget(widgetAcc);
- AddCalculateWidgetAcc(widgetAcc);
+void CXFA_FFDocView::ProcessValueChanged(CXFA_Node* node) {
+ AddValidateNode(node);
+ AddCalculateNode(node);
RunCalculateWidgets();
RunValidate();
}
@@ -585,7 +585,7 @@ bool CXFA_FFDocView::InitValidate(CXFA_Node* pNode) {
return false;
ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Validate, false, true);
- m_ValidateAccs.clear();
+ m_ValidateNodes.clear();
return true;
}
@@ -593,12 +593,11 @@ bool CXFA_FFDocView::RunValidate() {
if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc.Get()))
return false;
- for (CXFA_WidgetAcc* pAcc : m_ValidateAccs) {
- CXFA_Node* node = pAcc->GetNode();
+ for (CXFA_Node* node : m_ValidateNodes) {
if (!node->HasRemovedChildren())
node->ProcessValidate(this, 0);
}
- m_ValidateAccs.clear();
+ m_ValidateNodes.clear();
return true;
}
@@ -622,7 +621,6 @@ void CXFA_FFDocView::RunBindItems() {
if (!pWidgetNode->IsWidgetReady())
continue;
- CXFA_WidgetAcc* pAcc = pWidgetNode->GetWidgetAcc();
CFXJSE_Engine* pScriptContext =
pWidgetNode->GetDocument()->GetScriptContext();
WideString wsRef = item->GetRef();
@@ -632,7 +630,7 @@ void CXFA_FFDocView::RunBindItems() {
XFA_RESOLVENODE_RS rs;
pScriptContext->ResolveObjects(pWidgetNode, wsRef.AsStringView(), &rs,
dwStyle, nullptr);
- pAcc->DeleteItem(-1, false, false);
+ pWidgetNode->GetWidgetAcc()->DeleteItem(-1, false, false);
if (rs.dwFlags != XFA_ResolveNode_RSType_Nodes || rs.objects.empty())
continue;
@@ -669,7 +667,7 @@ void CXFA_FFDocView::RunBindItems() {
} else {
wsLabel = wsValue;
}
- pAcc->InsertItem(wsLabel, wsValue, false);
+ pWidgetNode->GetWidgetAcc()->InsertItem(wsLabel, wsValue, false);
}
}
m_BindItems.clear();
diff --git a/xfa/fxfa/cxfa_ffdocview.h b/xfa/fxfa/cxfa_ffdocview.h
index d21d64c7ba..b3cc5b83b7 100644
--- a/xfa/fxfa/cxfa_ffdocview.h
+++ b/xfa/fxfa/cxfa_ffdocview.h
@@ -19,8 +19,8 @@ class CXFA_BindItems;
class CXFA_FFWidgetHandler;
class CXFA_FFDoc;
class CXFA_FFWidget;
+class CXFA_Node;
class CXFA_Subform;
-class CXFA_WidgetAcc;
class CXFA_ReadyNodeIterator;
extern const XFA_AttributeEnum gs_EventActivity[];
@@ -72,19 +72,19 @@ class CXFA_FFDocView {
void RunInvalidate();
void RunDocClose();
- void ProcessValueChanged(CXFA_WidgetAcc* widgetAcc);
+ void ProcessValueChanged(CXFA_Node* node);
void SetChangeMark();
- void AddValidateWidget(CXFA_WidgetAcc* pWidget);
+ void AddValidateNode(CXFA_Node* node);
void AddCalculateNodeNotify(CXFA_Node* pNodeChange);
- void AddCalculateWidgetAcc(CXFA_WidgetAcc* pWidgetAcc);
+ void AddCalculateNode(CXFA_Node* node);
bool RunLayout();
void AddNewFormNode(CXFA_Node* pNode);
void AddIndexChangedSubform(CXFA_Node* pNode);
- CXFA_WidgetAcc* GetFocusWidgetAcc() const { return m_pFocusAcc.Get(); }
- void SetFocusWidgetAcc(CXFA_WidgetAcc* pWidgetAcc);
+ CXFA_Node* GetFocusNode() const { return m_pFocusNode.Get(); }
+ void SetFocusNode(CXFA_Node* pNode);
void DeleteLayoutItem(CXFA_FFWidget* pWidget);
int32_t ExecEventActivityByDeepFirst(CXFA_Node* pFormNode,
XFA_EVENTTYPE eEventType,
@@ -116,12 +116,12 @@ class CXFA_FFDocView {
UnownedPtr<CXFA_FFDoc> const m_pDoc;
std::unique_ptr<CXFA_FFWidgetHandler> m_pWidgetHandler;
CXFA_LayoutProcessor* m_pXFADocLayout = nullptr; // Not owned.
- UnownedPtr<CXFA_WidgetAcc> m_pFocusAcc;
+ UnownedPtr<CXFA_Node> m_pFocusNode;
UnownedPtr<CXFA_FFWidget> m_pFocusWidget;
UnownedPtr<CXFA_FFWidget> m_pOldFocusWidget;
std::map<CXFA_FFPageView*, std::unique_ptr<CFX_RectF>> m_mapPageInvalidate;
- std::vector<CXFA_WidgetAcc*> m_ValidateAccs;
- std::vector<CXFA_WidgetAcc*> m_CalculateAccs;
+ std::vector<CXFA_Node*> m_ValidateNodes;
+ std::vector<CXFA_Node*> m_CalculateNodes;
std::vector<CXFA_BindItems*> m_BindItems;
std::vector<CXFA_Node*> m_NewAddedNodes;
std::vector<CXFA_Node*> m_IndexChangedSubforms;
diff --git a/xfa/fxfa/cxfa_fffield.cpp b/xfa/fxfa/cxfa_fffield.cpp
index 971936a86d..64e8e00340 100644
--- a/xfa/fxfa/cxfa_fffield.cpp
+++ b/xfa/fxfa/cxfa_fffield.cpp
@@ -630,7 +630,7 @@ bool CXFA_FFField::ProcessCommittedData() {
return false;
m_pDocView->SetChangeMark();
- m_pDocView->AddValidateWidget(m_pNode->GetWidgetAcc());
+ m_pDocView->AddValidateNode(m_pNode.Get());
return true;
}
diff --git a/xfa/fxfa/cxfa_ffnotify.cpp b/xfa/fxfa/cxfa_ffnotify.cpp
index 072359b621..91d1a65997 100644
--- a/xfa/fxfa/cxfa_ffnotify.cpp
+++ b/xfa/fxfa/cxfa_ffnotify.cpp
@@ -240,8 +240,8 @@ void CXFA_FFNotify::AddCalcValidate(CXFA_Node* pNode) {
if (!pNode->GetWidgetAcc())
return;
- pDocView->AddCalculateWidgetAcc(pNode->GetWidgetAcc());
- pDocView->AddValidateWidget(pNode->GetWidgetAcc());
+ pDocView->AddCalculateNode(pNode);
+ pDocView->AddValidateNode(pNode);
}
CXFA_FFDoc* CXFA_FFNotify::GetHDOC() {
@@ -315,20 +315,14 @@ void CXFA_FFNotify::RunSubformIndexChange(CXFA_Node* pSubformNode) {
CXFA_Node* CXFA_FFNotify::GetFocusWidgetNode() {
CXFA_FFDocView* pDocView = m_pDoc->GetDocView();
- if (!pDocView)
- return nullptr;
-
- return pDocView->GetFocusWidgetAcc()
- ? pDocView->GetFocusWidgetAcc()->GetNode()
- : nullptr;
+ return pDocView ? pDocView->GetFocusNode() : nullptr;
}
void CXFA_FFNotify::SetFocusWidgetNode(CXFA_Node* pNode) {
CXFA_FFDocView* pDocView = m_pDoc->GetDocView();
if (!pDocView)
return;
-
- pDocView->SetFocusWidgetAcc(pNode ? pNode->GetWidgetAcc() : nullptr);
+ pDocView->SetFocusNode(pNode);
}
void CXFA_FFNotify::OnNodeReady(CXFA_Node* pNode) {
@@ -423,8 +417,8 @@ void CXFA_FFNotify::OnValueChanged(CXFA_Node* pSender,
if (bIsContainerNode) {
pWidgetNode->GetWidgetAcc()->UpdateUIDisplay(m_pDoc->GetDocView(),
nullptr);
- pDocView->AddCalculateWidgetAcc(pWidgetNode->GetWidgetAcc());
- pDocView->AddValidateWidget(pWidgetNode->GetWidgetAcc());
+ pDocView->AddCalculateNode(pWidgetNode);
+ pDocView->AddValidateNode(pWidgetNode);
} else if (pWidgetNode->GetParent()->GetElementType() ==
XFA_Element::ExclGroup) {
pWidgetNode->GetWidgetAcc()->UpdateUIDisplay(m_pDoc->GetDocView(),
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index fb2f012e0c..ba882a2b9d 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -2206,7 +2206,7 @@ std::pair<int32_t, bool> CXFA_Node::ExecuteBoolScript(
(GetRawValue() != pEventParam->m_wsResult)) {
GetWidgetAcc()->SetValue(XFA_VALUEPICTURE_Raw,
pEventParam->m_wsResult);
- docView->AddValidateWidget(GetWidgetAcc());
+ docView->AddValidateNode(this);
}
}
for (CXFA_Node* pRefNode : refNodes) {