From cc908b9f92adbefbdccf2ef3f8afd6c70590d05d Mon Sep 17 00:00:00 2001 From: Katarina Behrens Date: Tue, 20 Aug 2019 16:34:36 +0200 Subject: [PATCH] Pass pointer to widget annotation just added down the chain --- core/document.cpp | 4 ++-- core/document.h | 2 +- core/generator.h | 2 +- generators/poppler/generator_pdf.cpp | 6 ++++++ generators/poppler/generator_pdf.h | 2 +- part/pageviewannotator.cpp | 2 +- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/core/document.cpp b/core/document.cpp index 38ac1d9bf..793d8bfd5 100644 --- a/core/document.cpp +++ b/core/document.cpp @@ -2701,10 +2701,10 @@ bool Document::canConfigurePrinter() const return false; } -void Document::sign() +void Document::sign( const Okular::Annotation* pWhichAnnotation ) { if (d->m_generator->canSign()) - d->m_generator->sign(); + d->m_generator->sign( pWhichAnnotation ); } DocumentInfo Document::documentInfo() const diff --git a/core/document.h b/core/document.h index 7cd78732d..ca90e58b2 100644 --- a/core/document.h +++ b/core/document.h @@ -1052,7 +1052,7 @@ public Q_SLOTS: */ void reloadDocument() const; - void sign(); + void sign( const Okular::Annotation* pWhichAnnotation ); /** * Returns the part of document covered by the given signature @p info. diff --git a/core/generator.h b/core/generator.h index 63d69c5b2..4ffef90db 100644 --- a/core/generator.h +++ b/core/generator.h @@ -309,7 +309,7 @@ public: virtual bool canSign() const { return false; } - virtual void sign() { return; } + virtual void sign( const Okular::Annotation* /*pWhichAnnotation*/) { return; } /** * This method can be called to trigger the generation of diff --git a/generators/poppler/generator_pdf.cpp b/generators/poppler/generator_pdf.cpp index 7016ea8b8..a1680f642 100644 --- a/generators/poppler/generator_pdf.cpp +++ b/generators/poppler/generator_pdf.cpp @@ -1854,6 +1854,12 @@ Okular::AnnotationProxy *PDFGenerator::annotationProxy() const return annotProxy; } +void PDFGenerator::sign( const Okular::Annotation* pWhichAnnotation ) +{ + Poppler::Annotation *popplerAnn = qvariant_cast< Poppler::Annotation * >( pWhichAnnotation->nativeId() ); + pdfdoc->sign( popplerAnn ); +} + #include "generator_pdf.moc" Q_LOGGING_CATEGORY(OkularPdfDebug, "org.kde.okular.generators.pdf", QtWarningMsg) diff --git a/generators/poppler/generator_pdf.h b/generators/poppler/generator_pdf.h index c96e14df3..b1c6acf66 100644 --- a/generators/poppler/generator_pdf.h +++ b/generators/poppler/generator_pdf.h @@ -101,7 +101,7 @@ public: Okular::AnnotationProxy *annotationProxy() const override; bool canSign() const override {return true;} - void sign() override { return; } + void sign( const Okular::Annotation* pWhichAnnotation ) override; protected: SwapBackingFileResult swapBackingFile(QString const &newFileName, QVector &newPagesVector) override; diff --git a/part/pageviewannotator.cpp b/part/pageviewannotator.cpp index 208ff26cd..69b76feb8 100644 --- a/part/pageviewannotator.cpp +++ b/part/pageviewannotator.cpp @@ -923,7 +923,7 @@ QRect PageViewAnnotator::performRouteMouseOrTabletEvent(const AnnotatorEngine::E m_document->addPageAnnotation(m_lockedItem->pageNumber(), annotation); if (signatureMode()) - m_document->sign(); + m_document->sign(annotation); if (annotation->openDialogAfterCreation()) m_pageView->openAnnotationWindow(annotation, m_lockedItem->pageNumber());