diff options
Diffstat (limited to 'src/declarative/canvas/qsimplecanvasitem.cpp')
-rw-r--r-- | src/declarative/canvas/qsimplecanvasitem.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/declarative/canvas/qsimplecanvasitem.cpp b/src/declarative/canvas/qsimplecanvasitem.cpp index 12c725c..7451a5f 100644 --- a/src/declarative/canvas/qsimplecanvasitem.cpp +++ b/src/declarative/canvas/qsimplecanvasitem.cpp @@ -50,8 +50,9 @@ QT_BEGIN_NAMESPACE QSimpleCanvasItemData::QSimpleCanvasItemData() : buttons(Qt::NoButton), flip(QSimpleCanvasItem::NoFlip), - dirty(false), transformValid(true), x(0), y(0), z(0), visible(1), - transformUser(0), activeOpacity(1) + dirty(false), transformValid(true), doNotPaint(false), + doNotPaintChildren(false), x(0), y(0), z(0), + visible(1), transformUser(0), transformVersion(0), activeOpacity(1) { } @@ -180,10 +181,18 @@ void QSimpleCanvasItem::childrenChanged() { } +void QSimpleCanvasItem::setPaintMargin(qreal margin) +{ + Q_D(QSimpleCanvasItem); + if (margin < d->paintmargin) + update(); // schedule repaint of old boundingRect + d->paintmargin = margin; +} + QRectF QSimpleCanvasItem::boundingRect() const { Q_D(const QSimpleCanvasItem); - return QRectF(0., 0., d->width, d->height); + return QRectF(-d->paintmargin, -d->paintmargin, d->width+d->paintmargin*2, d->height+d->paintmargin*2); } void QSimpleCanvasItem::paintContents(QPainter &) @@ -934,8 +943,6 @@ QRectF QSimpleCanvasItem::mapToScene(const QRectF &r) const } } -int QSimpleCanvasItemPrivate::nextTransformVersion = 1; - void QSimpleCanvasItemPrivate::freshenTransforms() const { if (freshenNeeded()) @@ -1506,11 +1513,8 @@ void QSimpleCanvasItemPrivate::convertToGraphicsItem(QGraphicsItem *parent) q->setClipType(clip); - for (int ii = 0; ii < children.count(); ++ii) { + for (int ii = 0; ii < children.count(); ++ii) static_cast<QSimpleCanvasItemPrivate*>(children.at(ii)->d_ptr)->convertToGraphicsItem(graphicsItem); - if (children.at(ii)->z() == 0) - children.at(ii)->setZ(ii); - } } /*! @@ -1848,12 +1852,12 @@ QSimpleCanvasItem *QSimpleCanvasItem::findNextFocus(QSimpleCanvasItem *item) return 0; } -QImage QSimpleCanvasItem::string(const QString &str, const QColor &c, const QFont &f) +QPixmap QSimpleCanvasItem::string(const QString &str, const QColor &c, const QFont &f) { QFontMetrics fm(f); QSize size(fm.width(str), fm.height()*(str.count(QLatin1Char('\n'))+1)); //fm.boundingRect(str).size(); - QImage img(size, QImage::Format_ARGB32_Premultiplied); - img.fill(0); + QPixmap img(size); + img.fill(Qt::transparent); QPainter p(&img); p.setPen(c); p.setFont(f); |