15class QPreviewPaintEnginePrivate :
public QPaintEnginePrivate
17 Q_DECLARE_PUBLIC(QPreviewPaintEngine)
19 QPreviewPaintEnginePrivate() : state(QPrinter::Idle) {}
20 ~QPreviewPaintEnginePrivate() {}
22 QList<
const QPicture *> pages;
25 QPrinter::PrinterState state;
27 QPaintEngine *proxy_paint_engine;
28 QPrintEngine *proxy_print_engine;
47bool QPreviewPaintEngine::begin(QPaintDevice *)
49 Q_D(QPreviewPaintEngine);
54 QPicture *page =
new QPicture;
55 page->d_func()->in_memory_only =
true;
56 d->painter =
new QPainter(page);
57 d->engine = d->painter->paintEngine();
58 *d->painter->d_func()->state = *painter()->d_func()->state;
59 d->pages.append(page);
60 d->state = QPrinter::Active;
87void QPreviewPaintEngine::drawPolygon(
const QPointF *points,
int pointCount, PolygonDrawMode mode)
89 Q_D(QPreviewPaintEngine);
90 d->engine->drawPolygon(points, pointCount, mode);
111bool QPreviewPaintEngine::newPage()
113 Q_D(QPreviewPaintEngine);
115 QPicture *page =
new QPicture;
116 page->d_func()->in_memory_only =
true;
117 QPainter *tmp_painter =
new QPainter(page);
118 QPaintEngine *tmp_engine = tmp_painter->paintEngine();
121 Q_ASSERT(painter()->d_func()->state && tmp_painter->d_func()->state);
122 *tmp_painter->d_func()->state = *painter()->d_func()->state;
126 tmp_engine->setDirty(DirtyFlags(AllDirty & ~DirtyCompositionMode));
127 tmp_engine->syncState();
130 d->painter = tmp_painter;
131 d->pages.append(page);
132 d->engine = tmp_engine;
152void QPreviewPaintEngine::setProxyEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine)
154 Q_D(QPreviewPaintEngine);
155 d->proxy_print_engine = printEngine;
156 d->proxy_paint_engine = paintEngine;