As requested in #1318.
Many things basically just mirror the qt5/qt6 APIs, most particularly:
LinkRendition::isReferencedAnnotation(const ScreenAnnotation *annotation)
I’ve tried my best to reuse existing code patterns, such as pointers to created actions in the
_PopplerAnnotScreen struct as found in form fields, and private struct fields store in a private
PopplerActionRenditionExtended (ABI-compatible with
PopplerActionRendition) as found in
- I haven’t found cleanup code for additional actions in form fields, but seeing the cleanup for main actions I assume that was an oversight? I’ve added cleanup code for additional actions both in form fields and in screen annotations.
- I’ve reused the
PopplerAdditionalActionTypeenum but moved it to a header that is visible from both form fields and annotations
- I’ve changed the
PopplerActionRendition.opfrom an int to an ABI-compatible enum (i.e. preserving numerical values), as the values were defined from poppler’s
LinkRendition::RenditionOperationenum which is not publicly available in the GLib API, and those values differed from the PDF standard ones (e.g.
1means play in this enum, but stop in the PDF
opinteger field of rendition actions).
Please let me know you find these changes are desirable, and what modifications (if any) would be needed to get this merged.