diff options
author | Albert Astals Cid <aacid@kde.org> | 2017-03-02 01:00:12 +0100 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2017-03-02 01:00:12 +0100 |
commit | 1b0653ce395242547b2b34b99034a19cd2d3ea6b (patch) | |
tree | c5577778e284d58cd115ecc0a0122530e0302b02 | |
parent | a4c6433c423bd0dcc5056d9ee0375188fea9a0bc (diff) |
Qt5: Expose Form additional actions
-rw-r--r-- | qt5/src/poppler-form.cc | 20 | ||||
-rw-r--r-- | qt5/src/poppler-form.h | 19 |
2 files changed, 39 insertions, 0 deletions
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); |