From 1b0653ce395242547b2b34b99034a19cd2d3ea6b Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Thu, 2 Mar 2017 01:00:12 +0100 Subject: Qt5: Expose Form additional actions --- qt5/src/poppler-form.cc | 20 ++++++++++++++++++++ qt5/src/poppler-form.h | 19 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/qt5/src/poppler-form.cc b/qt5/src/poppler-form.cc index 03839bfc..1ccb26ce 100644 --- a/qt5/src/poppler-form.cc +++ b/qt5/src/poppler-form.cc @@ -160,6 +160,26 @@ Link* FormField::activationAction() const return action; } +Link *FormField::additionalAction(AdditionalActionType type) const +{ + Annot::FormAdditionalActionsType actionType = Annot::actionFieldModified; + switch ( type ) + { + case FieldModified: actionType = Annot::actionFieldModified; break; + case FormatField: actionType = Annot::actionFormatField; break; + case ValidateField: actionType = Annot::actionValidateField; break; + case CalculateField: actionType = Annot::actionCalculateField; break; + + } + + Link* action = 0; + if (::LinkAction *act = m_formData->fm->getAdditionalAction(actionType)) + { + action = PageData::convertLinkActionToLink(act, m_formData->doc, QRectF()); + } + return action; +} + FormFieldButton::FormFieldButton(DocumentData *doc, ::Page *p, ::FormWidgetButton *w) : FormField(*new FormFieldData(doc, p, w)) diff --git a/qt5/src/poppler-form.h b/qt5/src/poppler-form.h index 7996a2c3..5a6b23b7 100644 --- a/qt5/src/poppler-form.h +++ b/qt5/src/poppler-form.h @@ -116,6 +116,25 @@ namespace Poppler { */ Link* activationAction() const; + /** + * Describes the flags from the form 'AA' dictionary. + * + * \since 0.53 + */ + enum AdditionalActionType + { + FieldModified, ///< A JavaScript action to be performed when the user modifies the field + FormatField, ///< A JavaScript action to be performed before the field is formatted to display its value + ValidateField, ///< A JavaScript action to be performed when the field value changes + CalculateField, ///< A JavaScript action to be performed when the field needs to be recalculated + }; + /** + * Returns a given form additional action + * + * \since 0.53 + */ + Link* additionalAction(AdditionalActionType type) const; + protected: /// \cond PRIVATE FormField(FormFieldData &dd); -- cgit v1.2.3