From ceb8cf629da014aca93bda177264bd0618bcc590 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Wed, 16 Sep 2020 23:50:57 +0200 Subject: [PATCH] poppler: Convert Stamp annotations via C++ Instead of via the magic XML cycle of Poppler::AnnotationUtils::storeAnnotation + Okular::AnnotationUtils::createAnnotation --- generators/poppler/annots.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/generators/poppler/annots.cpp b/generators/poppler/annots.cpp index 07c9e5890..a2a1f1a3d 100644 --- a/generators/poppler/annots.cpp +++ b/generators/poppler/annots.cpp @@ -563,6 +563,15 @@ static Okular::Annotation *createAnnotationFromPopplerAnnotation(const Poppler:: return oCaretAnn; } +static Okular::Annotation *createAnnotationFromPopplerAnnotation(const Poppler::StampAnnotation *popplerAnnotation) +{ + Okular::StampAnnotation *oStampAnn = new Okular::StampAnnotation(); + + oStampAnn->setStampIconName(popplerAnnotation->stampIconName()); + + return oStampAnn; +} + Okular::Annotation *createAnnotationFromPopplerAnnotation(Poppler::Annotation *popplerAnnotation, const Poppler::Page &popplerPage, bool *doDelete) { Okular::Annotation *okularAnnotation = nullptr; @@ -675,14 +684,9 @@ Okular::Annotation *createAnnotationFromPopplerAnnotation(Poppler::Annotation *p case Poppler::Annotation::AStamp: tieToOkularAnn = true; *doDelete = false; - /* fallthrough */ + okularAnnotation = createAnnotationFromPopplerAnnotation(static_cast(popplerAnnotation)); + break; default: { - // this is uber ugly but i don't know a better way to do it without introducing a poppler::annotation dependency on core - QDomDocument doc; - QDomElement root = doc.createElement(QStringLiteral("root")); - doc.appendChild(root); - Poppler::AnnotationUtils::storeAnnotation(popplerAnnotation, root, doc); - okularAnnotation = Okular::AnnotationUtils::createAnnotation(root); break; } }