17 #include "pluginapi.h"
20 #include "fpointarray.h"
21 #include "commonstrings.h"
31 class MultiProgressDialog;
41 penStyle(Qt::SolidLine),
43 penJoin(Qt::RoundJoin),
52 gradient(VGradient::linear),
61 penColor(CommonStrings::None),
62 brushColor(CommonStrings::None),
75 gradientPath.resize(0);
76 gradientPath.svgInit();
82 Qt::PenStyle penStyle;
83 Qt::PenCapStyle penCap;
84 Qt::PenJoinStyle penJoin;
86 QVector<double> dashArray;
90 QPointF gradientStart;
113 quint32 imagePixelFormat;
114 QByteArray imageData;
144 bool import(QString fn,
const TransactionSettings& trSettings,
int flags,
bool showProgress =
true);
145 QImage readThumbnail(QString fn);
148 void parseHeader(QString fName,
double &x,
double &y,
double &b,
double &h);
149 bool convert(QString fn);
152 void aligntoQuadWord(QDataStream &ds);
153 double convertDevice2Pts(
double in);
154 QPointF convertDevice2Pts(QPointF in);
155 double convertLogical2Pts(
double in);
156 QPointF convertLogical2Pts(QPointF in);
157 void createPatternFromDIB(QImage img, quint32 brID);
158 void getPolyInfo(QDataStream &ds, QRectF &bounds, quint32 &count);
159 FPointArray getPolyPoints(QDataStream &ds, quint32 count,
bool length,
bool closed);
160 QPointF getPoint(QDataStream &ds,
bool size);
161 quint32 getColor(QDataStream &ds);
162 void setWTransform(QTransform mm, quint32 how);
163 QPointF intersectBoundingRect(
PageItem *item, QLineF gradientVector);
164 void finishItem(
PageItem* ite,
bool fill =
true);
165 void invalidateClipGroup();
166 void createClipGroup();
168 void handleComment(QDataStream &ds);
169 void handleEllipse(QDataStream &ds);
170 void handleRectangle(QDataStream &ds);
171 void handleRoundRect(QDataStream &ds);
172 void handlePolyBezierTo(QDataStream &ds,
bool size);
173 void handlePolylineTo(QDataStream &ds,
bool size);
174 void handleLineTo(QDataStream &ds);
175 void handleArc(QDataStream &ds);
176 void handleArcTo(QDataStream &ds);
177 void handleChord(QDataStream &ds);
178 void handlePie(QDataStream &ds);
179 void handleSmallText(QDataStream &ds);
180 void handleText(QDataStream &ds, qint64 posi,
bool size);
181 void handleImage(qint32 dstX, qint32 dstY, qint32 dstW, qint32 dstH, QImage img);
182 void handlePatternFill(qint32 dstX, qint32 dstY, qint32 dstW, qint32 dstH);
183 QImage handleDIB(QDataStream &ds, qint64 filePos, quint32 offBitH, quint32 sizeBitH, quint32 offBits, quint32 sizeBits);
184 void handleBezier(QDataStream &ds,
bool size);
185 void handlePolygon(QDataStream &ds,
bool size,
bool fill);
186 void handlePolyPolygon(QDataStream &ds,
bool size,
bool fill);
187 void handlePenDef(quint32 penID, quint32 penStyle, quint32 penWidth, quint32 penColor);
188 QString handleColor(QColor col);
189 void handleFillRegion(QDataStream &ds);
190 void handleFrameRegion(QDataStream &ds);
191 void handleSetClipRegion(QDataStream &ds);
193 void handleEMFPlus(QDataStream &ds, quint32 dtaSize);
194 void handleEMPObject(QDataStream &ds, quint8 flagsH, quint8 flagsL, quint32 dataSize);
195 quint32 handleEMPBrush(QDataStream &ds, quint16
id,
bool first,
bool cont, quint32 dataSize);
196 void handleEMPPen(QDataStream &ds, quint16
id);
197 void handleEMPPath(QDataStream &ds, quint16
id);
198 void handleEMPRegion(QDataStream &ds, quint16
id);
199 quint32 handleEMPImage(QDataStream &ds, quint16
id,
bool first,
bool cont, quint32 dataSize);
200 quint32 getImageData(QDataStream &ds, quint16
id,
bool first,
bool cont, quint32 dataSize,
emfStyle &sty);
201 void handleEMPFont(QDataStream &ds, quint16
id);
202 void handleEMPSFormat(QDataStream &ds, quint16
id);
203 void handleEMPLineCap(QDataStream &ds, quint16
id);
204 void handleEMFPFillClosedCurve(QDataStream &ds, quint8 flagsL);
205 void handleEMFPFillEllipse(QDataStream &ds, quint8 flagsL);
206 void handleEMFPFillPath(QDataStream &ds, quint8 flagsL, quint8 flagsH);
207 void handleEMFPFillPie(QDataStream &ds, quint8 flagsL);
208 void handleEMFPFillPolygon(QDataStream &ds, quint8 flagsL);
209 void handleEMFPFillRects(QDataStream &ds, quint8 flagsL);
210 void handleEMFPFillRegion(QDataStream &ds, quint8 flagsL, quint8 flagsH);
211 void handleEMFPDrawArc(QDataStream &ds, quint8 flagsL, quint8 flagsH);
212 void handleEMFPDrawBezier(QDataStream &ds, quint8 flagsL, quint8 flagsH);
213 void handleEMFPDrawClosedCurve(QDataStream &ds, quint8 flagsL, quint8 flagsH);
214 void handleEMFPDrawCurve(QDataStream &ds, quint8 flagsL, quint8 flagsH);
215 void handleEMFPDrawEllipse(QDataStream &ds, quint8 flagsL, quint8 flagsH);
216 void handleEMFPDrawImage(QDataStream &ds, quint8 flagsL, quint8 flagsH);
217 void handleEMFPDrawImagePoints(QDataStream &ds, quint8 flagsL, quint8 flagsH);
218 void handleEMFPDrawLines(QDataStream &ds, quint8 flagsL, quint8 flagsH);
219 void handleEMFPDrawPath(QDataStream &ds, quint8 flagsH);
220 void handleEMFPDrawPie(QDataStream &ds, quint8 flagsL, quint8 flagsH);
221 void handleEMFPDrawRects(QDataStream &ds, quint8 flagsL, quint8 flagsH);
222 void handleEMFPDrawDriverString(QDataStream &ds, quint8 flagsL, quint8 flagsH);
223 void handleEMFPDrawString(QDataStream &ds, quint8 flagsL, quint8 flagsH);
224 void handleEMFPSetClipRect(QDataStream &ds, quint8 flagsL);
225 void handleEMFPSetClipRegion(QDataStream &ds, quint8 flagsL, quint8 flagsH);
226 void handleEMFPSetClipPath(QDataStream &ds, quint8 flagsL, quint8 flagsH);
227 void handleEMFPSerializableObject(QDataStream &ds);
228 void getEMFPBrush(quint32 brushID,
bool directBrush);
229 void getEMFPPen(quint32 penID);
230 void getEMFPFont(quint32 fontID);
231 void getEMFPStringFormat(quint32 fontID);
233 QPolygonF getEMFPCurvePoints(QDataStream &ds, quint8 flagsL, quint32 count);
234 QPolygonF getEMFPRect(QDataStream &ds,
bool size);
235 QPointF getEMFPPoint(QDataStream &ds,
bool size);
236 double getEMFPDistance(QDataStream &ds,
bool size);
237 QPointF convertEMFPLogical2Pts(QPointF in, quint16 unit);
238 double convertEMFPLogical2Pts(
double in, quint16 unit);
239 QPolygonF gdip_open_curve_tangents(QPolygonF &points,
double tension);
240 QPolygonF gdip_closed_curve_tangents(QPolygonF &points,
double tension);
241 void append_curve(QPainterPath &path, QPolygonF &points, QPolygonF &tangents,
bool type);
242 void GdipAddPathCurve(QPainterPath &path, QPolygonF &points,
float tension);
243 void GdipAddPathClosedCurve(QPainterPath &path, QPolygonF &points,
float tension);
244 void handleEMFPDrawImageData(QPointF p1, QPointF p2, QPointF p3, quint8 flagsH);
245 QImage getImageDataFromStyle(quint8 flagsH);
250 quint32 textAlignment;
253 QPointF gradientStart;
255 double gradientAngle;
257 QTransform m_WorldMap;
258 QTransform m_WorldMapEMFP;
264 QVector<double> dashArray;
266 Qt::PenStyle penStyle;
267 Qt::PenCapStyle penCap;
268 Qt::PenJoinStyle penJoin;
269 QString CurrColorFill;
270 QString CurrColorStroke;
271 QString CurrColorText;
278 double CurrStrokeTrans;
279 double CurrFillTrans;
285 QPointF currentPoint;
293 QStack<dcState> dcStack;
294 QHash<quint32, dcState> dcStackEMP;
296 QHash<quint32, emfStyle> emfStyleMap;
297 QHash<quint32, emfStyle> emfStyleMapEMP;
298 QList<PageItem*> Elements;
307 quint32 EmfPdpiX, EmfPdpiY;
310 qint32 viewPextendX, viewPextendY;
311 qint32 winPextendX, winPextendY;
312 qint32 winOrigX, winOrigY;
315 QStringList importedColors;
316 QStringList importedPatterns;
318 MultiProgressDialog * progressDialog;
329 bool SerializableObject_Valid;
330 QList<ImageEffect> m_Effects;
332 quint32 m_currObjSize;
335 void cancelRequested() { cancel =
true; }
Definition: importemf.h:36
Definition: vgradient.h:78
EmfPlug(ScribusDoc *doc, int flags)
Create the EMF importer window.
Definition: importemf.cpp:430
the Document Class
Definition: scribusdoc.h:90
Definition: importemf.h:117
Definition: undomanager.h:52
Definition: pageitem.h:92
Definition: fpointarray.h:42
Definition: selection.h:34