Scribus: fix build with Qt 5.11

* Fix settings dir for haiku
This commit is contained in:
Gerasim Troeglazov
2018-05-30 21:38:01 +10:00
parent ebb393df75
commit 33026725db
4 changed files with 313 additions and 624 deletions

View File

@@ -1,4 +1,4 @@
From a5a203dff83cde11754037ec038f3ff5f0c76908 Mon Sep 17 00:00:00 2001
From 18ff6e4d04f0eb198dad55441672c89d53ed9d95 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Thu, 3 May 2018 21:03:11 +1000
Subject: Fix build for Haiku
@@ -79,10 +79,10 @@ index 04d07b0..1b636c7 100644
char **messages = ( char ** ) NULL;
int i, trace_size = 0;
--
2.16.2
2.16.4
From f2cd2e7bc492e588f49e5c790e2bfffcfdf2e717 Mon Sep 17 00:00:00 2001
From 6e675d9ee89a1971f51953a50e85a51ba9caad0c Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Fri, 4 May 2018 21:51:22 +1000
Subject: Add support new versions of poppler. Backport pdf import plugin from
@@ -991,10 +991,10 @@ index e9cf029..df36b4c 100644
}
else
--
2.16.2
2.16.4
From d676ca5641346bf1f7cb7cf7dcaa6333467f4809 Mon Sep 17 00:00:00 2001
From 6a016193dec1443802adf67d27bccbe7bf098dc5 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Fri, 4 May 2018 23:19:34 +1000
Subject: Fix hunspell detection
@@ -1014,5 +1014,309 @@ index ecd4776..034c46a 100644
INCLUDE(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set HUNSPELL_FOUND to TRUE
--
2.16.2
2.16.4
From 6af5c6598b91bcfe449c1c7b785fd1ce2f6787ff Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com.org>
Date: Wed, 30 May 2018 19:15:11 +1000
Subject: Disable python and scriptplugin
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ef8100..a361806 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -710,7 +710,7 @@ ENDIF(TIFF_FOUND)
#<< PYTHON
#SET(PythonLibs_FIND_VERSION 2)
-FIND_PACKAGE(PythonLibs 2 REQUIRED)
+FIND_PACKAGE(PythonLibs 2)
IF (PYTHON_LIBRARY)
MESSAGE("Python Library Found OK")
SET(HAVE_PYTHON 1)
diff --git a/scribus/CMakeLists.txt b/scribus/CMakeLists.txt
index 718b6ee..64e10b3 100644
--- a/scribus/CMakeLists.txt
+++ b/scribus/CMakeLists.txt
@@ -1216,7 +1216,7 @@ TARGET_LINK_LIBRARIES(${EXE_NAME}
${FREETYPE_LIBRARIES}
${FONTCONFIG_LIBRARIES}
${LIBXML2_LIBRARIES}
- ${PYTHON_LIBRARIES}
+# ${PYTHON_LIBRARIES}
${TIFF_LIBRARIES}
${JPEG_LIBRARIES}
${ZLIB_LIBRARIES}
diff --git a/scribus/plugins/CMakeLists.txt b/scribus/plugins/CMakeLists.txt
index 733acc1..3e3d444 100644
--- a/scribus/plugins/CMakeLists.txt
+++ b/scribus/plugins/CMakeLists.txt
@@ -11,12 +11,12 @@ IF(NOT WANT_SCRIPTER2)
#scripter1
IF(NOT WIN32)
MESSAGE(STATUS "Building with Scripter 1")
- ADD_SUBDIRECTORY(scriptplugin)
+# ADD_SUBDIRECTORY(scriptplugin)
ENDIF(NOT WIN32)
ELSE(NOT WANT_SCRIPTER2)
#scripter2
MESSAGE(STATUS "Building with Scripter 2")
- ADD_SUBDIRECTORY(scripter)
+# ADD_SUBDIRECTORY(scripter)
ENDIF(NOT WANT_SCRIPTER2)
ADD_SUBDIRECTORY(short-words)
ADD_SUBDIRECTORY(tools)
--
2.16.4
From b4676051b924fed87336cce6042f81f3c0696063 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 30 May 2018 20:07:35 +1000
Subject: Fix build with Qt 5.11 (missing headers)
diff --git a/scribus/plugins/tools/2geomtools/meshdistortion/meshdistortiondialog.cpp b/scribus/plugins/tools/2geomtools/meshdistortion/meshdistortiondialog.cpp
index 3f0d916..3ea32dc 100644
--- a/scribus/plugins/tools/2geomtools/meshdistortion/meshdistortiondialog.cpp
+++ b/scribus/plugins/tools/2geomtools/meshdistortion/meshdistortiondialog.cpp
@@ -26,17 +26,20 @@ for which a new license (GPL+exception) is in place.
#include "meshdistortiondialog.h"
-#include <QPainterPath>
#include <QGraphicsItem>
+#include <QGraphicsSceneHoverEvent>
+#include <QGraphicsSceneMouseEvent>
+#include <QPainterPath>
+#include <QStyleOptionGraphicsItem>
#include "commonstrings.h"
#include "fpointarray.h"
+#include "iconmanager.h"
#include "pageitem.h"
#include "pageitem_group.h"
#include "sccolorengine.h"
#include "scpattern.h"
#include "selection.h"
-#include "iconmanager.h"
#include "util_math.h"
NodeItem::NodeItem(QRectF geom, uint num, MeshDistortionDialog *parent) : QGraphicsEllipseItem(geom)
diff --git a/scribus/plugins/tools/2geomtools/meshdistortion/meshdistortiondialog.h b/scribus/plugins/tools/2geomtools/meshdistortion/meshdistortiondialog.h
index 7ea05f8..2baa96b 100644
--- a/scribus/plugins/tools/2geomtools/meshdistortion/meshdistortiondialog.h
+++ b/scribus/plugins/tools/2geomtools/meshdistortion/meshdistortiondialog.h
@@ -31,13 +31,11 @@ for which a new license (GPL+exception) is in place.
#include <QList>
#include <QGraphicsEllipseItem>
#include <QGraphicsPathItem>
-#include <QGraphicsSceneMouseEvent>
-#include <QGraphicsSceneHoverEvent>
+
#include "ui_meshdistortiondialog.h"
#include "pluginapi.h"
#include "scribusdoc.h"
-
#if defined(_MSC_VER) && !defined(_USE_MATH_DEFINES)
#define _USE_MATH_DEFINES
#endif
@@ -54,14 +52,19 @@ for which a new license (GPL+exception) is in place.
#include "third_party/lib2geom/transforms.h"
#include "third_party/lib2geom/scribushelper.h"
#include <vector>
+
//using namespace Geom;
class MeshDistortionDialog;
+class QGraphicsSceneHoverEvent;
+class QGraphicsSceneMouseEvent;
+class QStyleOptionGraphicsItem;
class PLUGIN_API NodeItem : public QGraphicsEllipseItem
{
public:
NodeItem(QRectF geom, uint num, MeshDistortionDialog *parent);
~NodeItem() {};
+
void paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget);
uint handle;
bool mouseMoving;
@@ -84,6 +87,7 @@ class PLUGIN_API MeshDistortionDialog : public QDialog, Ui::MeshDistortionDialog
public:
MeshDistortionDialog(QWidget* parent, ScribusDoc *doc);
~MeshDistortionDialog() {};
+
void addItemsToScene(Selection* itemSelection, ScribusDoc *doc, QGraphicsPathItem* parentItem, PageItem* parent);
void adjustHandles();
void updateMesh(bool gridOnly);
diff --git a/scribus/plugins/tools/lenseffects/lensdialog.cpp b/scribus/plugins/tools/lenseffects/lensdialog.cpp
index cfabc40..f5d6981 100644
--- a/scribus/plugins/tools/lenseffects/lensdialog.cpp
+++ b/scribus/plugins/tools/lenseffects/lensdialog.cpp
@@ -25,14 +25,20 @@ for which a new license (GPL+exception) is in place.
***************************************************************************/
#include "lensdialog.h"
+
#include <cmath>
+
+#include <QGraphicsSceneHoverEvent>
+#include <QGraphicsSceneMouseEvent>
#include <QRadialGradient>
+#include <QStyleOptionGraphicsItem>
+
+#include "commonstrings.h"
#include "iconmanager.h"
-#include "selection.h"
+#include "pageitem_group.h"
#include "sccolorengine.h"
#include "scpattern.h"
-#include "commonstrings.h"
-#include "pageitem_group.h"
+#include "selection.h"
LensItem::LensItem(QRectF geom, LensDialog *parent) : QGraphicsRectItem(geom)
{
diff --git a/scribus/plugins/tools/lenseffects/lensdialog.h b/scribus/plugins/tools/lenseffects/lensdialog.h
index 4352ec2..213e53b 100644
--- a/scribus/plugins/tools/lenseffects/lensdialog.h
+++ b/scribus/plugins/tools/lenseffects/lensdialog.h
@@ -33,19 +33,22 @@ for which a new license (GPL+exception) is in place.
#include <QGraphicsItem>
#include <QGraphicsRectItem>
#include <QGraphicsPathItem>
-#include <QGraphicsSceneMouseEvent>
-#include <QGraphicsSceneHoverEvent>
+
#include "ui_lensdialogbase.h"
#include "pluginapi.h"
#include "scribusdoc.h"
class LensDialog;
+class QGraphicsSceneHoverEvent;
+class QGraphicsSceneMouseEvent;
+class QStyleOptionGraphicsItem;
class PLUGIN_API LensItem : public QGraphicsRectItem
{
public:
LensItem(QRectF geom, LensDialog *parent);
~LensItem() {};
+
void setStrength(double s);
void updateEffect();
QPainterPath lensDeform(const QPainterPath &source, const QPointF &offset, double m_radius, double s);
@@ -54,6 +57,7 @@ public:
double scaling;
int handle;
QPointF mousePoint;
+
protected:
QVariant itemChange(GraphicsItemChange change, const QVariant &value);
void mousePressEvent(QGraphicsSceneMouseEvent *event);
@@ -72,6 +76,7 @@ class PLUGIN_API LensDialog : public QDialog, Ui::LensDialogBase
public:
LensDialog(QWidget* parent, ScribusDoc *doc);
~LensDialog() {};
+
void addItemsToScene(Selection* itemSelection, ScribusDoc *doc, QGraphicsPathItem* parentItem, PageItem* parent);
void lensSelected(LensItem *item);
void setLensPositionValues(QPointF p);
diff --git a/scribus/sclistboxpixmap.h b/scribus/sclistboxpixmap.h
index 044d45a..789bf04 100644
--- a/scribus/sclistboxpixmap.h
+++ b/scribus/sclistboxpixmap.h
@@ -9,10 +9,13 @@ for which a new license (GPL+exception) is in place.
#include <memory>
+#include <QAbstractItemDelegate>
#include <QApplication>
#include <QDebug>
#include <QPainter>
#include <QPixmap>
+#include <QScopedPointer>
+#include <QStyleOptionViewItem>
#include <QVariant>
#include "scguardedptr.h"
--
2.16.4
From 55dad3289a6ffc4c2979b3553255e26e2bc20cc1 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 30 May 2018 20:44:58 +1000
Subject: Add paths for Haiku
diff --git a/scribus/scpaths.cpp b/scribus/scpaths.cpp
index 9aa902c..7a0b19e 100644
--- a/scribus/scpaths.cpp
+++ b/scribus/scpaths.cpp
@@ -258,6 +258,8 @@ QStringList ScPaths::spellDirs() const
QString linuxHunspellPath("/usr/share/hunspell/");
QString linuxMyspellPath("/usr/share/myspell/");
QString windowsLOPath("LibreOffice 3.5/share/extensions");
+ QString haikuSystemHunspellPath("/system/data/hunspell/");
+ QString haikuUserHunspellPath("/boot/home/config/non-packaged/data/hunspell/");
QDir d;
QStringList spellDirs;
spellDirs.append(getUserDictDir(ScPaths::Spell, false));
@@ -309,6 +311,13 @@ QStringList ScPaths::spellDirs() const
d.setPath(linuxLocalPath);
if (d.exists())
spellDirs.append(linuxLocalPath);
+#elif defined(Q_OS_HAIKU)
+ d.setPath(haikuSystemHunspellPath);
+ if (d.exists())
+ spellDirs.append(haikuSystemHunspellPath);
+ d.setPath(haikuUserHunspellPath);
+ if (d.exists())
+ spellDirs.append(haikuUserHunspellPath);
#endif
return spellDirs;
}
@@ -325,6 +334,9 @@ QStringList ScPaths::hyphDirs() const
QString linuxMyspellPath("/usr/share/myspell/");
QString linuxHyphen1Path("/usr/share/hyphen/");
QString windowsLOPath("LibreOffice 3.5/share/extensions");
+ QString haikuSystemHyphenPath("/system/data/hyphen/");
+ QString haikuSystemHunspellPath("/system/data/hunspell/");
+ QString haikuUserHunspellPath("/boot/home/config/non-packaged/data/hunspell/");
QDir d;
QStringList hyphDirs;
hyphDirs.append(getUserDictDir(ScPaths::Hyph, false));
@@ -379,6 +391,16 @@ QStringList ScPaths::hyphDirs() const
d.setPath(linuxLocalPath);
if (d.exists())
hyphDirs.append(linuxLocalPath);
+#elif defined(Q_OS_HAIKU)
+ d.setPath(haikuSystemHyphenPath);
+ if (d.exists())
+ hyphDirs.append(haikuSystemHyphenPath);
+ d.setPath(haikuSystemHunspellPath);
+ if (d.exists())
+ hyphDirs.append(haikuSystemHunspellPath);
+ d.setPath(haikuUserHunspellPath);
+ if (d.exists())
+ hyphDirs.append(haikuUserHunspellPath);
#endif
return hyphDirs;
}
@@ -393,6 +415,9 @@ QStringList ScPaths::getSystemFontDirs(void)
fontDirs.append("/System/Library/Fonts/");
#elif defined(_WIN32)
fontDirs.append( getSpecialDir(CSIDL_FONTS) );
+#elif defined(Q_OS_HAIKU)
+ fontDirs.append("/system/data/fonts/ttfonts");
+ fontDirs.append("/boot/home/config/non-packaged/data/fonts");
#endif
return fontDirs;
}
--
2.16.4

View File

@@ -1,558 +0,0 @@
From 5436dcca6d10e601b18e79e77d5230aa1f459cd9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zolt=C3=A1n=20Mizsei?= <zmizsei@extrowerk.com>
Date: Tue, 30 May 2017 00:34:09 +0200
Subject: Scribus: build fix
diff --git a/scribus/scpaths.cpp b/scribus/scpaths.cpp
index 892d0bb..f63d685 100644
--- a/scribus/scpaths.cpp
+++ b/scribus/scpaths.cpp
@@ -15,6 +15,10 @@ for which a new license (GPL+exception) is in place.
#include "scconfig.h"
#include "scribusapp.h"
+#ifndef prefsDir
+QString prefsDir;
+#endif
+
extern ScribusQApp* ScQApp;
// On Qt/Mac we need CoreFoundation to discover the location
--
2.14.2
From cdcedd815f29d50770bc46d59a732eea3d20c3e7 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Fri, 8 Sep 2017 16:52:10 +0000
Subject: #14979: poppler-0.58 breaks build
git-svn-id: svn://scribus.net/trunk/Scribus@22154 11d20701-8431-0410-a711-e3c959e3b870
diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp
index e785431..5b9bd97 100644
--- a/scribus/plugins/import/pdf/importpdf.cpp
+++ b/scribus/plugins/import/pdf/importpdf.cpp
@@ -22,6 +22,7 @@ for which a new license (GPL+exception) is in place.
#include <poppler/PageTransition.h>
#include <poppler/ViewerPreferences.h>
#include <poppler/poppler-config.h>
+#include <poppler/cpp/poppler-version.h>
#include <poppler/SplashOutputDev.h>
#include <poppler/splash/SplashBitmap.h>
@@ -59,6 +60,12 @@ for which a new license (GPL+exception) is in place.
#include "ui/multiprogressdialog.h"
#include "ui/propertiespalette.h"
+#define POPPLER_VERSION_ENCODE(major, minor, micro) ( \
+ ((major) * 10000) \
+ + ((minor) * 100) \
+ + ((micro) * 1))
+#define POPPLER_ENCODED_VERSION POPPLER_VERSION_ENCODE(POPPLER_VERSION_MAJOR, POPPLER_VERSION_MINOR, POPPLER_VERSION_MICRO)
+
PdfPlug::PdfPlug(ScribusDoc* doc, int flags)
{
tmpSele = new Selection(this, false);
@@ -507,12 +514,20 @@ bool PdfPlug::convert(const QString& fn)
{
for (int i = 0; i < order->getLength (); ++i)
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ Object orderItem = order->get(i);
+#else
Object orderItem;
order->get(i, &orderItem);
+#endif
if (orderItem.isDict())
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ Object ref = order->getNF(i);
+#else
Object ref;
order->getNF(i, &ref);
+#endif
if (ref.isRef())
{
OptionalContentGroup *oc = ocg->findOcgByRef(ref.getRef());
@@ -523,7 +538,9 @@ bool PdfPlug::convert(const QString& fn)
ocgNames.append(ocgName);
}
}
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 58, 0)
ref.free();
+#endif
}
else
{
@@ -597,39 +614,71 @@ bool PdfPlug::convert(const QString& fn)
dev->layersSetByOCG = true;
}
#endif
+
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ Object info = pdfDoc->getDocInfo();
+ if (info.isDict())
+ {
+ Object obj;
+ Dict *infoDict = info.getDict();
+ obj = infoDict->lookup((char*) "Title");
+ if (obj.isString())
+ {
+ m_Doc->documentInfo().setTitle(UnicodeParsedString(obj.getString()));
+ }
+ obj = infoDict->lookup((char*) "Author");
+ if (obj.isString())
+ {
+ m_Doc->documentInfo().setAuthor(UnicodeParsedString(obj.getString()));
+ }
+ obj = infoDict->lookup((char*) "Subject");
+ if (obj.isString())
+ {
+ m_Doc->documentInfo().setSubject(UnicodeParsedString(obj.getString()));
+ }
+ obj = infoDict->lookup((char*) "Keywords");
+ if (obj.isString())
+ {
+ // s1 = obj.getString();
+ m_Doc->documentInfo().setKeywords(UnicodeParsedString(obj.getString()));
+ }
+ }
+ info = Object();
+#else
Object info;
pdfDoc->getDocInfo(&info);
if (info.isDict())
{
Object obj;
- // GooString *s1;
+ // GooString *s1;
Dict *infoDict = info.getDict();
- if (infoDict->lookup((char*)"Title", &obj )->isString())
+ if (infoDict->lookup((char*)"Title", &obj)->isString())
{
- // s1 = obj.getString();
+ // s1 = obj.getString();
m_Doc->documentInfo().setTitle(UnicodeParsedString(obj.getString()));
obj.free();
}
- if (infoDict->lookup((char*)"Author", &obj )->isString())
+ if (infoDict->lookup((char*)"Author", &obj)->isString())
{
- // s1 = obj.getString();
+ // s1 = obj.getString();
m_Doc->documentInfo().setAuthor(UnicodeParsedString(obj.getString()));
obj.free();
}
- if (infoDict->lookup((char*)"Subject", &obj )->isString())
+ if (infoDict->lookup((char*)"Subject", &obj)->isString())
{
- // s1 = obj.getString();
+ // s1 = obj.getString();
m_Doc->documentInfo().setSubject(UnicodeParsedString(obj.getString()));
obj.free();
}
- if (infoDict->lookup((char*)"Keywords", &obj )->isString())
+ if (infoDict->lookup((char*)"Keywords", &obj)->isString())
{
- // s1 = obj.getString();
+ // s1 = obj.getString();
m_Doc->documentInfo().setKeywords(UnicodeParsedString(obj.getString()));
obj.free();
}
}
info.free();
+#endif
if (cropped)
{
QRectF crBox = getCBox(contentRect, pageNs[0]);
@@ -745,8 +794,13 @@ bool PdfPlug::convert(const QString& fn)
pdfDoc->displayPage(dev, pp, hDPI, vDPI, rotate, useMediaBox, crop, printing, NULL, NULL, dev->annotations_callback, dev);
}
PDFPresentationData ef;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ Object trans = pdfDoc->getPage(pp)->getTrans();
+ Object *transi = &trans;
+#else
Object trans;
Object *transi = pdfDoc->getPage(pp)->getTrans(&trans);
+#endif
if (transi->isDict())
{
m_Doc->pdfOptions().PresentMode = true;
@@ -792,32 +846,51 @@ bool PdfPlug::convert(const QString& fn)
delete pgTrans;
}
m_Doc->currentPage()->PresentVals = ef;
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 58, 0)
trans.free();
transi->free();
+#endif
}
int numjs = pdfDoc->getCatalog()->numJS();
if (numjs > 0)
{
NameTree *jsNameTreeP = new NameTree();
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ Object catDict = pdfDoc->getXRef()->getCatalog();
+#else
Object catDict;
pdfDoc->getXRef()->getCatalog(&catDict);
+#endif
if (catDict.isDict())
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ Object names = catDict.dictLookup("Names");
+#else
Object names;
catDict.dictLookup("Names", &names);
+#endif
if (names.isDict())
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ Object obj = names.dictLookup("JavaScript");
+ jsNameTreeP->init(pdfDoc->getXRef(), &obj);
+#else
Object obj;
names.dictLookup("JavaScript", &obj);
jsNameTreeP->init(pdfDoc->getXRef(), &obj);
obj.free();
+#endif
}
for (int a = 0; a < numjs; a++)
{
m_Doc->JavaScripts.insert(UnicodeParsedString(jsNameTreeP->getName(a)), UnicodeParsedString(pdfDoc->getCatalog()->getJS(a)));
}
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ names = catDict.dictLookup("OpenAction");
+#else
names.free();
catDict.dictLookup("OpenAction", &names);
+#endif
if (names.isDict())
{
LinkAction *linkAction = NULL;
@@ -838,9 +911,13 @@ bool PdfPlug::convert(const QString& fn)
}
}
}
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 58, 0)
names.free();
+#endif
}
+#if POPPLER_ENCODED_VERSION < POPPLER_VERSION_ENCODE(0, 58, 0)
catDict.free();
+#endif
delete jsNameTreeP;
}
m_Doc->pdfOptions().Version = (PDFOptions::PDFVersion)qMin(15, qMax(13, pdfDoc->getPDFMajorVersion() * 10 + pdfDoc->getPDFMinorVersion()));
diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
index 32cfed1..df36b4c 100644
--- a/scribus/plugins/import/pdf/slaoutput.cpp
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
@@ -6,6 +6,7 @@ for which a new license (GPL+exception) is in place.
*/
#include "slaoutput.h"
+#include <poppler/cpp/poppler-version.h>
#include <poppler/GlobalParams.h>
#include <poppler/poppler-config.h>
#include <poppler/FileSpec.h>
@@ -19,11 +20,49 @@ for which a new license (GPL+exception) is in place.
#include "util_math.h"
#include <tiffio.h>
+#define POPPLER_VERSION_ENCODE(major, minor, micro) ( \
+ ((major) * 10000) \
+ + ((minor) * 100) \
+ + ((micro) * 1))
+#define POPPLER_ENCODED_VERSION POPPLER_VERSION_ENCODE(POPPLER_VERSION_MAJOR, POPPLER_VERSION_MINOR, POPPLER_VERSION_MICRO)
+
LinkSubmitForm::LinkSubmitForm(Object *actionObj)
{
Object obj1, obj2, obj3;
fileName = NULL;
m_flags = 0;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ if (actionObj->isDict())
+ {
+ obj1 = actionObj->dictLookup("F");
+ if (!obj1.isNull())
+ {
+ if (obj1.isDict())
+ {
+ obj3 = obj1.dictLookup("FS");
+ if (!obj3.isNull())
+ {
+ if (obj3.isName())
+ {
+ char *name = obj3.getName();
+ if (!strcmp(name, "URL"))
+ {
+ obj2 = obj1.dictLookup("F");
+ if (!obj2.isNull())
+ fileName = obj2.getString()->copy();
+ }
+ }
+ }
+ }
+ }
+ obj1 = actionObj->dictLookup("Flags");
+ if (!obj1.isNull())
+ {
+ if (obj1.isNum())
+ m_flags = obj1.getInt();
+ }
+ }
+#else
if (actionObj->isDict())
{
if (!actionObj->dictLookup("F", &obj1)->isNull())
@@ -54,6 +93,7 @@ LinkSubmitForm::LinkSubmitForm(Object *actionObj)
}
obj1.free();
}
+#endif
}
LinkSubmitForm::~LinkSubmitForm()
@@ -66,11 +106,25 @@ LinkImportData::LinkImportData(Object *actionObj)
{
Object obj1, obj3;
fileName = NULL;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ if (actionObj->isDict())
+ {
+ obj1 = actionObj->dictLookup("F");
+ if (!obj1.isNull())
+ {
+ obj3 = getFileSpecNameForPlatform(&obj1);
+ if (!obj3.isNull())
+ {
+ fileName = obj3.getString()->copy();
+ }
+ }
+ }
+#else
if (actionObj->isDict())
{
if (!actionObj->dictLookup("F", &obj1)->isNull())
{
- if (getFileSpecNameForPlatform (&obj1, &obj3))
+ if (getFileSpecNameForPlatform(&obj1, &obj3))
{
fileName = obj3.getString()->copy();
obj3.free();
@@ -78,6 +132,7 @@ LinkImportData::LinkImportData(Object *actionObj)
}
obj1.free();
}
+#endif
}
LinkImportData::~LinkImportData()
@@ -256,6 +311,27 @@ LinkAction* SlaOutputDev::SC_getAction(AnnotWidget *ano)
Object obj;
Ref refa = ano->getRef();
Object additionalActions;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ obj = xref->fetch(refa.num, refa.gen);
+ if (obj.isDict())
+ {
+ Dict* adic = obj.getDict();
+ additionalActions = adic->lookupNF("A");
+ Object additionalActionsObject = additionalActions.fetch(pdfDoc->getXRef());
+ if (additionalActionsObject.isDict())
+ {
+ Object actionObject = additionalActionsObject.dictLookup("S");
+ if (actionObject.isName("ImportData"))
+ {
+ linkAction = new LinkImportData(&additionalActionsObject);
+ }
+ else if (actionObject.isName("SubmitForm"))
+ {
+ linkAction = new LinkSubmitForm(&additionalActionsObject);
+ }
+ }
+ }
+#else
Object *act = xref->fetch(refa.num, refa.gen, &obj);
if (act)
{
@@ -283,6 +359,7 @@ LinkAction* SlaOutputDev::SC_getAction(AnnotWidget *ano)
}
}
obj.free();
+#endif
return linkAction;
}
@@ -293,6 +370,22 @@ LinkAction* SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *a
Object obj;
Ref refa = ano->getRef();
Object additionalActions;
+
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ obj = xref->fetch(refa.num, refa.gen);
+ if (obj.isDict())
+ {
+ Dict* adic = obj.getDict();
+ additionalActions = adic->lookupNF("AA");
+ Object additionalActionsObject = additionalActions.fetch(pdfDoc->getXRef());
+ if (additionalActionsObject.isDict())
+ {
+ Object actionObject = additionalActionsObject.dictLookup(key);
+ if (actionObject.isDict())
+ linkAction = LinkAction::parseAction(&actionObject, pdfDoc->getCatalog()->getBaseURI());
+ }
+ }
+#else
Object *act = xref->fetch(refa.num, refa.gen, &obj);
if (act)
{
@@ -313,6 +406,7 @@ LinkAction* SlaOutputDev::SC_getAdditionalAction(const char *key, AnnotWidget *a
}
}
obj.free();
+#endif
return linkAction;
}
@@ -838,6 +932,33 @@ bool SlaOutputDev::handleWidgetAnnot(Annot* annota, double xCoor, double yCoor,
{
Object obj1;
Ref refa = annota->getRef();
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ obj1 = xref->fetch(refa.num, refa.gen);
+ if (obj1.isDict())
+ {
+ Dict* dict = obj1.getDict();
+ Object obj2 = dict->lookup("Kids");
+ //childs
+ if (obj2.isArray())
+ {
+ // Load children
+ QList<int> radList;
+ for (int i = 0; i < obj2.arrayGetLength(); i++)
+ {
+ Object childRef = obj2.arrayGetNF(i);
+ if (!childRef.isRef())
+ continue;
+ Object childObj = obj2.arrayGet(i);
+ if (!childObj.isDict())
+ continue;
+ const Ref ref = childRef.getRef();
+ radList.append(ref.num);
+ }
+ QString tmTxt = UnicodeParsedString(annota->getName());
+ m_radioMap.insert(tmTxt, radList);
+ }
+ }
+#else
Object *act = xref->fetch(refa.num, refa.gen, &obj1);
if (act && act->isDict())
{
@@ -873,6 +994,7 @@ bool SlaOutputDev::handleWidgetAnnot(Annot* annota, double xCoor, double yCoor,
obj2.free();
}
obj1.free();
+#endif
}
return retVal;
}
@@ -3007,6 +3129,23 @@ void SlaOutputDev::beginMarkedContent(char *name, Object *dictRef)
}
else
{
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ dictObj = dictRef->fetch(xref);
+ if (!dictObj.isDict())
+ return;
+ dict = dictObj.getDict();
+ dictType = dict->lookup("Type");
+ if (dictType.isName("OCG"))
+ {
+ oc = contentConfig->findOcgByRef(dictRef->getRef());
+ if (oc)
+ {
+ // qDebug() << "Begin OCG Content with Name " << UnicodeParsedString(oc->getName());
+ m_doc->setActiveLayer(UnicodeParsedString(oc->getName()));
+ mSte.ocgName = UnicodeParsedString(oc->getName());
+ }
+ }
+#else
dictRef->fetch(xref, &dictObj);
if (!dictObj.isDict())
{
@@ -3027,6 +3166,7 @@ void SlaOutputDev::beginMarkedContent(char *name, Object *dictRef)
}
dictType.free();
dictObj.free();
+#endif
}
}
m_mcStack.push(mSte);
@@ -3046,14 +3186,20 @@ void SlaOutputDev::beginMarkedContent(char *name, Dict *properties)
{
if (layersSetByOCG)
return;
- Object obj;
QString lName = QString("Layer_%1").arg(layerNum + 1);
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ Object obj = properties->lookup((char*) "Title");
+ if (obj.isString())
+ lName = QString(obj.getString()->getCString());
+#else
+ Object obj;
if (properties->lookup((char*)"Title", &obj))
{
if (obj.isString())
lName = QString(obj.getString()->getCString());
obj.free();
}
+#endif
for (ScLayers::iterator it = m_doc->Layers.begin(); it != m_doc->Layers.end(); ++it)
{
if (it->Name == lName)
@@ -3066,6 +3212,29 @@ void SlaOutputDev::beginMarkedContent(char *name, Dict *properties)
if (!firstLayer)
currentLayer = m_doc->addLayer(lName, true);
firstLayer = false;
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 58, 0)
+ obj = properties->lookup((char*) "Visible");
+ if (obj.isBool())
+ m_doc->setLayerVisible(currentLayer, obj.getBool());
+ obj = properties->lookup((char*) "Editable");
+ if (obj.isBool())
+ m_doc->setLayerLocked(currentLayer, !obj.getBool());
+ obj = properties->lookup((char*) "Printed");
+ if (obj.isBool())
+ m_doc->setLayerPrintable(currentLayer, obj.getBool());
+ obj = properties->lookup((char*)"Color");
+ if (obj.isArray())
+ {
+ Object obj1;
+ obj1 = obj.arrayGet(0);
+ int r = obj1.getNum() / 256;
+ obj1 = obj.arrayGet(1);
+ int g = obj1.getNum() / 256;
+ obj1 = obj.arrayGet(2);
+ int b = obj1.getNum() / 256;
+ m_doc->setLayerMarker(currentLayer, QColor(r, g, b));
+ }
+#else
if (properties->lookup((char*)"Visible", &obj))
{
if (obj.isBool())
@@ -3102,6 +3271,7 @@ void SlaOutputDev::beginMarkedContent(char *name, Dict *properties)
}
obj.free();
}
+#endif
}
}
}
--
2.14.2

View File

@@ -1,54 +0,0 @@
From 365ad3f760d1a00c9bd02215de122b32099c16ef Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 8 May 2018 23:50:45 +1000
Subject: Disable python scripting plugin
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1ef8100..a361806 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -710,7 +710,7 @@ ENDIF(TIFF_FOUND)
#<< PYTHON
#SET(PythonLibs_FIND_VERSION 2)
-FIND_PACKAGE(PythonLibs 2 REQUIRED)
+FIND_PACKAGE(PythonLibs 2)
IF (PYTHON_LIBRARY)
MESSAGE("Python Library Found OK")
SET(HAVE_PYTHON 1)
diff --git a/scribus/CMakeLists.txt b/scribus/CMakeLists.txt
index 718b6ee..64e10b3 100644
--- a/scribus/CMakeLists.txt
+++ b/scribus/CMakeLists.txt
@@ -1216,7 +1216,7 @@ TARGET_LINK_LIBRARIES(${EXE_NAME}
${FREETYPE_LIBRARIES}
${FONTCONFIG_LIBRARIES}
${LIBXML2_LIBRARIES}
- ${PYTHON_LIBRARIES}
+# ${PYTHON_LIBRARIES}
${TIFF_LIBRARIES}
${JPEG_LIBRARIES}
${ZLIB_LIBRARIES}
diff --git a/scribus/plugins/CMakeLists.txt b/scribus/plugins/CMakeLists.txt
index 733acc1..3e3d444 100644
--- a/scribus/plugins/CMakeLists.txt
+++ b/scribus/plugins/CMakeLists.txt
@@ -11,12 +11,12 @@ IF(NOT WANT_SCRIPTER2)
#scripter1
IF(NOT WIN32)
MESSAGE(STATUS "Building with Scripter 1")
- ADD_SUBDIRECTORY(scriptplugin)
+# ADD_SUBDIRECTORY(scriptplugin)
ENDIF(NOT WIN32)
ELSE(NOT WANT_SCRIPTER2)
#scripter2
MESSAGE(STATUS "Building with Scripter 2")
- ADD_SUBDIRECTORY(scripter)
+# ADD_SUBDIRECTORY(scripter)
ENDIF(NOT WANT_SCRIPTER2)
ADD_SUBDIRECTORY(short-words)
ADD_SUBDIRECTORY(tools)
--
2.16.2

View File

@@ -9,13 +9,10 @@ versatile PDF creation."
HOMEPAGE="https://www.scribus.net"
COPYRIGHT="2014-2017 Scribus Team"
LICENSE="GNU GPL v2"
REVISION="5"
REVISION="6"
SOURCE_URI="http://downloads.sourceforge.net/project/scribus/scribus-devel/$portVersion/scribus-$portVersion.tar.xz"
CHECKSUM_SHA256="ec5eec23aeda655d3a761cffb85853dcd2ede3973b9e62a1b3c28bd1093c74f5"
PATCHES="
scribus-$portVersion.patchset
scribus_python_disable.patch
"
PATCHES="scribus-$portVersion.patchset"
ADDITIONAL_FILES="scribus.rdef.in"
@@ -119,7 +116,7 @@ BUILD()
-DPLUGINDIR=$appsDir/Scribus/plugins \
-DCMAKE_INSTALL_DATAROOTDIR=$dataDir \
-DSHAREDIR=$dataDir \
-DAPPLICATION_DATA_DIR=$dataDir \
-DAPPLICATION_DATA_DIR="config/settings/Scribus" \
-DWANT_DISTROBUILD=1 \
-DWANT_CPP11=1 \
-DLIB_SUFFIX="$secondaryArchSuffix"