void QPaintEngineEx::drawStaticTextItem(QStaticTextItem *staticTextItem) { QPainterPath path; #ifndef Q_WS_MAC path.setFillRule(Qt::WindingFill); #endif if (staticTextItem->numGlyphs == 0) return; QFontEngine *fontEngine = staticTextItem->fontEngine(); fontEngine->addGlyphsToPath(staticTextItem->glyphs, staticTextItem->glyphPositions, staticTextItem->numGlyphs, &path, 0); if (!path.isEmpty()) { QPainterState *s = state(); QPainter::RenderHints oldHints = s->renderHints; bool changedHints = false; if (bool(oldHints & QPainter::TextAntialiasing) && !bool(fontEngine->fontDef.styleStrategy & QFont::NoAntialias) && !bool(oldHints & QPainter::Antialiasing)) { s->renderHints |= QPainter::Antialiasing; renderHintsChanged(); changedHints = true; } fill(qtVectorPathForPath(path), s->pen.color()); if (changedHints) { s->renderHints = oldHints; renderHintsChanged(); } } }
WallpaperQml::WallpaperQml(QObject *parent, const QVariantList &args) : Plasma::Wallpaper(parent, args) , m_scene(new QGraphicsScene(this)) , m_item(0) , m_package(0) { m_engine = new QDeclarativeEngine(this); KDeclarative kdeclarative; kdeclarative.setDeclarativeEngine(m_engine); kdeclarative.initialize(); kdeclarative.setupBindings(); m_component = new QDeclarativeComponent(m_engine); connect(m_component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), SLOT(componentStatusChanged(QDeclarativeComponent::Status))); connect(this, SIGNAL(renderHintsChanged()), SLOT(resizeWallpaper())); connect(m_scene, SIGNAL(changed(QList<QRectF>)), SLOT(shouldRepaint(QList<QRectF>))); }
void QBlitterPaintEngine::setState(QPainterState *s) { Q_D(QBlitterPaintEngine); d->lock(); QPaintEngineEx::setState(s); d->raster->setState(s); clipEnabledChanged(); penChanged(); brushChanged(); brushOriginChanged(); opacityChanged(); compositionModeChanged(); renderHintsChanged(); transformChanged(); d->updateClip(); }