qt5/src/poppler-form.cc |   20 ++++++++++++++++++++
 qt5/src/poppler-form.h  |   19 +++++++++++++++++++
 2 files changed, 39 insertions(+)

New commits:
commit 1b0653ce395242547b2b34b99034a19cd2d3ea6b
Author: Albert Astals Cid <[email protected]>
Date:   Thu Mar 2 01:00:12 2017 +0100

    Qt5: Expose Form additional actions

diff --git a/qt5/src/poppler-form.cc b/qt5/src/poppler-form.cc
index 03839bf..1ccb26c 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 7996a2c..5a6b23b 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);
_______________________________________________
poppler mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to