summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fpdfsdk/cpdfsdk_interform.cpp46
-rw-r--r--fpdfsdk/cpdfsdk_interform.h3
-rw-r--r--fpdfsdk/fsdk_actionhandler.cpp104
-rw-r--r--fpdfsdk/fsdk_actionhandler.h7
4 files changed, 43 insertions, 117 deletions
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp
index e19d47bb55..21a6d41c43 100644
--- a/fpdfsdk/cpdfsdk_interform.cpp
+++ b/fpdfsdk/cpdfsdk_interform.cpp
@@ -237,12 +237,11 @@ void CPDFSDK_InterForm::XfaSetValidationsEnabled(bool bEnabled) {
m_bXfaValidationsEnabled = bEnabled;
}
-void CPDFSDK_InterForm::SynchronizeField(CPDF_FormField* pFormField,
- bool bSynchronizeElse) {
+void CPDFSDK_InterForm::SynchronizeField(CPDF_FormField* pFormField) {
for (int i = 0, sz = pFormField->CountControls(); i < sz; i++) {
CPDF_FormControl* pFormCtrl = pFormField->GetControl(i);
if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl))
- pWidget->Synchronize(bSynchronizeElse);
+ pWidget->Synchronize(false);
}
}
#endif // PDF_ENABLE_XFA
@@ -608,20 +607,17 @@ bool CPDFSDK_InterForm::DoAction_ResetForm(const CPDF_Action& action) {
return m_pInterForm->ResetForm(fields, !(dwFlags & 0x01), true);
}
-bool CPDFSDK_InterForm::DoAction_ImportData(const CPDF_Action& action) {
- return false;
-}
-
std::vector<CPDF_FormField*> CPDFSDK_InterForm::GetFieldFromObjects(
const std::vector<CPDF_Object*>& objects) const {
std::vector<CPDF_FormField*> fields;
for (CPDF_Object* pObject : objects) {
- if (pObject && pObject->IsString()) {
- WideString csName = pObject->GetUnicodeText();
- CPDF_FormField* pField = m_pInterForm->GetField(0, csName);
- if (pField)
- fields.push_back(pField);
- }
+ if (!pObject || !pObject->IsString())
+ continue;
+
+ WideString csName = pObject->GetUnicodeText();
+ CPDF_FormField* pField = m_pInterForm->GetField(0, csName);
+ if (pField)
+ fields.push_back(pField);
}
return fields;
}
@@ -631,41 +627,37 @@ int CPDFSDK_InterForm::BeforeValueChange(CPDF_FormField* pField,
FormFieldType fieldType = pField->GetFieldType();
if (!IsFormFieldTypeComboOrText(fieldType))
return 0;
-
if (!OnKeyStrokeCommit(pField, csValue))
return -1;
-
if (!OnValidate(pField, csValue))
return -1;
-
return 1;
}
void CPDFSDK_InterForm::AfterValueChange(CPDF_FormField* pField) {
#ifdef PDF_ENABLE_XFA
- SynchronizeField(pField, false);
+ SynchronizeField(pField);
#endif // PDF_ENABLE_XFA
+
FormFieldType fieldType = pField->GetFieldType();
- if (IsFormFieldTypeComboOrText(fieldType)) {
- OnCalculate(pField);
- bool bFormatted = false;
- WideString sValue = OnFormat(pField, bFormatted);
- ResetFieldAppearance(pField, bFormatted ? &sValue : nullptr, true);
- UpdateField(pField);
- }
+ if (!IsFormFieldTypeComboOrText(fieldType))
+ return;
+
+ OnCalculate(pField);
+ bool bFormatted = false;
+ WideString sValue = OnFormat(pField, bFormatted);
+ ResetFieldAppearance(pField, bFormatted ? &sValue : nullptr, true);
+ UpdateField(pField);
}
int CPDFSDK_InterForm::BeforeSelectionChange(CPDF_FormField* pField,
const WideString& csValue) {
if (pField->GetFieldType() != FormFieldType::kListBox)
return 0;
-
if (!OnKeyStrokeCommit(pField, csValue))
return -1;
-
if (!OnValidate(pField, csValue))
return -1;
-
return 1;
}
diff --git a/fpdfsdk/cpdfsdk_interform.h b/fpdfsdk/cpdfsdk_interform.h
index ee960ff33c..a412f05689 100644
--- a/fpdfsdk/cpdfsdk_interform.h
+++ b/fpdfsdk/cpdfsdk_interform.h
@@ -62,7 +62,7 @@ class CPDFSDK_InterForm : public IPDF_FormNotify {
bool IsXfaCalculateEnabled() const;
bool IsXfaValidationsEnabled();
void XfaSetValidationsEnabled(bool bEnabled);
- void SynchronizeField(CPDF_FormField* pFormField, bool bSynchronizeElse);
+ void SynchronizeField(CPDF_FormField* pFormField);
#endif // PDF_ENABLE_XFA
bool OnKeyStrokeCommit(CPDF_FormField* pFormField, const WideString& csValue);
@@ -78,7 +78,6 @@ class CPDFSDK_InterForm : public IPDF_FormNotify {
bool DoAction_Hide(const CPDF_Action& action);
bool DoAction_SubmitForm(const CPDF_Action& action);
bool DoAction_ResetForm(const CPDF_Action& action);
- bool DoAction_ImportData(const CPDF_Action& action);
std::vector<CPDF_FormField*> GetFieldFromObjects(
const std::vector<CPDF_Object*>& objects) const;
diff --git a/fpdfsdk/fsdk_actionhandler.cpp b/fpdfsdk/fsdk_actionhandler.cpp
index de5c9313b5..b0bc3f6831 100644
--- a/fpdfsdk/fsdk_actionhandler.cpp
+++ b/fpdfsdk/fsdk_actionhandler.cpp
@@ -126,9 +126,8 @@ bool CPDFSDK_ActionHandler::ExecuteDocumentOpenAction(
if (action.GetType() == CPDF_Action::JavaScript) {
if (pFormFillEnv->IsJSInitiated()) {
WideString swJS = action.GetJavaScript();
- if (!swJS.IsEmpty()) {
+ if (!swJS.IsEmpty())
RunDocumentOpenJavaScript(pFormFillEnv, L"", swJS);
- }
}
} else {
DoAction_NoJs(action, pFormFillEnv);
@@ -163,11 +162,9 @@ bool CPDFSDK_ActionHandler::ExecuteLinkAction(
pContext->OnLink_MouseUp(pFormFillEnv);
WideString csInfo;
- bool bRet = pContext->RunScript(swJS, &csInfo);
+ pContext->RunScript(swJS, &csInfo);
pRuntime->ReleaseEventContext(pContext);
- if (!bRet) {
- // FIXME: return error.
- }
+ // TODO(dsinclair): Return error if RunScript returns false.
}
}
} else {
@@ -198,16 +195,14 @@ bool CPDFSDK_ActionHandler::ExecuteDocumentPageAction(
if (action.GetType() == CPDF_Action::JavaScript) {
if (pFormFillEnv->IsJSInitiated()) {
WideString swJS = action.GetJavaScript();
- if (!swJS.IsEmpty()) {
+ if (!swJS.IsEmpty())
RunDocumentPageJavaScript(pFormFillEnv, type, swJS);
- }
}
} else {
DoAction_NoJs(action, pFormFillEnv);
}
- if (!IsValidDocView(pFormFillEnv))
- return false;
+ ASSERT(pFormFillEnv);
for (int32_t i = 0, sz = action.GetSubActionsCount(); i < sz; i++) {
CPDF_Action subaction = action.GetSubAction(i);
@@ -285,11 +280,9 @@ bool CPDFSDK_ActionHandler::ExecuteScreenAction(
IJS_Runtime* pRuntime = pFormFillEnv->GetJSRuntime();
IJS_EventContext* pContext = pRuntime->NewEventContext();
WideString csInfo;
- bool bRet = pContext->RunScript(swJS, &csInfo);
+ pContext->RunScript(swJS, &csInfo);
pRuntime->ReleaseEventContext(pContext);
- if (!bRet) {
- // FIXME: return error.
- }
+ // TODO(dsinclair): Return error if RunScript returns false.
}
}
} else {
@@ -326,11 +319,9 @@ bool CPDFSDK_ActionHandler::ExecuteBookMark(
pContext->OnBookmark_MouseUp(pBookmark);
WideString csInfo;
- bool bRet = pContext->RunScript(swJS, &csInfo);
+ pContext->RunScript(swJS, &csInfo);
pRuntime->ReleaseEventContext(pContext);
- if (!bRet) {
- // FIXME: return error.
- }
+ // TODO(dsinclair): Return error if RunScript returns false.
}
}
} else {
@@ -355,23 +346,9 @@ void CPDFSDK_ActionHandler::DoAction_NoJs(
case CPDF_Action::GoTo:
DoAction_GoTo(pFormFillEnv, action);
break;
- case CPDF_Action::GoToR:
- DoAction_GoToR(pFormFillEnv, action);
- break;
- case CPDF_Action::GoToE:
- break;
- case CPDF_Action::Launch:
- DoAction_Launch(pFormFillEnv, action);
- break;
- case CPDF_Action::Thread:
- break;
case CPDF_Action::URI:
DoAction_URI(pFormFillEnv, action);
break;
- case CPDF_Action::Sound:
- break;
- case CPDF_Action::Movie:
- break;
case CPDF_Action::Hide:
DoAction_Hide(action, pFormFillEnv);
break;
@@ -384,32 +361,27 @@ void CPDFSDK_ActionHandler::DoAction_NoJs(
case CPDF_Action::ResetForm:
DoAction_ResetForm(action, pFormFillEnv);
break;
- case CPDF_Action::ImportData:
- DoAction_ImportData(action, pFormFillEnv);
- break;
case CPDF_Action::JavaScript:
NOTREACHED();
break;
case CPDF_Action::SetOCGState:
- DoAction_SetOCGState(pFormFillEnv, action);
- break;
+ case CPDF_Action::Thread:
+ case CPDF_Action::Sound:
+ case CPDF_Action::Movie:
case CPDF_Action::Rendition:
- break;
case CPDF_Action::Trans:
- break;
case CPDF_Action::GoTo3DView:
+ case CPDF_Action::GoToR:
+ case CPDF_Action::GoToE:
+ case CPDF_Action::Launch:
+ case CPDF_Action::ImportData:
+ // Unimplemented
break;
default:
break;
}
}
-bool CPDFSDK_ActionHandler::IsValidDocView(
- CPDFSDK_FormFillEnvironment* pFormFillEnv) {
- ASSERT(pFormFillEnv);
- return true;
-}
-
void CPDFSDK_ActionHandler::DoAction_GoTo(
CPDFSDK_FormFillEnvironment* pFormFillEnv,
const CPDF_Action& action) {
@@ -431,14 +403,6 @@ void CPDFSDK_ActionHandler::DoAction_GoTo(
posArray.size());
}
-void CPDFSDK_ActionHandler::DoAction_GoToR(
- CPDFSDK_FormFillEnvironment* pFormFillEnv,
- const CPDF_Action& action) {}
-
-void CPDFSDK_ActionHandler::DoAction_Launch(
- CPDFSDK_FormFillEnvironment* pFormFillEnv,
- const CPDF_Action& action) {}
-
void CPDFSDK_ActionHandler::DoAction_URI(
CPDFSDK_FormFillEnvironment* pFormFillEnv,
const CPDF_Action& action) {
@@ -457,10 +421,6 @@ void CPDFSDK_ActionHandler::DoAction_Named(
pFormFillEnv->ExecuteNamedAction(csName.c_str());
}
-void CPDFSDK_ActionHandler::DoAction_SetOCGState(
- CPDFSDK_FormFillEnvironment* pFormFillEnv,
- const CPDF_Action& action) {}
-
void CPDFSDK_ActionHandler::RunFieldJavaScript(
CPDFSDK_FormFillEnvironment* pFormFillEnv,
CPDF_FormField* pFormField,
@@ -510,11 +470,9 @@ void CPDFSDK_ActionHandler::RunFieldJavaScript(
}
WideString csInfo;
- bool bRet = pContext->RunScript(script, &csInfo);
+ pContext->RunScript(script, &csInfo);
pRuntime->ReleaseEventContext(pContext);
- if (!bRet) {
- // FIXME: return error.
- }
+ // TODO(dsinclair): Return error if RunScript returns false.
}
void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript(
@@ -526,11 +484,9 @@ void CPDFSDK_ActionHandler::RunDocumentOpenJavaScript(
pContext->OnDoc_Open(pFormFillEnv, sScriptName);
WideString csInfo;
- bool bRet = pContext->RunScript(script, &csInfo);
+ pContext->RunScript(script, &csInfo);
pRuntime->ReleaseEventContext(pContext);
- if (!bRet) {
- // FIXME: return error.
- }
+ // TODO(dsinclair): Return error if RunScript returns false.
}
void CPDFSDK_ActionHandler::RunDocumentPageJavaScript(
@@ -573,11 +529,9 @@ void CPDFSDK_ActionHandler::RunDocumentPageJavaScript(
}
WideString csInfo;
- bool bRet = pContext->RunScript(script, &csInfo);
+ pContext->RunScript(script, &csInfo);
pRuntime->ReleaseEventContext(pContext);
- if (!bRet) {
- // FIXME: return error.
- }
+ // TODO(dsinclair): Return error if RunScript returns false.
}
bool CPDFSDK_ActionHandler::DoAction_Hide(
@@ -588,7 +542,6 @@ bool CPDFSDK_ActionHandler::DoAction_Hide(
pFormFillEnv->SetChangeMark();
return true;
}
-
return false;
}
@@ -606,14 +559,3 @@ bool CPDFSDK_ActionHandler::DoAction_ResetForm(
return pInterForm->DoAction_ResetForm(action);
}
-bool CPDFSDK_ActionHandler::DoAction_ImportData(
- const CPDF_Action& action,
- CPDFSDK_FormFillEnvironment* pFormFillEnv) {
- CPDFSDK_InterForm* pInterForm = pFormFillEnv->GetInterForm();
- if (pInterForm->DoAction_ImportData(action)) {
- pFormFillEnv->SetChangeMark();
- return true;
- }
-
- return false;
-}
diff --git a/fpdfsdk/fsdk_actionhandler.h b/fpdfsdk/fsdk_actionhandler.h
index 7457b4ed91..006aff3995 100644
--- a/fpdfsdk/fsdk_actionhandler.h
+++ b/fpdfsdk/fsdk_actionhandler.h
@@ -98,20 +98,15 @@ class CPDFSDK_ActionHandler {
bool IsValidField(CPDFSDK_FormFillEnvironment* pFormFillEnv,
CPDF_Dictionary* pFieldDict);
- bool IsValidDocView(CPDFSDK_FormFillEnvironment* pFormFillEnv);
void DoAction_GoTo(CPDFSDK_FormFillEnvironment* pFormFillEnv,
const CPDF_Action& action);
- void DoAction_GoToR(CPDFSDK_FormFillEnvironment* pFormFillEnv,
- const CPDF_Action& action);
void DoAction_Launch(CPDFSDK_FormFillEnvironment* pFormFillEnv,
const CPDF_Action& action);
void DoAction_URI(CPDFSDK_FormFillEnvironment* pFormFillEnv,
const CPDF_Action& action);
void DoAction_Named(CPDFSDK_FormFillEnvironment* pFormFillEnv,
const CPDF_Action& action);
- void DoAction_SetOCGState(CPDFSDK_FormFillEnvironment* pFormFillEnv,
- const CPDF_Action& action);
bool DoAction_Hide(const CPDF_Action& action,
CPDFSDK_FormFillEnvironment* pFormFillEnv);
@@ -119,8 +114,6 @@ class CPDFSDK_ActionHandler {
CPDFSDK_FormFillEnvironment* pFormFillEnv);
bool DoAction_ResetForm(const CPDF_Action& action,
CPDFSDK_FormFillEnvironment* pFormFillEnv);
- bool DoAction_ImportData(const CPDF_Action& action,
- CPDFSDK_FormFillEnvironment* pFormFillEnv);
};
#endif // FPDFSDK_FSDK_ACTIONHANDLER_H_