From a73b8fee8751dae443af9437007261e4a1827a4f Mon Sep 17 00:00:00 2001 From: tonikitoo Date: Mon, 22 Aug 2016 14:06:49 -0700 Subject: Implement Field::SetHidden using Field::SetDisplay. Following up on [1], where the duplicated logic in Field::SetDisplay was factored out into a helper function, CL further cleans up a related method: ::SetHidden. Field::SetHidden(true), for instance, is equivalent to calling Field::SetDisplay(1), whereas Field::SetHidden(false) is equivalent to Field::SetDisplay(0); No behavior change is expected. [1] https://codereview.chromium.org/2255843002 Review-Url: https://codereview.chromium.org/2266193002 --- fpdfsdk/javascript/Field.cpp | 61 ++------------------------------------------ 1 file changed, 2 insertions(+), 59 deletions(-) diff --git a/fpdfsdk/javascript/Field.cpp b/fpdfsdk/javascript/Field.cpp index 3b69a5ac22..5c279d6b53 100644 --- a/fpdfsdk/javascript/Field.cpp +++ b/fpdfsdk/javascript/Field.cpp @@ -1531,65 +1531,8 @@ void Field::SetHidden(CPDFSDK_Document* pDocument, const CFX_WideString& swFieldName, int nControlIndex, bool b) { - CPDFSDK_InterForm* pInterForm = pDocument->GetInterForm(); - std::vector FieldArray = - GetFormFields(pDocument, swFieldName); - for (CPDF_FormField* pFormField : FieldArray) { - if (nControlIndex < 0) { - FX_BOOL bSet = FALSE; - for (int i = 0, sz = pFormField->CountControls(); i < sz; ++i) { - if (CPDFSDK_Widget* pWidget = - pInterForm->GetWidget(pFormField->GetControl(i), false)) { - uint32_t dwFlags = pWidget->GetFlags(); - - if (b) { - dwFlags &= (~ANNOTFLAG_INVISIBLE); - dwFlags &= (~ANNOTFLAG_NOVIEW); - dwFlags |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT); - } else { - dwFlags &= (~ANNOTFLAG_INVISIBLE); - dwFlags &= (~ANNOTFLAG_HIDDEN); - dwFlags &= (~ANNOTFLAG_NOVIEW); - dwFlags |= ANNOTFLAG_PRINT; - } - - if (dwFlags != pWidget->GetFlags()) { - pWidget->SetFlags(dwFlags); - bSet = TRUE; - } - } - } - - if (bSet) - UpdateFormField(pDocument, pFormField, TRUE, FALSE, TRUE); - } else { - if (nControlIndex >= pFormField->CountControls()) - return; - if (CPDF_FormControl* pFormControl = - pFormField->GetControl(nControlIndex)) { - if (CPDFSDK_Widget* pWidget = - pInterForm->GetWidget(pFormControl, false)) { - uint32_t dwFlags = pWidget->GetFlags(); - - if (b) { - dwFlags &= (~ANNOTFLAG_INVISIBLE); - dwFlags &= (~ANNOTFLAG_NOVIEW); - dwFlags |= (ANNOTFLAG_HIDDEN | ANNOTFLAG_PRINT); - } else { - dwFlags &= (~ANNOTFLAG_INVISIBLE); - dwFlags &= (~ANNOTFLAG_HIDDEN); - dwFlags &= (~ANNOTFLAG_NOVIEW); - dwFlags |= ANNOTFLAG_PRINT; - } - - if (dwFlags != pWidget->GetFlags()) { - pWidget->SetFlags(dwFlags); - UpdateFormControl(pDocument, pFormControl, TRUE, FALSE, TRUE); - } - } - } - } - } + int display = b ? 1 /*Hidden*/ : 0 /*Visible*/; + SetDisplay(pDocument, swFieldName, nControlIndex, display); } FX_BOOL Field::highlight(IJS_Context* cc, -- cgit v1.2.3