QRegion: deprecate rects()

It was superseded by begin()/end() in Qt 5.8.

The eventual removal of rects() will allow greater flexibility
in the implementation's choice of data structure (std::vector,
e.g., or QVarLengthArray).

Remove all traces of rects() from the documentation. This means
we need to copy information previously contained in the rects()
docs to functions which previously just referred to rects(), in
particular the begin()/end() familiy of functions.

Change-Id: I90809809783252f7c552f24b4841f1e965580284
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
This commit is contained in:
Marc Mutz 2017-11-29 20:06:30 +01:00
parent f33a1f574a
commit 48230dc882
2 changed files with 38 additions and 16 deletions

View File

@ -81,8 +81,9 @@ QT_BEGIN_NAMESPACE
contains() a QPoint or QRect. The bounding rectangle can be found contains() a QPoint or QRect. The bounding rectangle can be found
with boundingRect(). with boundingRect().
Iteration over the region (with begin(), end()) gives a decomposition of Iteration over the region (with begin(), end(), or C++11
the region into rectangles. The same sequence of rectangles is returned by rects(). ranged-for loops) gives a decomposition of the region into
rectangles.
Example of using complex regions: Example of using complex regions:
\snippet code/src_gui_painting_qregion.cpp 0 \snippet code/src_gui_painting_qregion.cpp 0
@ -755,7 +756,8 @@ QRegion QRegion::intersect(const QRect &r) const
\fn int QRegion::rectCount() const \fn int QRegion::rectCount() const
\since 4.6 \since 4.6
Returns the number of rectangles that will be returned in rects(). Returns the number of rectangles that this region is composed of.
Same as \c{end() - begin()}.
*/ */
/*! /*!
@ -917,20 +919,28 @@ QRegion QRegion::intersect(const QRect &r) const
gives a rectangle that is QRect::isNull(). gives a rectangle that is QRect::isNull().
*/ */
#if QT_DEPRECATED_SINCE(5, 11)
/*! /*!
\fn QVector<QRect> QRegion::rects() const \fn QVector<QRect> QRegion::rects() const
\obsolete
Use begin() and end() instead.
Returns an array of non-overlapping rectangles that make up the Returns an array of non-overlapping rectangles that make up the
region. region.
The union of all the rectangles is equal to the original region. The union of all the rectangles is equal to the original region.
*/ */
#endif
/*! /*!
\typedef QRegion::const_iterator \typedef QRegion::const_iterator
\since 5.8 \since 5.8
An iterator over the QRects that make up the region. An iterator over the non-overlapping rectangles that make up the
region.
The union of all the rectangles is equal to the original region.
QRegion does not offer mutable iterators. QRegion does not offer mutable iterators.
@ -941,7 +951,10 @@ QRegion QRegion::intersect(const QRect &r) const
\typedef QRegion::const_reverse_iterator \typedef QRegion::const_reverse_iterator
\since 5.8 \since 5.8
A reverse iterator over the QRects that make up the region. A reverse iterator over the non-overlapping rectangles that make up the
region.
The union of all the rectangles is equal to the original region.
QRegion does not offer mutable iterators. QRegion does not offer mutable iterators.
@ -953,8 +966,9 @@ QRegion QRegion::intersect(const QRect &r) const
\since 5.8 \since 5.8
Returns a const_iterator pointing to the beginning of the range of Returns a const_iterator pointing to the beginning of the range of
rectangles that make up this range, in the order in which rects() non-overlapping rectangles that make up the region.
returns them.
The union of all the rectangles is equal to the original region.
\sa rbegin(), cbegin(), end() \sa rbegin(), cbegin(), end()
*/ */
@ -970,9 +984,10 @@ QRegion QRegion::intersect(const QRect &r) const
\fn QRegion::end() const \fn QRegion::end() const
\since 5.8 \since 5.8
Returns a const_iterator pointing to one past the end of the range of Returns a const_iterator pointing to one past the end of
rectangles that make up this range, in the order in which rects() non-overlapping rectangles that make up the region.
returns them.
The union of all the rectangles is equal to the original region.
\sa rend(), cend(), begin() \sa rend(), cend(), begin()
*/ */
@ -988,9 +1003,10 @@ QRegion QRegion::intersect(const QRect &r) const
\fn QRegion::rbegin() const \fn QRegion::rbegin() const
\since 5.8 \since 5.8
Returns a const_reverse_iterator pointing to the beginning of the range of Returns a const_reverse_iterator pointing to the beginning of the
rectangles that make up this range, in the reverse order in which rects() range of non-overlapping rectangles that make up the region.
returns them.
The union of all the rectangles is equal to the original region.
\sa begin(), crbegin(), rend() \sa begin(), crbegin(), rend()
*/ */
@ -1006,9 +1022,10 @@ QRegion QRegion::intersect(const QRect &r) const
\fn QRegion::rend() const \fn QRegion::rend() const
\since 5.8 \since 5.8
Returns a const_reverse_iterator pointing to one past the end of the range of Returns a const_reverse_iterator pointing to one past the end of
rectangles that make up this range, in the reverse order in which rects() the range of non-overlapping rectangles that make up the region.
returns them.
The union of all the rectangles is equal to the original region.
\sa end(), crend(), rbegin() \sa end(), crend(), rbegin()
*/ */
@ -4348,6 +4365,7 @@ bool qt_region_strictContains(const QRegion &region, const QRect &rect)
&& rect.top() >= r1.top() && rect.bottom() <= r1.bottom()); && rect.top() >= r1.top() && rect.bottom() <= r1.bottom());
} }
#if QT_DEPRECATED_SINCE(5, 11)
QVector<QRect> QRegion::rects() const QVector<QRect> QRegion::rects() const
{ {
if (d->qt_rgn) { if (d->qt_rgn) {
@ -4359,6 +4377,7 @@ QVector<QRect> QRegion::rects() const
return QVector<QRect>(); return QVector<QRect>();
} }
} }
#endif
QRegion::const_iterator QRegion::begin() const Q_DECL_NOTHROW QRegion::const_iterator QRegion::begin() const Q_DECL_NOTHROW
{ {

View File

@ -122,7 +122,10 @@ public:
bool intersects(const QRect &r) const; bool intersects(const QRect &r) const;
QRect boundingRect() const Q_DECL_NOTHROW; QRect boundingRect() const Q_DECL_NOTHROW;
#if QT_DEPRECATED_SINCE(5, 11)
QT_DEPRECATED_X("Use begin()/end() instead")
QVector<QRect> rects() const; QVector<QRect> rects() const;
#endif
void setRects(const QRect *rect, int num); void setRects(const QRect *rect, int num);
int rectCount() const Q_DECL_NOTHROW; int rectCount() const Q_DECL_NOTHROW;
#ifdef Q_COMPILER_MANGLES_RETURN_TYPE #ifdef Q_COMPILER_MANGLES_RETURN_TYPE