summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2017-03-02 01:00:12 +0100
committerAlbert Astals Cid <aacid@kde.org>2017-03-02 01:00:12 +0100
commit1b0653ce395242547b2b34b99034a19cd2d3ea6b (patch)
treec5577778e284d58cd115ecc0a0122530e0302b02
parenta4c6433c423bd0dcc5056d9ee0375188fea9a0bc (diff)
Qt5: Expose Form additional actions
-rw-r--r--qt5/src/poppler-form.cc20
-rw-r--r--qt5/src/poppler-form.h19
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);