Remove always-true boolean options to SetItemSelection() Change-Id: I555a156de0954f8e96af3c318edad00db23f17bc Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/79430 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp index 576e3ba..eb58655 100644 --- a/core/fpdfdoc/cpdf_formfield.cpp +++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -171,7 +171,7 @@ !NotifyListOrComboBoxBeforeChange(csValue)) { return false; } - SetItemSelection(iIndex, true, NotificationOption::kDoNotNotify); + SetItemSelection(iIndex, NotificationOption::kDoNotNotify); if (notify == NotificationOption::kNotify) NotifyListOrComboBoxAfterChange(); break; @@ -360,7 +360,7 @@ } else { if (!bDefault) { ClearSelection(NotificationOption::kDoNotNotify); - SetItemSelection(iIndex, true, NotificationOption::kDoNotNotify); + SetItemSelection(iIndex, NotificationOption::kDoNotNotify); } } if (notify == NotificationOption::kNotify) @@ -381,7 +381,7 @@ } if (!bDefault) { ClearSelection(NotificationOption::kDoNotNotify); - SetItemSelection(iIndex, true, NotificationOption::kDoNotNotify); + SetItemSelection(iIndex, NotificationOption::kDoNotNotify); } if (notify == NotificationOption::kNotify) NotifyAfterSelectionChange(); @@ -485,7 +485,6 @@ } bool CPDF_FormField::SetItemSelection(int index, - bool bSelected, NotificationOption notify) { DCHECK(GetType() == kComboBox || GetType() == kListBox); if (index < 0 || index >= CountOptions()) @@ -497,10 +496,7 @@ return false; } - if (bSelected) - SetItemSelectionSelected(index, opt_value); - else - SetItemSelectionUnselected(index, opt_value); + SetItemSelectionSelected(index, opt_value); // UseSelectedIndicesObject() has a non-trivial linearithmic run-time, so run // only if necessary. @@ -534,39 +530,6 @@ } } -void CPDF_FormField::SetItemSelectionUnselected(int index, - const WideString& opt_value) { - const CPDF_Object* pValue = GetValueObject(); - if (!pValue) - return; - - if (GetType() != kListBox) { - m_pDict->RemoveFor(pdfium::form_fields::kV); - m_pDict->RemoveFor("I"); - return; - } - - SelectOption(index, false, NotificationOption::kDoNotNotify); - if (pValue->IsString()) { - if (pValue->GetUnicodeText() == opt_value) { - m_pDict->RemoveFor(pdfium::form_fields::kV); - } - return; - } - - if (!pValue->IsArray()) - return; - - auto pArray = pdfium::MakeRetain<CPDF_Array>(); - for (int i = 0; i < CountOptions(); i++) { - if (i != index && IsItemSelected(i)) - pArray->AppendNew<CPDF_String>(GetOptionValue(i)); - } - if (pArray->size() > 0) { - m_pDict->SetFor(pdfium::form_fields::kV, pArray); - } -} - bool CPDF_FormField::IsItemDefaultSelected(int index) const { DCHECK(GetType() == kComboBox || GetType() == kListBox); if (index < 0 || index >= CountOptions())
diff --git a/core/fpdfdoc/cpdf_formfield.h b/core/fpdfdoc/cpdf_formfield.h index 826f8ec..cd2c823 100644 --- a/core/fpdfdoc/cpdf_formfield.h +++ b/core/fpdfdoc/cpdf_formfield.h
@@ -113,7 +113,7 @@ bool ClearSelection(NotificationOption notify); bool IsItemSelected(int index) const; - bool SetItemSelection(int index, bool bSelected, NotificationOption notify); + bool SetItemSelection(int index, NotificationOption notify); bool IsItemDefaultSelected(int index) const; @@ -161,7 +161,6 @@ bool bDefault, NotificationOption notify); void SetItemSelectionSelected(int index, const WideString& opt_value); - void SetItemSelectionUnselected(int index, const WideString& opt_value); bool NotifyBeforeSelectionChange(const WideString& value); void NotifyAfterSelectionChange(); bool NotifyBeforeValueChange(const WideString& value);
diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp index c4269fd..d13eaba 100644 --- a/fpdfsdk/cpdfsdk_widget.cpp +++ b/fpdfsdk/cpdfsdk_widget.cpp
@@ -540,10 +540,9 @@ } void CPDFSDK_Widget::SetOptionSelection(int index, - bool bSelected, NotificationOption notify) { CPDF_FormField* pFormField = GetFormField(); - pFormField->SetItemSelection(index, bSelected, notify); + pFormField->SetItemSelection(index, notify); #ifdef PDF_ENABLE_XFA if (notify == NotificationOption::kDoNotNotify) Synchronize(true);
diff --git a/fpdfsdk/cpdfsdk_widget.h b/fpdfsdk/cpdfsdk_widget.h index c943727..42d914a 100644 --- a/fpdfsdk/cpdfsdk_widget.h +++ b/fpdfsdk/cpdfsdk_widget.h
@@ -77,7 +77,7 @@ void SetCheck(bool bChecked, NotificationOption notify); void SetValue(const WideString& sValue, NotificationOption notify); - void SetOptionSelection(int index, bool bSelected, NotificationOption notify); + void SetOptionSelection(int index, NotificationOption notify); void ClearSelection(NotificationOption notify); void SetTopVisibleIndex(int index);
diff --git a/fpdfsdk/formfiller/cffl_combobox.cpp b/fpdfsdk/formfiller/cffl_combobox.cpp index db9a7ff..7a8a1e1 100644 --- a/fpdfsdk/formfiller/cffl_combobox.cpp +++ b/fpdfsdk/formfiller/cffl_combobox.cpp
@@ -102,8 +102,7 @@ m_pWidget->SetValue(swText, NotificationOption::kDoNotNotify); } else { m_pWidget->GetSelectedIndex(0); - m_pWidget->SetOptionSelection(nCurSel, true, - NotificationOption::kDoNotNotify); + m_pWidget->SetOptionSelection(nCurSel, NotificationOption::kDoNotNotify); } ObservedPtr<CPDFSDK_Widget> observed_widget(m_pWidget.Get()); ObservedPtr<CFFL_ComboBox> observed_this(this);
diff --git a/fpdfsdk/formfiller/cffl_listbox.cpp b/fpdfsdk/formfiller/cffl_listbox.cpp index 0cbc20a..29cd452 100644 --- a/fpdfsdk/formfiller/cffl_listbox.cpp +++ b/fpdfsdk/formfiller/cffl_listbox.cpp
@@ -113,13 +113,11 @@ m_pWidget->ClearSelection(NotificationOption::kDoNotNotify); if (m_pWidget->GetFieldFlags() & pdfium::form_flags::kChoiceMultiSelect) { for (int32_t i = 0, sz = pListBox->GetCount(); i < sz; i++) { - if (pListBox->IsItemSelected(i)) { - m_pWidget->SetOptionSelection(i, true, - NotificationOption::kDoNotNotify); - } + if (pListBox->IsItemSelected(i)) + m_pWidget->SetOptionSelection(i, NotificationOption::kDoNotNotify); } } else { - m_pWidget->SetOptionSelection(pListBox->GetCurSel(), true, + m_pWidget->SetOptionSelection(pListBox->GetCurSel(), NotificationOption::kDoNotNotify); } ObservedPtr<CPDFSDK_Widget> observed_widget(m_pWidget.Get());
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp index 130d914..35ff13b 100644 --- a/fxjs/cjs_field.cpp +++ b/fxjs/cjs_field.cpp
@@ -290,7 +290,7 @@ break; if (array[i] < static_cast<uint32_t>(pFormField->CountOptions()) && !pFormField->IsItemSelected(array[i])) { - pFormField->SetItemSelection(array[i], true, + pFormField->SetItemSelection(array[i], NotificationOption::kDoNotNotify); } } @@ -482,8 +482,7 @@ for (const auto& str : strArray) { int index = pFormField->FindOption(str); if (!pFormField->IsItemSelected(index)) - pFormField->SetItemSelection(index, true, - NotificationOption::kNotify); + pFormField->SetItemSelection(index, NotificationOption::kNotify); } UpdateFormField(pFormFillEnv, pFormField, true, false, true); }