Subject: fix build with poppler 24.12.0 ## patch from arch linux ## https://gitlab.archlinux.org/archlinux/packaging/packages/scribus/-/blob/main/fix_build_with_poppler_24.12.0.patch?ref_type=heads Index: scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.cpp =================================================================== --- scribus-1.6.2.orig/scribus/plugins/import/pdf/slaoutput.cpp +++ scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.cpp @@ -8,9 +8,7 @@ for which a new license (GPL+exception) #include "slaoutput.h" #include -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) #include -#endif #include #include @@ -81,6 +79,8 @@ namespace } } +#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(24, 10, 0) + LinkSubmitForm::LinkSubmitForm(Object *actionObj) { if (!actionObj->isDict()) @@ -92,12 +92,12 @@ LinkSubmitForm::LinkSubmitForm(Object *a Object obj3 = obj1.dictLookup("FS"); if (!obj3.isNull() && obj3.isName()) { - POPPLER_CONST char *name = obj3.getName(); + const char *name = obj3.getName(); if (!strcmp(name, "URL")) { Object obj2 = obj1.dictLookup("F"); if (!obj2.isNull()) - fileName = obj2.getString()->copy(); + m_url = obj2.getString()->copy(); } } } @@ -108,9 +108,11 @@ LinkSubmitForm::LinkSubmitForm(Object *a LinkSubmitForm::~LinkSubmitForm() { - delete fileName; + delete m_url; } +#endif + LinkImportData::LinkImportData(Object *actionObj) { if (!actionObj->isDict()) @@ -162,7 +164,7 @@ void AnoOutputDev::stroke(GfxState *stat currColorStroke = getColor(state->getStrokeColorSpace(), state->getStrokeColor(), &shade); } -void AnoOutputDev::drawString(GfxState *state, POPPLER_CONST GooString *s) +void AnoOutputDev::drawString(GfxState *state, const GooString *s) { int shade = 100; currColorText = getColor(state->getFillColorSpace(), state->getFillColor(), &shade); @@ -177,7 +179,7 @@ void AnoOutputDev::drawString(GfxState * itemText = s->copy(); } -QString AnoOutputDev::getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade) +QString AnoOutputDev::getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade) { QString fNam; QString namPrefix = "FromPDF"; @@ -218,7 +220,7 @@ QString AnoOutputDev::getColor(GfxColorS { auto* sepColorSpace = (GfxSeparationColorSpace*) color_space; GfxColorSpace* altColorSpace = sepColorSpace->getAlt(); - QString name(sepColorSpace->getName()->getCString()); + QString name(sepColorSpace->getName()->c_str()); bool isRegistrationColor = (name == "All"); if (isRegistrationColor) { @@ -308,8 +310,8 @@ LinkAction* SlaOutputDev::SC_getAction(A obj = m_xref->fetch(refa.num, refa.gen); if (obj.isDict()) { - Dict* adic = obj.getDict(); - POPPLER_CONST_075 Object POPPLER_REF additionalActions = adic->lookupNF("A"); + const Dict* adic = obj.getDict(); + const Object & additionalActions = adic->lookupNF("A"); Object additionalActionsObject = additionalActions.fetch(m_pdfDoc->getXRef()); if (additionalActionsObject.isDict()) { @@ -328,23 +330,17 @@ LinkAction* SlaOutputDev::SC_getAction(A } /* Replacement for the crippled Poppler function LinkAction* AnnotWidget::getAdditionalAction(AdditionalActionsType type) */ -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) std::unique_ptr SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano) { std::unique_ptr linkAction; -#else -LinkAction* SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano) -{ - LinkAction *linkAction = nullptr; -#endif Object obj; Ref refa = ano->getRef(); obj = m_xref->fetch(refa.num, refa.gen); if (obj.isDict()) { - Dict* adic = obj.getDict(); - POPPLER_CONST_075 Object POPPLER_REF additionalActions = adic->lookupNF("AA"); + const Dict* adic = obj.getDict(); + const Object & additionalActions = adic->lookupNF("AA"); Object additionalActionsObject = additionalActions.fetch(m_pdfDoc->getXRef()); if (additionalActionsObject.isDict()) { @@ -356,7 +352,7 @@ LinkAction* SlaOutputDev::SC_getAddition return linkAction; } -GBool SlaOutputDev::annotations_callback(Annot *annota, void *user_data) +bool SlaOutputDev::annotations_callback(Annot *annota, void *user_data) { auto *dev = (SlaOutputDev*) user_data; #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) @@ -396,7 +392,7 @@ GBool SlaOutputDev::annotations_callback bool SlaOutputDev::handleTextAnnot(Annot* annota, double xCoor, double yCoor, double width, double height) { - auto *anl = (AnnotText*) annota; + const auto *anl = (AnnotText*) annota; int z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Rectangle, xCoor, yCoor, width, height, 0, CommonStrings::None, CommonStrings::None); PageItem *ite = m_doc->Items->at(z); int flg = annota->getFlags(); @@ -448,7 +444,7 @@ bool SlaOutputDev::handleTextAnnot(Annot bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double width, double height) { - auto *anl = (AnnotLink*) annota; + const auto *anl = (AnnotLink*) annota; LinkAction *act = anl->getAction(); if (!act) return false; @@ -459,8 +455,8 @@ bool SlaOutputDev::handleLinkAnnot(Annot QString fileName; if (act->getKind() == actionGoTo) { - auto *gto = (LinkGoTo*) act; - POPPLER_CONST LinkDest *dst = gto->getDest(); + const auto *gto = (LinkGoTo*) act; + const LinkDest *dst = gto->getDest(); if (dst) { if (dst->getKind() == destXYZ) @@ -468,11 +464,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot if (dst->isPageRef()) { Ref dstr = dst->getPageRef(); -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0) pagNum = m_pdfDoc->findPage(dstr); -#else - pagNum = m_pdfDoc->findPage(dstr.num, dstr.gen); -#endif } else pagNum = dst->getPageNum(); @@ -483,24 +475,16 @@ bool SlaOutputDev::handleLinkAnnot(Annot } else { - POPPLER_CONST GooString *ndst = gto->getNamedDest(); + const GooString *ndst = gto->getNamedDest(); if (ndst) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) std::unique_ptr dstn = m_pdfDoc->findDest(ndst); -#else - LinkDest *dstn = m_pdfDoc->findDest(ndst); -#endif if (dstn && (dstn->getKind() == destXYZ)) { if (dstn->isPageRef()) { Ref dstr = dstn->getPageRef(); -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0) pagNum = m_pdfDoc->findPage(dstr); -#else - pagNum = m_pdfDoc->findPage(dstr.num, dstr.gen); -#endif } else pagNum = dstn->getPageNum(); @@ -513,9 +497,9 @@ bool SlaOutputDev::handleLinkAnnot(Annot } else if (act->getKind() == actionGoToR) { - auto *gto = (LinkGoToR*) act; + const auto *gto = (LinkGoToR*) act; fileName = UnicodeParsedString(gto->getFileName()); - POPPLER_CONST LinkDest *dst = gto->getDest(); + const LinkDest *dst = gto->getDest(); if (dst) { if (dst->getKind() == destXYZ) @@ -528,14 +512,10 @@ bool SlaOutputDev::handleLinkAnnot(Annot } else { - POPPLER_CONST GooString *ndst = gto->getNamedDest(); + const GooString *ndst = gto->getNamedDest(); if (ndst) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) std::unique_ptr dstn = m_pdfDoc->findDest(ndst); -#else - LinkDest *dstn = m_pdfDoc->findDest(ndst); -#endif if (dstn && (dstn->getKind() == destXYZ)) { pagNum = dstn->getPageNum(); @@ -548,7 +528,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot } else if (act->getKind() == actionURI) { - auto *gto = (LinkURI*) act; + const auto *gto = (LinkURI*) act; validLink = true; fileName = UnicodeParsedString(gto->getURI()); } @@ -621,7 +601,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann int wtyp = -1; if (fm->getType() == formButton) { - auto *btn = (FormWidgetButton*) fm; + const auto *btn = (FormWidgetButton*) fm; if (btn) { if (btn->getButtonType() == formButtonCheck) @@ -648,7 +628,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann } else if (fm->getType() == formChoice) { - auto *btn = (FormWidgetChoice*) fm; + const auto *btn = (FormWidgetChoice*) fm; if (btn) { if (btn->isCombo()) @@ -670,7 +650,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann bool bgFound = false; if (achar) { - POPPLER_CONST AnnotColor *bgCol = achar->getBackColor(); + const AnnotColor *bgCol = achar->getBackColor(); if (bgCol) { bgFound = true; @@ -678,7 +658,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann } else m_graphicStack.top().fillColor = CommonStrings::None; - POPPLER_CONST AnnotColor *fgCol = achar->getBorderColor(); + const AnnotColor *fgCol = achar->getBorderColor(); if (fgCol) { fgFound = true; @@ -739,7 +719,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann } ite->setIsAnnotation(true); ite->AutoName = false; - AnnotBorder *brd = annota->getBorder(); + const AnnotBorder *brd = annota->getBorder(); if (brd) { int bsty = brd->getStyle(); @@ -761,7 +741,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann ite->annotation().setBorderColor(CommonStrings::None); ite->annotation().setBorderWidth(0); } - QString tmTxt = UnicodeParsedString(fm->getPartialName()); + QString tmTxt(UnicodeParsedString(fm->getPartialName())); if (!tmTxt.isEmpty()) ite->setItemName(tmTxt); tmTxt.clear(); @@ -794,7 +774,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann ite->itemText.insertChars(itemText); applyTextStyle(ite, fontName, currTextColor, fontSize); ite->annotation().addToFlag(Annotation::Flag_PushButton); - auto *btn = (FormWidgetButton*) fm; + const auto *btn = (FormWidgetButton*) fm; if (!btn->isReadOnly()) ite->annotation().addToFlag(Annotation::Flag_Edit); handleActions(ite, ano); @@ -829,7 +809,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann } else if (wtyp == Annotation::Checkbox) { - auto *btn = (FormWidgetButton*) fm; + const auto *btn = (FormWidgetButton*) fm; if (btn) { ite->annotation().setIsChk(btn->getState()); @@ -855,7 +835,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann } else if ((wtyp == Annotation::Combobox) || (wtyp == Annotation::Listbox)) { - auto *btn = (FormWidgetChoice*) fm; + const auto *btn = (FormWidgetChoice*) fm; if (btn) { if (wtyp == 5) @@ -878,7 +858,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann } else if (wtyp == Annotation::RadioButton) { - auto *btn = (FormWidgetButton*) fm; + const auto *btn = (FormWidgetButton*) fm; if (btn) { ite->setItemName( CommonStrings::itemName_RadioButton + QString("%1").arg(m_doc->TotalItems)); @@ -898,7 +878,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann obj1 = m_xref->fetch(refa.num, refa.gen); if (obj1.isDict()) { - Dict* dict = obj1.getDict(); + const Dict* dict = obj1.getDict(); Object obj2 = dict->lookup("Kids"); //childs if (obj2.isArray()) @@ -907,7 +887,7 @@ bool SlaOutputDev::handleWidgetAnnot(Ann QList radList; for (int i = 0; i < obj2.arrayGetLength(); i++) { - POPPLER_CONST_075 Object POPPLER_REF childRef = obj2.arrayGetNF(i); + const Object & childRef = obj2.arrayGetNF(i); if (!childRef.isRef()) continue; Object childObj = obj2.arrayGet(i); @@ -966,7 +946,7 @@ void SlaOutputDev::handleActions(PageIte { if (Lact->getKind() == actionJavaScript) { - auto *jsa = (LinkJavaScript*) Lact; + const auto *jsa = (LinkJavaScript*) Lact; if (jsa->isOk()) { ite->annotation().setActionType(1); @@ -978,8 +958,8 @@ void SlaOutputDev::handleActions(PageIte int pagNum = 0; int xco = 0; int yco = 0; - auto *gto = (LinkGoTo*) Lact; - POPPLER_CONST LinkDest *dst = gto->getDest(); + const auto *gto = (LinkGoTo*) Lact; + const LinkDest *dst = gto->getDest(); if (dst) { if (dst->getKind() == destXYZ) @@ -987,11 +967,7 @@ void SlaOutputDev::handleActions(PageIte if (dst->isPageRef()) { Ref dstr = dst->getPageRef(); -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0) pagNum = m_pdfDoc->findPage(dstr); -#else - pagNum = m_pdfDoc->findPage(dstr.num, dstr.gen); -#endif } else pagNum = dst->getPageNum(); @@ -1004,24 +980,16 @@ void SlaOutputDev::handleActions(PageIte } else { - POPPLER_CONST GooString *ndst = gto->getNamedDest(); + const GooString *ndst = gto->getNamedDest(); if (ndst) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) std::unique_ptr dstn = m_pdfDoc->findDest(ndst); -#else - LinkDest *dstn = m_pdfDoc->findDest(ndst); -#endif if (dstn && (dstn->getKind() == destXYZ)) { if (dstn->isPageRef()) { Ref dstr = dstn->getPageRef(); -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 76, 0) pagNum = m_pdfDoc->findPage(dstr); -#else - pagNum = m_pdfDoc->findPage(dstr.num, dstr.gen); -#endif } else pagNum = dstn->getPageNum(); @@ -1039,9 +1007,9 @@ void SlaOutputDev::handleActions(PageIte int pagNum = 0; int xco = 0; int yco = 0; - auto *gto = (LinkGoToR*) Lact; + const auto *gto = (LinkGoToR*) Lact; QString fileName = UnicodeParsedString(gto->getFileName()); - POPPLER_CONST LinkDest *dst = gto->getDest(); + const LinkDest *dst = gto->getDest(); if (dst) { if (dst->getKind() == destXYZ) @@ -1057,14 +1025,10 @@ void SlaOutputDev::handleActions(PageIte } else { - POPPLER_CONST GooString *ndst = gto->getNamedDest(); + const GooString *ndst = gto->getNamedDest(); if (ndst) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) std::unique_ptr dstn = m_pdfDoc->findDest(ndst); -#else - LinkDest *dstn = m_pdfDoc->findDest(ndst); -#endif if (dstn && (dstn->getKind() == destXYZ)) { pagNum = dstn->getPageNum(); @@ -1078,9 +1042,33 @@ void SlaOutputDev::handleActions(PageIte } } } + else if (Lact->getKind() == actionResetForm) + { + ite->annotation().setActionType(4); + } +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 10, 0) + else if (Lact->getKind() == actionSubmitForm) + { + const auto* impo = (LinkSubmitForm*) Lact; + if (impo->isOk()) + { + ite->annotation().setActionType(3); + ite->annotation().setAction(UnicodeParsedString(impo->getUrl())); + int fl = impo->getFlags(); + if (fl == 0) + ite->annotation().setHTML(0); + else if (fl == 4) + ite->annotation().setHTML(1); + else if (fl == 64) + ite->annotation().setHTML(2); + else if (fl == 512) + ite->annotation().setHTML(3); + } + } +#endif else if (Lact->getKind() == actionUnknown) { - auto *uno = (LinkUnknown*) Lact; + const auto *uno = (LinkUnknown*) Lact; QString actString = UnicodeParsedString(uno->getAction()); if (actString == "ResetForm") { @@ -1106,7 +1094,7 @@ void SlaOutputDev::handleActions(PageIte if (impo->isOk()) { ite->annotation().setActionType(3); - ite->annotation().setAction(UnicodeParsedString(impo->getFileName())); + ite->annotation().setAction(UnicodeParsedString(impo->getUrl())); int fl = impo->getFlags(); if (fl == 0) ite->annotation().setHTML(0); @@ -1123,7 +1111,7 @@ void SlaOutputDev::handleActions(PageIte } else if (Lact->getKind() == actionNamed) { - auto *uno = (LinkNamed*) Lact; + const auto *uno = (LinkNamed*) Lact; ite->annotation().setActionType(10); ite->annotation().setAction(UnicodeParsedString(uno->getName())); } @@ -1135,143 +1123,91 @@ void SlaOutputDev::handleActions(PageIte { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - auto *jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setD_act(UnicodeParsedString(jsa->getScript())); ite->annotation().setAAact(true); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } Aact = SC_getAdditionalAction("E", ano); if (Aact) { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - auto *jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setE_act(UnicodeParsedString(jsa->getScript())); ite->annotation().setAAact(true); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } Aact = SC_getAdditionalAction("X", ano); if (Aact) { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - auto *jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setX_act(UnicodeParsedString(jsa->getScript())); ite->annotation().setAAact(true); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } Aact = SC_getAdditionalAction("Fo", ano); if (Aact) { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - auto *jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setFo_act(UnicodeParsedString(jsa->getScript())); ite->annotation().setAAact(true); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } Aact = SC_getAdditionalAction("Bl", ano); if (Aact) { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - auto *jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setBl_act(UnicodeParsedString(jsa->getScript())); ite->annotation().setAAact(true); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } Aact = SC_getAdditionalAction("C", ano); if (Aact) { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - auto *jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setC_act(UnicodeParsedString(jsa->getScript())); ite->annotation().setAAact(true); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } Aact = SC_getAdditionalAction("F", ano); if (Aact) { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - autoz*jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setF_act(UnicodeParsedString(jsa->getScript())); @@ -1279,22 +1215,14 @@ void SlaOutputDev::handleActions(PageIte ite->annotation().setFormat(5); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } Aact = SC_getAdditionalAction("K", ano); if (Aact) { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - auto *jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setK_act(UnicodeParsedString(jsa->getScript())); @@ -1302,33 +1230,21 @@ void SlaOutputDev::handleActions(PageIte ite->annotation().setFormat(5); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } Aact = SC_getAdditionalAction("V", ano); if (Aact) { if (Aact->getKind() == actionJavaScript) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) - auto *jsa = (LinkJavaScript*) Aact.get(); -#else - auto *jsa = (LinkJavaScript*) Aact; -#endif + const auto *jsa = (LinkJavaScript*) Aact.get(); if (jsa->isOk()) { ite->annotation().setV_act(UnicodeParsedString(jsa->getScript())); ite->annotation().setAAact(true); } } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) Aact.reset(); -#else - Aact = nullptr; -#endif } } @@ -1338,11 +1254,7 @@ void SlaOutputDev::startDoc(PDFDoc *doc, m_catalog = catA; m_pdfDoc = doc; m_updateGUICounter = 0; -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 84, 0) m_fontEngine = new SplashFontEngine(true, false, false, true); -#else - m_fontEngine = new SplashFontEngine(globalParams->getEnableFreeType(), false, false, true); -#endif } void SlaOutputDev::startPage(int pageNum, GfxState *, XRef *) @@ -1459,18 +1371,18 @@ void SlaOutputDev::restoreState(GfxState } } } - + m_graphicStack.restore(); } -void SlaOutputDev::beginTransparencyGroup(GfxState *state, POPPLER_CONST_070 double *bbox, GfxColorSpace * /*blendingColorSpace*/, GBool isolated, GBool knockout, GBool forSoftMask) +void SlaOutputDev::beginTransparencyGroup(GfxState *state, const double *bbox, GfxColorSpace * /*blendingColorSpace*/, bool isolated, bool knockout, bool forSoftMask) { // qDebug() << "SlaOutputDev::beginTransparencyGroup isolated:" << isolated << "knockout:" << knockout << "forSoftMask:" << forSoftMask; pushGroup("", forSoftMask); m_groupStack.top().isolated = isolated; } -void SlaOutputDev::paintTransparencyGroup(GfxState *state, POPPLER_CONST_070 double *bbox) +void SlaOutputDev::paintTransparencyGroup(GfxState *state, const double *bbox) { // qDebug() << "SlaOutputDev::paintTransparencyGroup"; if (m_groupStack.count() != 0) @@ -1569,7 +1481,7 @@ void SlaOutputDev::endTransparencyGroup( m_tmpSel->clear(); } -void SlaOutputDev::setSoftMask(GfxState * /*state*/, POPPLER_CONST_070 double * bbox, GBool alpha, Function *transferFunc, GfxColor * /*backdropColor*/) +void SlaOutputDev::setSoftMask(GfxState * /*state*/, const double * bbox, bool alpha, Function *transferFunc, GfxColor * /*backdropColor*/) { if (m_groupStack.count() <= 0) return; @@ -1657,7 +1569,7 @@ void SlaOutputDev::stroke(GfxState *stat auto& graphicState = m_graphicStack.top(); graphicState.strokeColor = getColor(state->getStrokeColorSpace(), state->getStrokeColor(), &graphicState.strokeShade); - + QString output = convertPath(state->getPath()); if ((m_Elements->count() != 0) && (output == m_coords)) // Path is the same as in last fill { @@ -1814,7 +1726,7 @@ void SlaOutputDev::createFillItem(GfxSta } } -GBool SlaOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax) +bool SlaOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax) { // qDebug() << "SlaOutputDev::axialShadedFill"; double GrStartX; @@ -1822,7 +1734,7 @@ GBool SlaOutputDev::axialShadedFill(GfxS double GrEndX; double GrEndY; int shade = 100; - POPPLER_CONST_070 Function *func = shading->getFunc(0); + const Function *func = shading->getFunc(0); VGradient fillGradient(VGradient::linear); fillGradient.clearStops(); GfxColorSpace *color_space = shading->getColorSpace(); @@ -1832,7 +1744,7 @@ GBool SlaOutputDev::axialShadedFill(GfxS if (func->getType() == 3) #endif { - auto *stitchingFunc = (StitchingFunction*) func; + const auto *stitchingFunc = (const StitchingFunction*) func; const double *bounds = stitchingFunc->getBounds(); int num_funcs = stitchingFunc->getNumFuncs(); double domain_min = stitchingFunc->getDomainMin(0); @@ -1953,10 +1865,10 @@ GBool SlaOutputDev::axialShadedFill(GfxS m_groupStack.top().Items.append(ite); applyMask(ite); } - return gTrue; + return true; } -GBool SlaOutputDev::radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax) +bool SlaOutputDev::radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax) { // qDebug() << "SlaOutputDev::radialShadedFill"; double GrStartX; @@ -1964,7 +1876,7 @@ GBool SlaOutputDev::radialShadedFill(Gfx double GrEndX; double GrEndY; int shade = 100; - POPPLER_CONST_070 Function *func = shading->getFunc(0); + const Function *func = shading->getFunc(0); VGradient fillGradient(VGradient::linear); fillGradient.clearStops(); GfxColorSpace *color_space = shading->getColorSpace(); @@ -1974,7 +1886,7 @@ GBool SlaOutputDev::radialShadedFill(Gfx if (func->getType() == 3) #endif { - auto *stitchingFunc = (StitchingFunction*) func; + const auto *stitchingFunc = (const StitchingFunction*) func; const double *bounds = stitchingFunc->getBounds(); int num_funcs = stitchingFunc->getNumFuncs(); double domain_min = stitchingFunc->getDomainMin(0); @@ -2085,10 +1997,10 @@ GBool SlaOutputDev::radialShadedFill(Gfx m_groupStack.top().Items.append(ite); applyMask(ite); } - return gTrue; + return true; } -GBool SlaOutputDev::gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) +bool SlaOutputDev::gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) { // qDebug() << "SlaOutputDev::gouraudTriangleShadedFill"; double xCoor = m_doc->currentPage()->xOffset(); @@ -2166,10 +2078,10 @@ GBool SlaOutputDev::gouraudTriangleShade ite->meshGradientPatches.append(patchM); } ite->GrType = 12; - return gTrue; + return true; } -GBool SlaOutputDev::patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) +bool SlaOutputDev::patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) { // qDebug() << "SlaOutputDev::patchMeshShadedFill"; double xCoor = m_doc->currentPage()->xOffset(); @@ -2316,21 +2228,15 @@ GBool SlaOutputDev::patchMeshShadedFill( ite->meshGradientPatches.append(patchM); } ite->GrType = 12; - return gTrue; + return true; } -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0) bool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx * /*gfx*/, Catalog *cat, GfxTilingPattern *tPat, const double *mat, int x0, int y0, int x1, int y1, double xStep, double yStep) -#else -GBool SlaOutputDev::tilingPatternFill(GfxState *state, Gfx * /*gfx*/, Catalog *cat, Object *str, POPPLER_CONST_070 double *pmat, int /*paintType*/, int /*tilingType*/, Dict *resDict, POPPLER_CONST_070 double *mat, POPPLER_CONST_070 double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep) -#endif { // qDebug() << "SlaOutputDev::tilingPatternFill"; -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0) const double *bbox = tPat->getBBox(); const double *pmat = tPat->getMatrix(); Dict *resDict = tPat->getResDict(); -#endif PDFRectangle box; Gfx *gfx; @@ -2342,7 +2248,7 @@ GBool SlaOutputDev::tilingPatternFill(Gf width = bbox[2] - bbox[0]; height = bbox[3] - bbox[1]; if (xStep != width || yStep != height) - return gFalse; + return false; box.x1 = bbox[0]; box.y1 = bbox[1]; box.x2 = bbox[2]; @@ -2358,17 +2264,12 @@ GBool SlaOutputDev::tilingPatternFill(Gf // Unset the clip path as it is unrelated to the pattern's coordinate space. QPainterPath savedClip = m_graphicStack.top().clipPath; m_graphicStack.top().clipPath = QPainterPath(); -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0) gfx->display(tPat->getContentStream()); -#else - gfx->display(str); -#endif m_graphicStack.top().clipPath = savedClip; m_inPattern--; - gElements = m_groupStack.pop(); m_doc->m_Selection->clear(); -// double pwidth = 0; -// double pheight = 0; + + gElements = m_groupStack.pop(); if (gElements.Items.count() > 0) { for (int dre = 0; dre < gElements.Items.count(); ++dre) @@ -2393,8 +2294,6 @@ GBool SlaOutputDev::tilingPatternFill(Gf m_doc->DoDrawing = false; pat.width = ite->width(); pat.height = ite->height(); - // pwidth = ite->width(); - // pheight = ite->height(); ite->gXpos = 0; ite->gYpos = 0; ite->setXYPos(ite->gXpos, ite->gYpos, true); @@ -2457,13 +2356,13 @@ GBool SlaOutputDev::tilingPatternFill(Gf applyMask(ite); } delete gfx; - return gTrue; + return true; } -void SlaOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool interpolate, GBool inlineImg) +void SlaOutputDev::drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg) { // qDebug() << "Draw Image Mask"; - auto imgStr = std::make_shared(str, width, 1, 1); + auto imgStr = std::make_unique(str, width, 1, 1); imgStr->reset(); #ifdef WORDS_BIGENDIAN QImage image(width, height, QImage::Format_Mono); @@ -2476,9 +2375,9 @@ void SlaOutputDev::drawImageMask(GfxStat int invertBit = invert ? 1 : 0; unsigned char* buffer = image.bits(); unsigned char* dest = nullptr; - int rowStride = image.bytesPerLine(); + qsizetype rowStride = image.bytesPerLine(); int i, bit; - Guchar* pix; + unsigned char* pix; for (int y = 0; y < height; y++) { @@ -2533,18 +2432,18 @@ void SlaOutputDev::drawImageMask(GfxStat imgStr->close(); } -void SlaOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, Stream *maskStr, int maskWidth, int maskHeight, - GfxImageColorMap *maskColorMap, GBool maskInterpolate) +void SlaOutputDev::drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, + GfxImageColorMap *maskColorMap, bool maskInterpolate) { // qDebug() << "SlaOutputDev::drawSoftMaskedImage Masked Image Components" << colorMap->getNumPixelComps(); - auto imgStr = std::make_shared(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); + auto imgStr = std::make_unique(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); imgStr->reset(); unsigned int *dest = nullptr; unsigned char * buffer = new unsigned char[width * height * 4]; for (int y = 0; y < height; y++) { dest = (unsigned int *)(buffer + y * 4 * width); - Guchar * pix = imgStr->getLine(); + unsigned char * pix = imgStr->getLine(); colorMap->getRGBLine(pix, dest, width); } @@ -2555,15 +2454,15 @@ void SlaOutputDev::drawSoftMaskedImage(G return; } - auto mskStr = std::make_shared(maskStr, maskWidth, maskColorMap->getNumPixelComps(), maskColorMap->getBits()); + auto mskStr = std::make_unique(maskStr, maskWidth, maskColorMap->getNumPixelComps(), maskColorMap->getBits()); mskStr->reset(); - Guchar *mdest = nullptr; + unsigned char *mdest = nullptr; unsigned char * mbuffer = new unsigned char[maskWidth * maskHeight]; memset(mbuffer, 0, maskWidth * maskHeight); for (int y = 0; y < maskHeight; y++) { - mdest = (Guchar *)(mbuffer + y * maskWidth); - Guchar * pix = mskStr->getLine(); + mdest = mbuffer + y * maskWidth; + unsigned char * pix = mskStr->getLine(); maskColorMap->getGrayLine(pix, mdest, maskWidth); } if ((maskWidth != width) || (maskHeight != height)) @@ -2571,7 +2470,7 @@ void SlaOutputDev::drawSoftMaskedImage(G QImage res = image.convertToFormat(QImage::Format_ARGB32); int matteRc, matteGc, matteBc; - POPPLER_CONST_070 GfxColor *matteColor = maskColorMap->getMatteColor(); + const GfxColor *matteColor = maskColorMap->getMatteColor(); if (matteColor != nullptr) { GfxRGB matteRgb; @@ -2610,17 +2509,17 @@ void SlaOutputDev::drawSoftMaskedImage(G delete[] mbuffer; } -void SlaOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GBool maskInvert, GBool maskInterpolate) +void SlaOutputDev::drawMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, bool maskInvert, bool maskInterpolate) { // qDebug() << "SlaOutputDev::drawMaskedImage"; - auto imgStr = std::make_shared(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); + auto imgStr = std::make_unique(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); imgStr->reset(); unsigned int *dest = nullptr; unsigned char * buffer = new unsigned char[width * height * 4]; for (int y = 0; y < height; y++) { dest = (unsigned int *)(buffer + y * 4 * width); - Guchar * pix = imgStr->getLine(); + unsigned char * pix = imgStr->getLine(); colorMap->getRGBLine(pix, dest, width); } @@ -2631,16 +2530,16 @@ void SlaOutputDev::drawMaskedImage(GfxSt return; } - auto mskStr = std::make_shared(maskStr, maskWidth, 1, 1); + auto mskStr = std::make_unique(maskStr, maskWidth, 1, 1); mskStr->reset(); - Guchar *mdest = nullptr; + unsigned char *mdest = nullptr; int invert_bit = maskInvert ? 1 : 0; unsigned char * mbuffer = new unsigned char[maskWidth * maskHeight]; memset(mbuffer, 0, maskWidth * maskHeight); for (int y = 0; y < maskHeight; y++) { - mdest = (Guchar *)(mbuffer + y * maskWidth); - Guchar * pix = mskStr->getLine(); + mdest = mbuffer + y * maskWidth; + unsigned char * pix = mskStr->getLine(); for (int x = 0; x < maskWidth; x++) { if (pix[x] ^ invert_bit) @@ -2675,9 +2574,9 @@ void SlaOutputDev::drawMaskedImage(GfxSt delete[] mbuffer; } -void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, POPPLER_CONST_082 int* maskColors, GBool inlineImg) +void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int* maskColors, bool inlineImg) { - auto imgStr = std::make_shared(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); + auto imgStr = std::make_unique(str, width, colorMap->getNumPixelComps(), colorMap->getBits()); imgStr->reset(); QImage image(width, height, QImage::Format_ARGB32); @@ -2689,7 +2588,7 @@ void SlaOutputDev::drawImage(GfxState *s for (int y = 0; y < height; y++) { QRgb *s = (QRgb*)(image.scanLine(y)); - Guchar *pix = imgStr->getLine(); + unsigned char *pix = imgStr->getLine(); for (int x = 0; x < width; x++) { GfxRGB rgb; @@ -2716,7 +2615,7 @@ void SlaOutputDev::drawImage(GfxState *s for (int y = 0; y < height; y++) { QRgb *s = (QRgb*)(image.scanLine(y)); - Guchar *pix = imgStr->getLine(); + unsigned char *pix = imgStr->getLine(); for (int x = 0; x < width; x++) { if (colorMap->getNumPixelComps() == 4) @@ -2899,7 +2798,7 @@ void SlaOutputDev::createImageFrame(QIma } } -void SlaOutputDev::beginMarkedContent(POPPLER_CONST char *name, Object *dictRef) +void SlaOutputDev::beginMarkedContent(const char *name, Object *dictRef) { mContent mSte; mSte.name = QString(name); @@ -2925,14 +2824,14 @@ void SlaOutputDev::beginMarkedContent(PO Object dictObj = dictRef->fetch(m_xref); if (!dictObj.isDict()) return; - Dict* dict = dictObj.getDict(); + const Dict* dict = dictObj.getDict(); Object dictType = dict->lookup("Type"); if (dictType.isName("OCG")) { oc = contentConfig->findOcgByRef(dictRef->getRef()); if (oc) { - // qDebug() << "Begin OCG Content with Name " << UnicodeParsedString(oc->getName()); +// qDebug() << "Begin OCG Content with Name " << UnicodeParsedString(oc->getName()); m_doc->setActiveLayer(UnicodeParsedString(oc->getName())); mSte.ocgName = UnicodeParsedString(oc->getName()); } @@ -2942,7 +2841,7 @@ void SlaOutputDev::beginMarkedContent(PO m_mcStack.push(mSte); } -void SlaOutputDev::beginMarkedContent(POPPLER_CONST char *name, Dict *properties) +void SlaOutputDev::beginMarkedContent(const char *name, Dict *properties) { // qDebug() << "Begin Marked Content with Name " << QString(name); QString nam(name); @@ -2959,7 +2858,7 @@ void SlaOutputDev::beginMarkedContent(PO QString lName = QString("Layer_%1").arg(m_layerNum + 1); Object obj = properties->lookup("Title"); if (obj.isString()) - lName = QString(obj.getString()->getCString()); + lName = QString(obj.getString()->c_str()); for (const auto& layer : m_doc->Layers) { if (layer.Name == lName) @@ -3019,12 +2918,12 @@ void SlaOutputDev::endMarkedContent(GfxS } } -void SlaOutputDev::markPoint(POPPLER_CONST char *name) +void SlaOutputDev::markPoint(const char *name) { // qDebug() << "Begin Marked Point with Name " << QString(name); } -void SlaOutputDev::markPoint(POPPLER_CONST char *name, Dict *properties) +void SlaOutputDev::markPoint(const char *name, Dict *properties) { // qDebug() << "Begin Marked Point with Name " << QString(name) << "and Properties"; beginMarkedContent(name, properties); @@ -3037,19 +2936,18 @@ void SlaOutputDev::updateFont(GfxState * std::string fileName; std::unique_ptr ff; std::optional> tmpBuf; -#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) +#else std::optional fontLoc; const GooString * fileName = nullptr; std::unique_ptr ff; char* tmpBuf = nullptr; -#else - GfxFontLoc * fontLoc = nullptr; - GooString * fileName = nullptr; - FoFiTrueType * ff = nullptr; - char* tmpBuf = nullptr; #endif GfxFontType fontType; +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + std::unique_ptr id; +#else SlaOutFontFileID *id; +#endif SplashFontFile *fontFile; SplashFontSrc *fontsrc = nullptr; Object refObj, strObj; @@ -3079,15 +2977,21 @@ void SlaOutputDev::updateFont(GfxState * goto err1; // check the font file cache +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + id = std::make_unique(gfxFont->getID()); + if ((fontFile = m_fontEngine->getFontFile(*id))) + id.reset(); +#else id = new SlaOutFontFileID(gfxFont->getID()); if ((fontFile = m_fontEngine->getFontFile(id))) delete id; +#endif else { fontLoc = gfxFont->locateFont(m_xref ? m_xref : m_pdfDoc->getXRef(), nullptr); if (!fontLoc) { - error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + error(errSyntaxError, -1, "Couldn't find a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); goto err2; } @@ -3111,10 +3015,8 @@ void SlaOutputDev::updateFont(GfxState * { // gfxFontLocExternal #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) fileName = fontLoc->path; -#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) - fileName = fontLoc->pathAsGooString(); #else - fileName = fontLoc->path; + fileName = fontLoc->pathAsGooString(); #endif fontType = fontLoc->fontType; } @@ -3127,56 +3029,80 @@ void SlaOutputDev::updateFont(GfxState * fontsrc->setBuf(std::move(tmpBuf.value())); #else if (fileName) - fontsrc->setFile(fileName, gFalse); + fontsrc->setFile(fileName, false); else - fontsrc->setBuf(tmpBuf, tmpBufLen, gTrue); + fontsrc->setBuf(tmpBuf, tmpBufLen, true); #endif // load the font file switch (fontType) { case fontType1: +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!(fontFile = m_fontEngine->loadType1Font(std::move(id), fontsrc, (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#else if (!(fontFile = m_fontEngine->loadType1Font(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding()))) { - error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); goto err2; } +#endif break; case fontType1C: +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!(fontFile = m_fontEngine->loadType1CFont(std::move(id), fontsrc, (const char**) ((Gfx8BitFont*) gfxFont)->getEncoding(), fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#else if (!(fontFile = m_fontEngine->loadType1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding()))) { - error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); goto err2; } +#endif break; case fontType1COT: +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(std::move(id), fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding(), fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#else if (!(fontFile = m_fontEngine->loadOpenTypeT1CFont(id, fontsrc, (const char **)((Gfx8BitFont *) gfxFont)->getEncoding()))) { - error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); goto err2; } +#endif break; case fontTrueType: case fontTrueTypeOT: -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!fileName.empty()) + ff = FoFiTrueType::load(fileName.c_str(), fontLoc->fontNum); + else + ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size(), fontLoc->fontNum); +#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) if (!fileName.empty()) ff = FoFiTrueType::load(fileName.c_str()); else ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size()); #else if (fileName) - ff = FoFiTrueType::load(fileName->getCString()); + ff = FoFiTrueType::load(fileName->c_str()); else ff = FoFiTrueType::make(tmpBuf, tmpBufLen); #endif if (ff) { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) codeToGID = ((Gfx8BitFont*) gfxFont)->getCodeToGIDMap(ff.get()); ff.reset(); -#else - codeToGID = ((Gfx8BitFont *)gfxFont)->getCodeToGIDMap(ff); - delete ff; -#endif n = 256; } else @@ -3184,19 +3110,35 @@ void SlaOutputDev::updateFont(GfxState * codeToGID = nullptr; n = 0; } +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#else if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n))) { - error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); goto err2; } +#endif break; case fontCIDType0: case fontCIDType0C: +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!(fontFile = m_fontEngine->loadCIDFont(std::move(id), fontsrc, fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#else if (!(fontFile = m_fontEngine->loadCIDFont(id, fontsrc))) { - error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); goto err2; } +#endif break; case fontCIDType0COT: if (((GfxCIDFont *) gfxFont)->getCIDToGID()) @@ -3210,12 +3152,21 @@ void SlaOutputDev::updateFont(GfxState * codeToGID = nullptr; n = 0; } +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", + gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#else if (!(fontFile = m_fontEngine->loadOpenTypeCFFFont(id, fontsrc, codeToGID, n))) { error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", - gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); goto err2; } +#endif break; case fontCIDType2: case fontCIDType2OT: @@ -3232,32 +3183,40 @@ void SlaOutputDev::updateFont(GfxState * } else { -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!fileName.empty()) + ff = FoFiTrueType::load(fileName.c_str(), fontLoc->fontNum); + else + ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size(), fontLoc->fontNum); +#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) if (!fileName.empty()) ff = FoFiTrueType::load(fileName.c_str()); else ff = FoFiTrueType::make(fontsrc->buf.data(), fontsrc->buf.size()); #else if (fileName) - ff = FoFiTrueType::load(fileName->getCString()); + ff = FoFiTrueType::load(fileName->c_str()); else ff = FoFiTrueType::make(tmpBuf, tmpBufLen); #endif if (! ff) goto err2; -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0) codeToGID = ((GfxCIDFont*) gfxFont)->getCodeToGIDMap(ff.get(), &n); ff.reset(); -#else - codeToGID = ((GfxCIDFont *)gfxFont)->getCodeToGIDMap(ff, &n); - delete ff; -#endif } +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + if (!(fontFile = m_fontEngine->loadTrueTypeFont(std::move(id), fontsrc, codeToGID, n, fontLoc->fontNum))) + { + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); + goto err2; + } +#else if (!(fontFile = m_fontEngine->loadTrueTypeFont(id, fontsrc, codeToGID, n, faceIndex))) { - error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->getCString() : "(unnamed)"); + error(errSyntaxError, -1, "Couldn't create a font for '{0:s}'", gfxFont->getName() ? gfxFont->getName()->c_str() : "(unnamed)"); goto err2; } +#endif break; default: // this shouldn't happen @@ -3284,17 +3243,15 @@ void SlaOutputDev::updateFont(GfxState * mat[3] = -m22; m_font = m_fontEngine->getFont(fontFile, mat, matrix); -#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0) - delete fontLoc; -#endif if (fontsrc && !fontsrc->isFile) fontsrc->unref(); return; err2: +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + id.reset(); +#else delete id; -#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(22, 2, 0) - delete fontLoc; #endif err1: @@ -3302,7 +3259,7 @@ err1: fontsrc->unref(); } -void SlaOutputDev::drawChar(GfxState* state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, POPPLER_CONST_082 Unicode* u, int uLen) +void SlaOutputDev::drawChar(GfxState* state, double x, double y, double dx, double dy, double originX, double originY, CharCode code, int nBytes, const Unicode* u, int uLen) { // qDebug() << "SlaOutputDev::drawChar code:" << code << "bytes:" << nBytes << "Unicode:" << u << "ulen:" << uLen << "render:" << state->getRender(); double x1, y1, x2, y2; @@ -3334,7 +3291,7 @@ void SlaOutputDev::drawChar(GfxState* st qPath.setFillRule(Qt::WindingFill); for (int i = 0; i < fontPath->getLength(); ++i) { - Guchar f; + unsigned char f; fontPath->getPoint(i, &x1, &y1, &f); if (f & splashPathFirst) qPath.moveTo(x1,y1); @@ -3396,25 +3353,25 @@ void SlaOutputDev::drawChar(GfxState* st } -GBool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, POPPLER_CONST_082 Unicode *u, int uLen) +bool SlaOutputDev::beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, const Unicode *u, int uLen) { // qDebug() << "beginType3Char"; #if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 4, 0) GfxFont *gfxFont; if (!(gfxFont = state->getFont().get())) - return gTrue; + return true; #else GfxFont* gfxFont; if (!(gfxFont = state->getFont())) - return gTrue; + return true; #endif if (gfxFont->getType() != fontType3) - return gTrue; + return true; F3Entry f3e; f3e.colored = false; m_F3Stack.push(f3e); pushGroup(); - return gFalse; + return false; } void SlaOutputDev::endType3Char(GfxState *state) @@ -3514,7 +3471,7 @@ void SlaOutputDev::endTextObject(GfxStat } } -QString SlaOutputDev::getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade) +QString SlaOutputDev::getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade) { QString fNam; QString namPrefix = "FromPDF"; @@ -3561,7 +3518,7 @@ QString SlaOutputDev::getColor(GfxColorS { auto* sepColorSpace = (GfxSeparationColorSpace*) color_space; GfxColorSpace* altColorSpace = sepColorSpace->getAlt(); - QString name(sepColorSpace->getName()->getCString()); + QString name(sepColorSpace->getName()->c_str()); bool isRegistrationColor = (name == "All"); if (isRegistrationColor) { @@ -3661,7 +3618,7 @@ QString SlaOutputDev::getAnnotationColor return fNam; } -QString SlaOutputDev::convertPath(POPPLER_CONST_083 GfxPath *path) +QString SlaOutputDev::convertPath(const GfxPath *path) { // qDebug() << "SlaOutputDev::convertPath"; if (! path) @@ -3672,7 +3629,7 @@ QString SlaOutputDev::convertPath(POPPLE for (int i = 0; i < path->getNumSubpaths(); ++i) { - POPPLER_CONST_083 GfxSubpath * subpath = path->getSubpath(i); + const GfxSubpath * subpath = path->getSubpath(i); if (subpath->getNumPoints() > 0) { output += QString("M %1 %2").arg(subpath->getX(0)).arg(subpath->getY(0)); @@ -3736,7 +3693,7 @@ void SlaOutputDev::getPenState(GfxState pattern[i] = dashPattern[i]; m_dashValues = pattern; #else - double *dashPattern; + double* dashPattern; int dashLength; state->getLineDash(&dashPattern, &dashLength, &m_dashOffset); QVector pattern(dashLength); @@ -3842,7 +3799,7 @@ void SlaOutputDev::applyMask(PageItem *i } } -void SlaOutputDev::pushGroup(const QString& maskName, GBool forSoftMask, GBool alpha, bool inverted) +void SlaOutputDev::pushGroup(const QString& maskName, bool forSoftMask, bool alpha, bool inverted) { groupEntry gElements; gElements.forSoftMask = forSoftMask; @@ -3852,23 +3809,23 @@ void SlaOutputDev::pushGroup(const QStri m_groupStack.push(gElements); } -QString SlaOutputDev::UnicodeParsedString(POPPLER_CONST GooString *s1) const +QString SlaOutputDev::UnicodeParsedString(const GooString *s1) const { if ( !s1 || s1->getLength() == 0 ) return QString(); - GBool isUnicode; + bool isUnicode; int i; Unicode u; QString result; if ((s1->getChar(0) & 0xff) == 0xfe && (s1->getLength() > 1 && (s1->getChar(1) & 0xff) == 0xff)) { - isUnicode = gTrue; + isUnicode = true; i = 2; result.reserve((s1->getLength() - 2) / 2); } else { - isUnicode = gFalse; + isUnicode = false; i = 0; result.reserve(s1->getLength()); } @@ -3893,19 +3850,19 @@ QString SlaOutputDev::UnicodeParsedStrin { if (s1.length() == 0) return QString(); - GBool isUnicode; + bool isUnicode; size_t i; Unicode u; QString result; if ((s1.at(0) & 0xff) == 0xfe && (s1.length() > 1 && (s1.at(1) & 0xff) == 0xff)) { - isUnicode = gTrue; + isUnicode = true; i = 2; result.reserve((s1.length() - 2) / 2); } else { - isUnicode = gFalse; + isUnicode = false; i = 0; result.reserve(s1.length()); } Index: scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.h =================================================================== --- scribus-1.6.2.orig/scribus/plugins/import/pdf/slaoutput.h +++ scribus-1.6.2/scribus/plugins/import/pdf/slaoutput.h @@ -30,9 +30,6 @@ for which a new license (GPL+exception) #include "selection.h" #include "vgradient.h" -#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 73, 0) -#include -#endif #include #include #include @@ -45,8 +42,6 @@ for which a new license (GPL+exception) #include #include #include -#include -#include #include #include #include @@ -56,9 +51,11 @@ for which a new license (GPL+exception) #include //------------------------------------------------------------------------ -// LinkSubmitData +// LinkSubmitForm //------------------------------------------------------------------------ +#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(24, 10, 0) + class LinkSubmitForm: public LinkAction { public: @@ -68,17 +65,19 @@ public: virtual ~LinkSubmitForm(); // Was the LinkImportData created successfully? - GBool isOk() POPPLER_CONST override { return fileName != nullptr; } + bool isOk() const override { return m_url != nullptr; } // Accessors. - LinkActionKind getKind() POPPLER_CONST override { return actionUnknown; } - GooString *getFileName() { return fileName; } + LinkActionKind getKind() const override { return actionUnknown; } + GooString *getUrl() { return m_url; } int getFlags() { return m_flags; } private: - GooString *fileName {nullptr}; // file name + GooString *m_url {nullptr}; // URL int m_flags {0}; }; +#endif + //------------------------------------------------------------------------ // LinkImportData //------------------------------------------------------------------------ @@ -92,9 +91,9 @@ public: virtual ~LinkImportData(); // Was the LinkImportData created successfully? - GBool isOk() POPPLER_CONST override { return fileName != nullptr; } + bool isOk() const override { return fileName != nullptr; } // Accessors. - LinkActionKind getKind() POPPLER_CONST override { return actionUnknown; } + LinkActionKind getKind() const override { return actionUnknown; } GooString *getFileName() { return fileName; } private: @@ -111,10 +110,17 @@ public: SlaOutFontFileID(const Ref *rA) { r = *rA; } ~SlaOutFontFileID() {} - GBool matches(SplashFontFileID *id) override +#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 11, 0) + bool matches(const SplashFontFileID& id) const override + { + return ((const SlaOutFontFileID&) id).r.num == r.num && ((const SlaOutFontFileID&) id).r.gen == r.gen; + } +#else + bool matches(SplashFontFileID *id) override { return ((SlaOutFontFileID*) id)->r.num == r.num && ((SlaOutFontFileID *) id)->r.gen == r.gen; } +#endif private: Ref r; @@ -127,19 +133,19 @@ public: AnoOutputDev(ScribusDoc* doc, QStringList *importedColors); virtual ~AnoOutputDev(); - GBool isOk() { return gTrue; } - GBool upsideDown() override { return gTrue; } - GBool useDrawChar() override { return gFalse; } - GBool interpretType3Chars() override { return gFalse; } - GBool useTilingPatternFill() override { return gFalse; } - GBool useShadedFills(int type) override { return gFalse; } - GBool useFillColorStop() override { return gFalse; } - GBool useDrawForm() override { return gFalse; } + bool isOk() { return true; } + bool upsideDown() override { return true; } + bool useDrawChar() override { return false; } + bool interpretType3Chars() override { return false; } + bool useTilingPatternFill() override { return false; } + bool useShadedFills(int type) override { return false; } + bool useFillColorStop() override { return false; } + bool useDrawForm() override { return false; } void stroke(GfxState *state) override; void eoFill(GfxState *state) override; void fill(GfxState *state) override; - void drawString(GfxState *state, POPPLER_CONST GooString *s) override; + void drawString(GfxState *state, const GooString *s) override; QString currColorText; QString currColorFill; @@ -149,7 +155,7 @@ public: GooString *itemText {nullptr}; private: - QString getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade); + QString getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade); ScribusDoc* m_doc; QStringList *m_importedColors; }; @@ -163,12 +169,8 @@ public: virtual ~SlaOutputDev(); LinkAction* SC_getAction(AnnotWidget *ano); -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 86, 0) std::unique_ptr SC_getAdditionalAction(const char *key, AnnotWidget *ano); -#else - LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano); -#endif - static GBool annotations_callback(Annot *annota, void *user_data); + static bool annotations_callback(Annot *annota, void *user_data); bool handleTextAnnot(Annot* annota, double xCoor, double yCoor, double width, double height); bool handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double width, double height); bool handleWidgetAnnot(Annot* annota, double xCoor, double yCoor, double width, double height); @@ -176,16 +178,16 @@ public: void handleActions(PageItem* ite, AnnotWidget *ano); void startDoc(PDFDoc *doc, XRef *xrefA, Catalog *catA); - GBool isOk() { return gTrue; } - GBool upsideDown() override { return gTrue; } - GBool useDrawChar() override { return gTrue; } - GBool interpretType3Chars() override { return gTrue; } - GBool useTilingPatternFill() override { return gTrue; } - GBool useShadedFills(int type) override { return type <= 7; } - GBool useFillColorStop() override { return gTrue; } - GBool useDrawForm() override { return gFalse; } + bool isOk() { return true; } + bool upsideDown() override { return true; } + bool useDrawChar() override { return true; } + bool interpretType3Chars() override { return true; } + bool useTilingPatternFill() override { return true; } + bool useShadedFills(int type) override { return type <= 7; } + bool useFillColorStop() override { return true; } + bool useDrawForm() override { return false; } -// virtual GBool needClipToCropBox() { return gTrue; } +// virtual bool needClipToCropBox() { return true; } void startPage(int pageNum, GfxState *, XRef *) override; void endPage() override; @@ -197,35 +199,31 @@ public: void stroke(GfxState *state) override; void fill(GfxState *state) override; void eoFill(GfxState *state) override; -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 3, 0) bool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, GfxTilingPattern *tPat, const double *mat, int x0, int y0, int x1, int y1, double xStep, double yStep) override; -#else - GBool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, Object *str, POPPLER_CONST_070 double *pmat, int paintType, int tilingType, Dict *resDict, POPPLER_CONST_070 double *mat, POPPLER_CONST_070 double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep) override; -#endif - GBool functionShadedFill(GfxState * /*state*/, GfxFunctionShading * /*shading*/) override { qDebug() << "Function Shaded Fill"; return gFalse; } - GBool axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax) override; - GBool axialShadedSupportExtend(GfxState *state, GfxAxialShading *shading) override { return (shading->getExtend0() == shading->getExtend1()); } - GBool radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax) override; - GBool radialShadedSupportExtend(GfxState *state, GfxRadialShading *shading) override { return (shading->getExtend0() == shading->getExtend1()); } - GBool gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) override; - GBool patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) override; + bool functionShadedFill(GfxState * /*state*/, GfxFunctionShading * /*shading*/) override { qDebug() << "Function Shaded Fill"; return false; } + bool axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax) override; + bool axialShadedSupportExtend(GfxState *state, GfxAxialShading *shading) override { return (shading->getExtend0() == shading->getExtend1()); } + bool radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax) override; + bool radialShadedSupportExtend(GfxState *state, GfxRadialShading *shading) override { return (shading->getExtend0() == shading->getExtend1()); } + bool gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) override; + bool patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) override; //----- path clipping void clip(GfxState *state) override; void eoClip(GfxState *state) override; void clipToStrokePath(GfxState * /*state*/) override { qDebug() << "Clip to StrokePath"; } - virtual GBool deviceHasTextClip(GfxState *state) { return gFalse; } + virtual bool deviceHasTextClip(GfxState *state) { return false; } // If current colorspace is pattern, // does this device support text in pattern colorspace? - virtual GBool supportTextCSPattern(GfxState *state) + virtual bool supportTextCSPattern(GfxState *state) { return state->getFillColorSpace()->getMode() == csPattern; } // If current colorspace is pattern, // need this device special handling for masks in pattern colorspace? - virtual GBool fillMaskCSPattern(GfxState * state) + virtual bool fillMaskCSPattern(GfxState * state) { return state->getFillColorSpace()->getMode() == csPattern; } @@ -233,37 +231,37 @@ public: virtual void endMaskClip(GfxState *state) { qDebug() << "End Mask Clip"; } //----- grouping operators - void beginMarkedContent(POPPLER_CONST char *name, Dict *properties) override; - virtual void beginMarkedContent(POPPLER_CONST char *name, Object *dictRef); + void beginMarkedContent(const char *name, Dict *properties) override; + virtual void beginMarkedContent(const char *name, Object *dictRef); void endMarkedContent(GfxState *state) override; - void markPoint(POPPLER_CONST char *name) override; - void markPoint(POPPLER_CONST char *name, Dict *properties) override; + void markPoint(const char *name) override; + void markPoint(const char *name, Dict *properties) override; //----- image drawing - void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool interpolate, GBool inlineImg) override; - void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, POPPLER_CONST_082 int *maskColors, GBool inlineImg) override; + void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg) override; + void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int *maskColors, bool inlineImg) override; void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool interpolate, + bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GfxImageColorMap *maskColorMap, - GBool maskInterpolate) override; + bool maskInterpolate) override; void drawMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, - GBool interpolate, + bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, - GBool maskInvert, GBool maskInterpolate) override; // { qDebug() << "Draw Masked Image"; } + bool maskInvert, bool maskInterpolate) override; // { qDebug() << "Draw Masked Image"; } //----- transparency groups and soft masks - void beginTransparencyGroup(GfxState *state, POPPLER_CONST_070 double *bbox, GfxColorSpace * /*blendingColorSpace*/, GBool /*isolated*/, GBool /*knockout*/, GBool /*forSoftMask*/) override; - void paintTransparencyGroup(GfxState *state, POPPLER_CONST_070 double *bbox) override; + void beginTransparencyGroup(GfxState *state, const double *bbox, GfxColorSpace * /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/) override; + void paintTransparencyGroup(GfxState *state, const double *bbox) override; void endTransparencyGroup(GfxState *state) override; - void setSoftMask(GfxState * /*state*/, POPPLER_CONST_070 double * /*bbox*/, GBool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/) override; + void setSoftMask(GfxState * /*state*/, const double * /*bbox*/, bool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/) override; void clearSoftMask(GfxState * /*state*/) override; void updateFillColor(GfxState *state) override; @@ -273,8 +271,8 @@ public: //----- text drawing void beginTextObject(GfxState *state) override; void endTextObject(GfxState *state) override; - void drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, POPPLER_CONST_082 Unicode * /*u*/, int /*uLen*/) override; - GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, POPPLER_CONST_082 Unicode * /*u*/, int /*uLen*/) override; + void drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, const Unicode * /*u*/, int /*uLen*/) override; + bool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, const Unicode * /*u*/, int /*uLen*/) override; void endType3Char(GfxState * /*state*/) override; void type3D0(GfxState * /*state*/, double /*wx*/, double /*wy*/) override; void type3D1(GfxState * /*state*/, double /*wx*/, double /*wy*/, double /*llx*/, double /*lly*/, double /*urx*/, double /*ury*/) override; @@ -293,7 +291,7 @@ public: protected: void setItemFillAndStroke(GfxState* state, PageItem* textNode); void applyMask(PageItem* ite); - void pushGroup(const QString& maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false); + void pushGroup(const QString& maskName = "", bool forSoftMask = false, bool alpha = false, bool inverted = false); ScribusDoc* m_doc; Qt::PenCapStyle m_lineEnd { Qt::FlatCap }; @@ -354,9 +352,9 @@ protected: struct groupEntry { QList Items; - GBool forSoftMask { gFalse }; - GBool isolated { gFalse }; - GBool alpha { gFalse }; + bool forSoftMask { false }; + bool isolated { false }; + bool alpha { false }; QString maskName; QPointF maskPos; bool inverted { false }; @@ -367,11 +365,11 @@ protected: private: void getPenState(GfxState *state); - QString getColor(GfxColorSpace *color_space, POPPLER_CONST_070 GfxColor *color, int *shade); + QString getColor(GfxColorSpace *color_space, const GfxColor *color, int *shade); QString getAnnotationColor(const AnnotColor *color); - QString convertPath(POPPLER_CONST_083 GfxPath *path); + QString convertPath(const GfxPath *path); int getBlendMode(GfxState *state) const; - QString UnicodeParsedString(POPPLER_CONST GooString *s1) const; + QString UnicodeParsedString(const GooString *s1) const; QString UnicodeParsedString(const std::string& s1) const; bool checkClip(); @@ -420,11 +418,7 @@ private: Catalog *m_catalog {nullptr}; SplashFontEngine *m_fontEngine {nullptr}; SplashFont *m_font {nullptr}; -#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(21, 4, 0) std::unique_ptr m_formWidgets; -#else - FormPageWidgets *m_formWidgets {nullptr}; -#endif QHash > m_radioMap; QHash m_radioButtons; int m_actPage { 1 }; Index: scribus-1.6.2/scribus/plugins/import/pdf/pdftextrecognition.h =================================================================== --- scribus-1.6.2.orig/scribus/plugins/import/pdf/pdftextrecognition.h +++ scribus-1.6.2/scribus/plugins/import/pdf/pdftextrecognition.h @@ -16,7 +16,6 @@ for which a new license (GPL+exception) #include "slaoutput.h" #include -#include /* PDF TextBox Framework */ /* @@ -143,7 +142,7 @@ class PdfTextOutputDev : public SlaOutpu { public: PdfTextOutputDev(ScribusDoc* doc, QList* Elements, QStringList* importedColors, int flags); - virtual ~PdfTextOutputDev(); + ~PdfTextOutputDev() override; void updateFont(GfxState* state) override;