src/gui/painting/qregion.cpp
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
equal deleted inserted replaced
27:93b982ccede2 31:5daf16870df6
   702                 return true;
   702                 return true;
   703     return false;
   703     return false;
   704 }
   704 }
   705 
   705 
   706 /*!
   706 /*!
       
   707     \fn bool QRegion::intersects(const QRect &rect) const
   707     \since 4.2
   708     \since 4.2
   708 
   709 
   709     Returns true if this region intersects with \a rect, otherwise
   710     Returns true if this region intersects with \a rect, otherwise
   710     returns false.
   711     returns false.
   711 */
   712 */
   712 bool QRegion::intersects(const QRect &rect) const
   713 
   713 {
       
   714     if (isEmpty() || rect.isNull())
       
   715         return false;
       
   716 
       
   717     const QRect r = rect.normalized();
       
   718     if (!rect_intersects(boundingRect(), r))
       
   719         return false;
       
   720     if (rectCount() == 1)
       
   721         return true;
       
   722 
       
   723     const QVector<QRect> myRects = rects();
       
   724     for (QVector<QRect>::const_iterator it = myRects.constBegin(); it < myRects.constEnd(); ++it)
       
   725         if (rect_intersects(r, *it))
       
   726             return true;
       
   727     return false;
       
   728 }
       
   729 
   714 
   730 #if !defined (Q_OS_UNIX) && !defined (Q_WS_WIN)
   715 #if !defined (Q_OS_UNIX) && !defined (Q_WS_WIN)
   731 /*!
   716 /*!
   732     \overload
   717     \overload
   733     \since 4.4
   718     \since 4.4
  4347         return true;
  4332         return true;
  4348     else
  4333     else
  4349         return EqualRegion(d->qt_rgn, r.d->qt_rgn);
  4334         return EqualRegion(d->qt_rgn, r.d->qt_rgn);
  4350 }
  4335 }
  4351 
  4336 
       
  4337 bool QRegion::intersects(const QRect &rect) const
       
  4338 {
       
  4339     if (isEmptyHelper(d->qt_rgn) || rect.isNull())
       
  4340         return false;
       
  4341 
       
  4342     const QRect r = rect.normalized();
       
  4343     if (!rect_intersects(d->qt_rgn->extents, r))
       
  4344         return false;
       
  4345     if (d->qt_rgn->numRects == 1)
       
  4346         return true;
       
  4347 
       
  4348     const QVector<QRect> myRects = rects();
       
  4349     for (QVector<QRect>::const_iterator it = myRects.constBegin(); it < myRects.constEnd(); ++it)
       
  4350         if (rect_intersects(r, *it))
       
  4351             return true;
       
  4352     return false;
       
  4353 }
       
  4354 
       
  4355 
  4352 #endif
  4356 #endif
  4353 QT_END_NAMESPACE
  4357 QT_END_NAMESPACE