Scribus
Open source desktop publishing at your fingertips
importpct.h
1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 #ifndef IMPORTPCT_H
8 #define IMPORTPCT_H
9 
10 
11 #include "pluginapi.h"
12 #include "pageitem.h"
13 #include "sccolor.h"
14 #include "fpointarray.h"
15 #include <QList>
16 #include <QTransform>
17 #include <QMultiMap>
18 #include <QtGlobal>
19 #include <QObject>
20 #include <QString>
21 #include <QRect>
22 
23 class MultiProgressDialog;
24 class ScribusDoc;
25 class Selection;
27 
29 class PctPlug : public QObject
30 {
31  Q_OBJECT
32 
33 public:
43  PctPlug( ScribusDoc* doc, int flags );
44  ~PctPlug();
45 
56  bool import(QString fn, const TransactionSettings& trSettings, int flags, bool showProgress = true);
57  QImage readThumbnail(QString fn);
58 
59 private:
60  void parseHeader(QString fName, double &x, double &y, double &b, double &h);
61  bool convert(QString fn);
62  void parsePict(QDataStream &ts);
63  void alignStreamToWord(QDataStream &ts, uint len);
64  void handleColor(QDataStream &ts, bool back);
65  void handleColorRGB(QDataStream &ts, bool back);
66  void handlePenPattern(QDataStream &ts);
67  void handlePolygon(QDataStream &ts, quint16 opCode);
68  void handleShape(QDataStream &ts, quint16 opCode);
69  void handleSameShape(QDataStream &ts, quint16 opCode);
70  void handleFontName(QDataStream &ts);
71  void handleTextSize(QDataStream &ts);
72  void handleTextFont(QDataStream &ts);
73  void handleTextStyle(QDataStream &ts);
74  void handleLongText(QDataStream &ts);
75  void handleDHText(QDataStream &ts);
76  void handleDVText(QDataStream &ts);
77  void handleDHVText(QDataStream &ts);
78  void createTextPath(QByteArray textString);
79  void handlePenSize(QDataStream &ts);
80  void handleOvalSize(QDataStream &ts);
81  void handleShortLine(QDataStream &ts);
82  void handleShortLineFrom(QDataStream &ts);
83  void handleLine(QDataStream &ts);
84  void handleLineFrom(QDataStream &ts);
85  void handlePixmap(QDataStream &ts, quint16 opCode);
86  void handleQuickTime(QDataStream &ts, quint16 opCode);
87  void handleComment(QDataStream &ts, bool longComment);
88  QRect readRect(QDataStream &ts);
89  QByteArray decodeRLE(QByteArray &in, quint16 bytesPerLine, int twoByte);
90  void setFillPattern(PageItem* ite);
91  void handleLineModeEnd();
92  void finishItem(PageItem* ite);
93 
94  QList<PageItem*> Elements;
95  int currentItemNr;
96  QStack<QList<PageItem*> > groupStack;
97  ColorList CustColors;
98  double baseX, baseY;
99  double offsetX, offsetY;
100  double docWidth;
101  double docHeight;
102  double resX, resY;
103 
104  double LineW;
105  QString CurrColorFill;
106  QColor backColor;
107  QString CurrColorStroke;
108  QColor foreColor;
109  double CurrStrokeShade;
110  double CurrFillShade;
111  bool patternMode;
112  QByteArray patternData;
113  QMap<QString, QString> patternMap;
114  QRect currRect;
115  int currRectItemNr;
116  int currRectType;
117  QRect lastImageRect;
118  QStringList importedColors;
119  QStringList importedPatterns;
120  QPoint ovalSize;
121  QMap<int, QString> fontMap;
122  int currentTextSize;
123  int currentFontID;
124  int currentFontStyle;
125  FPointArray lastCoords;
126  QByteArray imageData;
127 
128  FPointArray Coords;
129  QPoint currentPoint;
130  QPoint currentPointT;
131  bool lineMode;
132  bool postscriptMode;
133  bool textIsPostScript;
134  bool interactive;
135  MultiProgressDialog * progressDialog;
136  bool cancel;
137  ScribusDoc* m_Doc;
138  Selection* tmpSel;
139  int importerFlags;
140  int oldDocItemCount;
141  QString baseFile;
142  int pctVersion;
143  bool skipOpcode;
144 
145 public slots:
146  void cancelRequested() { cancel = true; }
147 };
148 
149 #endif
Definition: sccolor.h:155
PctPlug(ScribusDoc *doc, int flags)
Create the Pct importer window.
Definition: importpct.cpp:56
the Document Class
Definition: scribusdoc.h:90
Definition: undomanager.h:52
Pct (Mac Pict) importer plugin.
Definition: importpct.h:29
Definition: pageitem.h:92
Definition: fpointarray.h:42
Definition: selection.h:34