From 1c349f5448058bfe84266e01df86879ecd9c0628 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Thu, 15 Apr 2021 17:18:45 +0200 Subject: [PATCH] Use new poppler "fancy signature" --- generators/poppler/CMakeLists.txt | 10 ++++++++++ generators/poppler/config-okular-poppler.h.cmake | 3 +++ generators/poppler/generator_pdf.cpp | 7 ++++--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/generators/poppler/CMakeLists.txt b/generators/poppler/CMakeLists.txt index 88e2aca34..34deae9bf 100644 --- a/generators/poppler/CMakeLists.txt +++ b/generators/poppler/CMakeLists.txt @@ -25,6 +25,16 @@ int main() } " HAVE_POPPLER_SIGNING) +check_cxx_source_compiles(" +#include +#include +int main() +{ + Poppler::PDFConverter::NewSignatureData pData; + pData.setSignatureLeftText(QString()); +} +" HAVE_POPPLER_FANCY_SIGNATURE) + configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config-okular-poppler.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-okular-poppler.h diff --git a/generators/poppler/config-okular-poppler.h.cmake b/generators/poppler/config-okular-poppler.h.cmake index 613e1a4da..704328004 100644 --- a/generators/poppler/config-okular-poppler.h.cmake +++ b/generators/poppler/config-okular-poppler.h.cmake @@ -3,3 +3,6 @@ /* Defined if we have the pdf signature feature in the Poppler library */ #cmakedefine HAVE_POPPLER_SIGNING 1 + +/* Defined if we have the pdf fancy signature feature in the Poppler library */ +#cmakedefine HAVE_POPPLER_FANCY_SIGNATURE 1 diff --git a/generators/poppler/generator_pdf.cpp b/generators/poppler/generator_pdf.cpp index d987f4d2d..e88330674 100644 --- a/generators/poppler/generator_pdf.cpp +++ b/generators/poppler/generator_pdf.cpp @@ -1894,10 +1894,11 @@ bool PDFGenerator::sign(const Okular::NewSignatureData &oData, const QString &rF pData.setCertNickname(oData.certNickname()); pData.setPassword(oData.password()); pData.setPage(oData.page()); - const QDateTime t = QDateTime::currentDateTime(); - // This way we force the timezone info to be included in the string - const QString datetime = t.toTimeZone(t.timeZone()).toString(Qt::ISODate); + const QString datetime = QDateTime::currentDateTime().toString(QStringLiteral("yyyy-MM-dd hh:mm:ss t")); pData.setSignatureText(i18n("Signed by: %1\n\nDate: %2", oData.certSubjectCommonName(), datetime)); +#if HAVE_POPPLER_FANCY_SIGNATURE + pData.setSignatureLeftText(oData.certSubjectCommonName()); +#endif const Okular::NormalizedRect bRect = oData.boundingRectangle(); pData.setBoundingRectangle({bRect.left, bRect.top, bRect.width(), bRect.height()}); pData.setFontColor(Qt::black);