scribus/fix_build_with_poppler_24.12.0.patch
2025-01-09 11:27:33 +00:00

1884 lines
69 KiB
Diff

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 <memory>
-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
#include <optional>
-#endif
#include <poppler/GlobalParams.h>
#include <poppler/poppler-config.h>
@@ -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<LinkAction> SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *ano)
{
std::unique_ptr<LinkAction> 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<LinkDest> 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<LinkDest> 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<int> 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<LinkDest> 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<LinkDest> 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<ImageStream>(str, width, 1, 1);
+ auto imgStr = std::make_unique<ImageStream>(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<ImageStream>(str, width, colorMap->getNumPixelComps(), colorMap->getBits());
+ auto imgStr = std::make_unique<ImageStream>(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<ImageStream>(maskStr, maskWidth, maskColorMap->getNumPixelComps(), maskColorMap->getBits());
+ auto mskStr = std::make_unique<ImageStream>(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<ImageStream>(str, width, colorMap->getNumPixelComps(), colorMap->getBits());
+ auto imgStr = std::make_unique<ImageStream>(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<ImageStream>(maskStr, maskWidth, 1, 1);
+ auto mskStr = std::make_unique<ImageStream>(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<ImageStream>(str, width, colorMap->getNumPixelComps(), colorMap->getBits());
+ auto imgStr = std::make_unique<ImageStream>(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<FoFiTrueType> ff;
std::optional<std::vector<unsigned char>> tmpBuf;
-#elif POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(22, 2, 0)
+#else
std::optional<GfxFontLoc> fontLoc;
const GooString * fileName = nullptr;
std::unique_ptr<FoFiTrueType> 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<SlaOutFontFileID> 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<SlaOutFontFileID>(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<double> 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 <poppler/goo/gtypes.h>
-#endif
#include <poppler/Object.h>
#include <poppler/OutputDev.h>
#include <poppler/Gfx.h>
@@ -45,8 +42,6 @@ for which a new license (GPL+exception)
#include <poppler/Form.h>
#include <poppler/Page.h>
#include <poppler/Catalog.h>
-#include <poppler/CharCodeToUnicode.h>
-#include <poppler/FontEncodingTables.h>
#include <poppler/splash/SplashFontFileID.h>
#include <poppler/splash/SplashFontFile.h>
#include <poppler/splash/SplashFontEngine.h>
@@ -56,9 +51,11 @@ for which a new license (GPL+exception)
#include <poppler/splash/SplashGlyphBitmap.h>
//------------------------------------------------------------------------
-// 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<LinkAction> 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<PageItem*> 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<FormPageWidgets> m_formWidgets;
-#else
- FormPageWidgets *m_formWidgets {nullptr};
-#endif
QHash<QString, QList<int> > m_radioMap;
QHash<int, PageItem*> 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 <poppler/GfxState.h>
-#include <poppler/CharCodeToUnicode.h>
/* PDF TextBox Framework */
/*
@@ -143,7 +142,7 @@ class PdfTextOutputDev : public SlaOutpu
{
public:
PdfTextOutputDev(ScribusDoc* doc, QList<PageItem*>* Elements, QStringList* importedColors, int flags);
- virtual ~PdfTextOutputDev();
+ ~PdfTextOutputDev() override;
void updateFont(GfxState* state) override;