Ignore:
Timestamp:
May 5, 2011, 5:36:53 AM (14 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/src/gui/painting/qemulationpaintengine.cpp

    r651 r846  
    11/****************************************************************************
    22**
    3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
     3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
    44** All rights reserved.
    55** Contact: Nokia Corporation (qt-info@nokia.com)
     
    173173        fillBGRect(rect);
    174174    }
     175
     176    QPainterState *s = state();
     177    Qt::BrushStyle style = qbrush_style(s->pen.brush());
     178    if (style >= Qt::LinearGradientPattern && style <= Qt::ConicalGradientPattern)
     179    {
     180        QPen savedPen = s->pen;
     181        QGradient g = *s->pen.brush().gradient();
     182
     183        if (g.coordinateMode() > QGradient::LogicalMode) {
     184            QTransform mat = s->pen.brush().transform();
     185            if (g.coordinateMode() == QGradient::StretchToDeviceMode) {
     186                mat.scale(real_engine->painter()->device()->width(), real_engine->painter()->device()->height());
     187            } else if (g.coordinateMode() == QGradient::ObjectBoundingMode) {
     188                const QTextItemInt &ti = static_cast<const QTextItemInt &>(textItem);
     189                QRectF r(p.x(), p.y() - ti.ascent.toReal(), ti.width.toReal(), (ti.ascent + ti.descent + 1).toReal());
     190                mat.translate(r.x(), r.y());
     191                mat.scale(r.width(), r.height());
     192            }
     193            g.setCoordinateMode(QGradient::LogicalMode);
     194            QBrush brush(g);
     195            brush.setTransform(mat);
     196            s->pen.setBrush(brush);
     197            penChanged();
     198            real_engine->drawTextItem(p, textItem);
     199            s->pen = savedPen;
     200            penChanged();
     201            return;
     202        }
     203    }
     204
    175205    real_engine->drawTextItem(p, textItem);
     206}
     207
     208void QEmulationPaintEngine::drawStaticTextItem(QStaticTextItem *item)
     209{
     210    real_engine->drawStaticTextItem(item);
    176211}
    177212
     
    234269}
    235270
     271void QEmulationPaintEngine::beginNativePainting()
     272{
     273    real_engine->beginNativePainting();
     274}
     275
     276void QEmulationPaintEngine::endNativePainting()
     277{
     278    real_engine->endNativePainting();
     279}
    236280
    237281void QEmulationPaintEngine::fillBGRect(const QRectF &r)
Note: See TracChangeset for help on using the changeset viewer.