16class QPreviewPaintEnginePrivate :
public QPaintEnginePrivate
18 Q_DECLARE_PUBLIC(QPreviewPaintEngine)
20 QPreviewPaintEnginePrivate() : state(QPrinter::Idle) {}
21 ~QPreviewPaintEnginePrivate() {}
23 QList<
const QPicture *> pages;
26 QPrinter::PrinterState state;
28 QPaintEngine *proxy_paint_engine;
29 QPrintEngine *proxy_print_engine;
48bool QPreviewPaintEngine::begin(QPaintDevice *)
50 Q_D(QPreviewPaintEngine);
55 QPicture *page =
new QPicture;
56 page->d_func()->in_memory_only =
true;
57 d->painter =
new QPainter(page);
58 d->engine = d->painter->paintEngine();
59 *d->painter->d_func()->state = *painter()->d_func()->state;
60 d->pages.append(page);
61 d->state = QPrinter::Active;
88void QPreviewPaintEngine::drawPolygon(
const QPointF *points,
int pointCount, PolygonDrawMode mode)
90 Q_D(QPreviewPaintEngine);
91 d->engine->drawPolygon(points, pointCount, mode);
112bool QPreviewPaintEngine::newPage()
114 Q_D(QPreviewPaintEngine);
116 QPicture *page =
new QPicture;
117 page->d_func()->in_memory_only =
true;
118 QPainter *tmp_painter =
new QPainter(page);
119 QPaintEngine *tmp_engine = tmp_painter->paintEngine();
122 Q_ASSERT(painter()->d_func()->state && tmp_painter->d_func()->state);
123 *tmp_painter->d_func()->state = *painter()->d_func()->state;
127 tmp_engine->setDirty(DirtyFlags(AllDirty & ~DirtyCompositionMode));
128 tmp_engine->syncState();
131 d->painter = tmp_painter;
132 d->pages.append(page);
133 d->engine = tmp_engine;
153void QPreviewPaintEngine::setProxyEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine)
155 Q_D(QPreviewPaintEngine);
156 d->proxy_print_engine = printEngine;
157 d->proxy_paint_engine = paintEngine;