From af9f83656f986b1fd2316972f92f9b3f4c17f620 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Tue, 30 Jan 2018 14:25:00 +0000 Subject: Combine more combo and list code This CL combines more code where the loops for combo and list were almost identical. Change-Id: Id2ab9e2cb093e78d6922813ff18d7c6736032a03 Reviewed-on: https://pdfium-review.googlesource.com/24553 Reviewed-by: Henrique Nakashima Commit-Queue: dsinclair --- fpdfsdk/cpdfsdk_widget.cpp | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp index 429391cf38..e0a033ee8d 100644 --- a/fpdfsdk/cpdfsdk_widget.cpp +++ b/fpdfsdk/cpdfsdk_widget.cpp @@ -362,6 +362,7 @@ void CPDFSDK_Widget::SynchronizeXFAValue(CXFA_FFDocView* pXFADocView, CXFA_Node* node = hWidget->GetNode(); switch (pFormField->GetFieldType()) { + case FormFieldType::kRadioButton: case FormFieldType::kCheckBox: { if (node->IsWidgetReady()) { pFormField->CheckControl(pFormField->GetControlIndex(pFormControl), @@ -370,45 +371,24 @@ void CPDFSDK_Widget::SynchronizeXFAValue(CXFA_FFDocView* pXFADocView, } break; } - case FormFieldType::kRadioButton: { - // TODO(weili): Check whether we need to handle checkbox and radio - // button differently, otherwise, merge these two cases. - if (node->IsWidgetReady()) { - pFormField->CheckControl(pFormField->GetControlIndex(pFormControl), - node->GetCheckState() == XFA_CHECKSTATE_On, - true); - } - break; - } case FormFieldType::kTextField: { if (node->IsWidgetReady()) pFormField->SetValue(node->GetValue(XFA_VALUEPICTURE_Display), true); break; } + case FormFieldType::kComboBox: case FormFieldType::kListBox: { pFormField->ClearSelection(false); if (node->IsWidgetReady()) { - for (int i = 0, sz = node->CountSelectedItems(); i < sz; i++) { - int nIndex = node->GetSelectedItem(i); - - if (nIndex > -1 && nIndex < pFormField->CountOptions()) { - pFormField->SetItemSelection(nIndex, true, true); - } - } - } - break; - } - case FormFieldType::kComboBox: { - pFormField->ClearSelection(false); - - if (node->IsWidgetReady()) { - for (int i = 0, sz = node->CountSelectedItems(); i < sz; i++) { + int32_t item_count = node->CountSelectedItems(); + for (int i = 0; i < item_count; ++i) { int nIndex = node->GetSelectedItem(i); if (nIndex > -1 && nIndex < pFormField->CountOptions()) pFormField->SetItemSelection(nIndex, true, true); } - pFormField->SetValue(node->GetValue(XFA_VALUEPICTURE_Display), true); + if (pFormField->GetFieldType() == FormFieldType::kComboBox) + pFormField->SetValue(node->GetValue(XFA_VALUEPICTURE_Display), true); } break; } -- cgit v1.2.3