summaryrefslogtreecommitdiff
path: root/fpdfsdk
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk')
-rw-r--r--fpdfsdk/cpdfsdk_interform.cpp10
-rw-r--r--fpdfsdk/cpdfsdk_widget.cpp25
-rw-r--r--fpdfsdk/cpdfsdk_widget.h8
-rw-r--r--fpdfsdk/formfiller/cffl_checkbox.cpp5
-rw-r--r--fpdfsdk/formfiller/cffl_combobox.cpp10
-rw-r--r--fpdfsdk/formfiller/cffl_listbox.cpp15
-rw-r--r--fpdfsdk/formfiller/cffl_radiobutton.cpp9
-rw-r--r--fpdfsdk/formfiller/cffl_textfield.cpp7
8 files changed, 47 insertions, 42 deletions
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index b9256aac35..0e44268b39 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -327,7 +327,7 @@ void CPDFSDK_InterForm::OnCalculate(CPDF_FormField* pFormField) {
Optional<IJS_Runtime::JS_Error> err = pContext->RunScript(csJS);
if (!err && bRC && sValue.Compare(sOldValue) != 0)
- pField->SetValue(sValue, true);
+ pField->SetValue(sValue, NotificationOption::kNotify);
}
}
@@ -557,19 +557,17 @@ ByteString CPDFSDK_InterForm::ExportFormToFDFTextBuf() {
void CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action) {
ASSERT(action.GetDict());
-
const CPDF_Dictionary* pActionDict = action.GetDict();
if (!pActionDict->KeyExist("Fields")) {
- m_pInterForm->ResetForm(true);
+ m_pInterForm->ResetForm(NotificationOption::kNotify);
return;
}
-
CPDF_ActionFields af(&action);
uint32_t dwFlags = action.GetFlags();
-
std::vector<const CPDF_Object*> fieldObjects = af.GetAllFields();
std::vector<CPDF_FormField*> fields = GetFieldFromObjects(fieldObjects);
- m_pInterForm->ResetForm(fields, !(dwFlags & 0x01), true);
+ m_pInterForm->ResetForm(fields, !(dwFlags & 0x01),
+ NotificationOption::kNotify);
}
std::vector<CPDF_FormField*> CPDFSDK_InterForm::GetFieldFromObjects(
diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp
index f9fdef829b..8bd1f10177 100644
--- a/fpdfsdk/cpdfsdk_widget.cpp
+++ b/fpdfsdk/cpdfsdk_widget.cpp
@@ -526,44 +526,45 @@ int CPDFSDK_Widget::GetMaxLen() const {
return pFormField->GetMaxLen();
}
-void CPDFSDK_Widget::SetCheck(bool bChecked, bool bNotify) {
+void CPDFSDK_Widget::SetCheck(bool bChecked, NotificationOption notify) {
CPDF_FormControl* pFormCtrl = GetFormControl();
CPDF_FormField* pFormField = pFormCtrl->GetField();
pFormField->CheckControl(pFormField->GetControlIndex(pFormCtrl), bChecked,
- bNotify);
+ notify);
#ifdef PDF_ENABLE_XFA
if (!IsWidgetAppearanceValid(CPDF_Annot::Normal))
ResetAppearance(true);
- if (!bNotify)
+ if (notify == NotificationOption::kDoNotNotify)
Synchronize(true);
#endif // PDF_ENABLE_XFA
}
-void CPDFSDK_Widget::SetValue(const WideString& sValue, bool bNotify) {
+void CPDFSDK_Widget::SetValue(const WideString& sValue,
+ NotificationOption notify) {
CPDF_FormField* pFormField = GetFormField();
- pFormField->SetValue(sValue, bNotify);
+ pFormField->SetValue(sValue, notify);
#ifdef PDF_ENABLE_XFA
- if (!bNotify)
+ if (notify == NotificationOption::kDoNotNotify)
Synchronize(true);
#endif // PDF_ENABLE_XFA
}
void CPDFSDK_Widget::SetOptionSelection(int index,
bool bSelected,
- bool bNotify) {
+ NotificationOption notify) {
CPDF_FormField* pFormField = GetFormField();
- pFormField->SetItemSelection(index, bSelected, bNotify);
+ pFormField->SetItemSelection(index, bSelected, notify);
#ifdef PDF_ENABLE_XFA
- if (!bNotify)
+ if (notify == NotificationOption::kDoNotNotify)
Synchronize(true);
#endif // PDF_ENABLE_XFA
}
-void CPDFSDK_Widget::ClearSelection(bool bNotify) {
+void CPDFSDK_Widget::ClearSelection(NotificationOption notify) {
CPDF_FormField* pFormField = GetFormField();
- pFormField->ClearSelection(bNotify);
+ pFormField->ClearSelection(notify);
#ifdef PDF_ENABLE_XFA
- if (!bNotify)
+ if (notify == NotificationOption::kDoNotNotify)
Synchronize(true);
#endif // PDF_ENABLE_XFA
}
diff --git a/fpdfsdk/cpdfsdk_widget.h b/fpdfsdk/cpdfsdk_widget.h
index 1349981293..f3bdc54944 100644
--- a/fpdfsdk/cpdfsdk_widget.h
+++ b/fpdfsdk/cpdfsdk_widget.h
@@ -81,10 +81,10 @@ class CPDFSDK_Widget : public CPDFSDK_BAAnnot {
int GetMaxLen() const;
WideString GetAlternateName() const;
- void SetCheck(bool bChecked, bool bNotify);
- void SetValue(const WideString& sValue, bool bNotify);
- void SetOptionSelection(int index, bool bSelected, bool bNotify);
- void ClearSelection(bool bNotify);
+ void SetCheck(bool bChecked, NotificationOption notify);
+ void SetValue(const WideString& sValue, NotificationOption notify);
+ void SetOptionSelection(int index, bool bSelected, NotificationOption notify);
+ void ClearSelection(NotificationOption notify);
void SetTopVisibleIndex(int index);
#ifdef PDF_ENABLE_XFA
diff --git a/fpdfsdk/formfiller/cffl_checkbox.cpp b/fpdfsdk/formfiller/cffl_checkbox.cpp
index 57119c5c31..4308c1a1a5 100644
--- a/fpdfsdk/formfiller/cffl_checkbox.cpp
+++ b/fpdfsdk/formfiller/cffl_checkbox.cpp
@@ -113,13 +113,14 @@ void CFFL_CheckBox::SaveData(CPDFSDK_PageView* pPageView) {
}
CPDFSDK_Widget::ObservedPtr observed_widget(m_pWidget.Get());
CFFL_CheckBox::ObservedPtr observed_this(this);
-
- m_pWidget->SetCheck(bNewChecked, false);
+ m_pWidget->SetCheck(bNewChecked, NotificationOption::kDoNotNotify);
if (!observed_widget)
return;
+
m_pWidget->UpdateField();
if (!observed_widget || !observed_this)
return;
+
SetChangeMark();
}
diff --git a/fpdfsdk/formfiller/cffl_combobox.cpp b/fpdfsdk/formfiller/cffl_combobox.cpp
index 8aa656b856..e0f0f3fbe5 100644
--- a/fpdfsdk/formfiller/cffl_combobox.cpp
+++ b/fpdfsdk/formfiller/cffl_combobox.cpp
@@ -96,27 +96,27 @@ void CFFL_ComboBox::SaveData(CPDFSDK_PageView* pPageView) {
WideString swText = pWnd->GetText();
int32_t nCurSel = pWnd->GetSelect();
-
bool bSetValue = false;
-
if (m_pWidget->GetFieldFlags() & FIELDFLAG_EDIT)
bSetValue = (nCurSel < 0) || (swText != m_pWidget->GetOptionLabel(nCurSel));
if (bSetValue) {
- m_pWidget->SetValue(swText, false);
+ m_pWidget->SetValue(swText, NotificationOption::kDoNotNotify);
} else {
m_pWidget->GetSelectedIndex(0);
- m_pWidget->SetOptionSelection(nCurSel, true, false);
+ m_pWidget->SetOptionSelection(nCurSel, true,
+ NotificationOption::kDoNotNotify);
}
CPDFSDK_Widget::ObservedPtr observed_widget(m_pWidget.Get());
CFFL_ComboBox::ObservedPtr observed_this(this);
-
m_pWidget->ResetFieldAppearance(true);
if (!observed_widget)
return;
+
m_pWidget->UpdateField();
if (!observed_widget || !observed_this)
return;
+
SetChangeMark();
m_pWidget->GetPDFPage();
}
diff --git a/fpdfsdk/formfiller/cffl_listbox.cpp b/fpdfsdk/formfiller/cffl_listbox.cpp
index bf24e116e5..c05400d13c 100644
--- a/fpdfsdk/formfiller/cffl_listbox.cpp
+++ b/fpdfsdk/formfiller/cffl_listbox.cpp
@@ -108,27 +108,32 @@ void CFFL_ListBox::SaveData(CPDFSDK_PageView* pPageView) {
return;
int32_t nNewTopIndex = pListBox->GetTopVisibleIndex();
- m_pWidget->ClearSelection(false);
+ m_pWidget->ClearSelection(NotificationOption::kDoNotNotify);
if (m_pWidget->GetFieldFlags() & FIELDFLAG_MULTISELECT) {
for (int32_t i = 0, sz = pListBox->GetCount(); i < sz; i++) {
- if (pListBox->IsItemSelected(i))
- m_pWidget->SetOptionSelection(i, true, false);
+ if (pListBox->IsItemSelected(i)) {
+ m_pWidget->SetOptionSelection(i, true,
+ NotificationOption::kDoNotNotify);
+ }
}
} else {
- m_pWidget->SetOptionSelection(pListBox->GetCurSel(), true, false);
+ m_pWidget->SetOptionSelection(pListBox->GetCurSel(), true,
+ NotificationOption::kDoNotNotify);
}
CPDFSDK_Widget::ObservedPtr observed_widget(m_pWidget.Get());
CFFL_ListBox::ObservedPtr observed_this(this);
-
m_pWidget->SetTopVisibleIndex(nNewTopIndex);
if (!observed_widget)
return;
+
m_pWidget->ResetFieldAppearance(true);
if (!observed_widget)
return;
+
m_pWidget->UpdateField();
if (!observed_widget || !observed_this)
return;
+
SetChangeMark();
}
diff --git a/fpdfsdk/formfiller/cffl_radiobutton.cpp b/fpdfsdk/formfiller/cffl_radiobutton.cpp
index 73ac44de46..8105b0cdea 100644
--- a/fpdfsdk/formfiller/cffl_radiobutton.cpp
+++ b/fpdfsdk/formfiller/cffl_radiobutton.cpp
@@ -91,26 +91,25 @@ void CFFL_RadioButton::SaveData(CPDFSDK_PageView* pPageView) {
return;
bool bNewChecked = pWnd->IsChecked();
-
if (bNewChecked) {
CPDF_FormField* pField = m_pWidget->GetFormField();
for (int32_t i = 0, sz = pField->CountControls(); i < sz; i++) {
if (CPDF_FormControl* pCtrl = pField->GetControl(i)) {
- if (pCtrl->IsChecked()) {
+ if (pCtrl->IsChecked())
break;
- }
}
}
}
CPDFSDK_Widget::ObservedPtr observed_widget(m_pWidget.Get());
CFFL_RadioButton::ObservedPtr observed_this(this);
-
- m_pWidget->SetCheck(bNewChecked, false);
+ m_pWidget->SetCheck(bNewChecked, NotificationOption::kDoNotNotify);
if (!observed_widget)
return;
+
m_pWidget->UpdateField();
if (!observed_widget || !observed_this)
return;
+
SetChangeMark();
}
diff --git a/fpdfsdk/formfiller/cffl_textfield.cpp b/fpdfsdk/formfiller/cffl_textfield.cpp
index da011e40ab..7293d426bc 100644
--- a/fpdfsdk/formfiller/cffl_textfield.cpp
+++ b/fpdfsdk/formfiller/cffl_textfield.cpp
@@ -138,19 +138,20 @@ void CFFL_TextField::SaveData(CPDFSDK_PageView* pPageView) {
WideString sOldValue = m_pWidget->GetValue();
WideString sNewValue = pWnd->GetText();
-
CPDFSDK_Widget::ObservedPtr observed_widget(m_pWidget.Get());
CFFL_TextField::ObservedPtr observed_this(this);
-
- m_pWidget->SetValue(sNewValue, false);
+ m_pWidget->SetValue(sNewValue, NotificationOption::kDoNotNotify);
if (!observed_widget)
return;
+
m_pWidget->ResetFieldAppearance(true);
if (!observed_widget)
return;
+
m_pWidget->UpdateField();
if (!observed_widget || !observed_this)
return;
+
SetChangeMark();
}