QWidget::grab: Add a default value for the QRect parameter.

The documentation is misleading in that a default-constructed
rectangle that has size = 0 causes the entire widget to be
painted; this happens only if the one of the size values is
 < 0.

Add a default value such that size < 0 and the entire widget is
painted based on the rationale that a size = 0 might be the result
of some calculation and it would be unexpected to get a pixmap
containing the entire widget in that case.

Change-Id: I2a5fb38cd407b4b64348213101d8196b2c40ad9a
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
This commit is contained in:
Friedemann Kleint 2012-05-25 15:51:39 +02:00 committed by Qt by Nokia
parent 65a264c4a1
commit a09c20f19b
2 changed files with 3 additions and 5 deletions

View File

@ -4765,10 +4765,8 @@ static void sendResizeEvents(QWidget *target)
given \a rectangle. If the \a widget has any children, then given \a rectangle. If the \a widget has any children, then
they are also painted in the appropriate positions. they are also painted in the appropriate positions.
If no rectangle is specified (the default) the entire widget is If a rectangle with an invalid size is specified (the default),
painted. the entire widget is painted.
Replacement for Qt 4's QPixmap::grabWidget().
\sa render(), QPixmap \sa render(), QPixmap
*/ */

View File

@ -351,7 +351,7 @@ public:
const QRegion &sourceRegion = QRegion(), const QRegion &sourceRegion = QRegion(),
RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren)); RenderFlags renderFlags = RenderFlags(DrawWindowBackground | DrawChildren));
Q_INVOKABLE QPixmap grab(const QRect &rectangle); Q_INVOKABLE QPixmap grab(const QRect &rectangle = QRect(QPoint(0, 0), QSize(-1, -1)));
#ifndef QT_NO_GRAPHICSEFFECT #ifndef QT_NO_GRAPHICSEFFECT
QGraphicsEffect *graphicsEffect() const; QGraphicsEffect *graphicsEffect() const;