summaryrefslogtreecommitdiffstats
path: root/src/declarative/canvas/qsimplecanvasitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/declarative/canvas/qsimplecanvasitem.cpp')
-rw-r--r--src/declarative/canvas/qsimplecanvasitem.cpp28
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);