not using the deprecated QQuickItem::boundingRect anymore

This commit is contained in:
Uwe Rathmann 2018-02-07 19:30:34 +01:00
parent 38ed90b659
commit 217c722e71
8 changed files with 39 additions and 10 deletions

View File

@ -42,6 +42,18 @@ static inline void qskSendEventTo( QObject* object, QEvent::Type type )
QCoreApplication::sendEvent( object, &event );
}
QRectF qskItemRect( const QQuickItem* item )
{
auto d = QQuickItemPrivate::get( item );
return QRectF( 0, 0, d->width, d->height );
}
QRectF qskItemGeometry( const QQuickItem* item )
{
auto d = QQuickItemPrivate::get( item );
return QRectF( d->x, d->y, d->width, d->height );
}
bool qskIsItemComplete( const QQuickItem* item )
{
return QQuickItemPrivate::get( item )->componentComplete;
@ -532,6 +544,12 @@ void QskControl::setGeometry( qreal x, qreal y, qreal width, qreal height )
}
}
QRectF QskControl::rect() const
{
Q_D( const QskControl );
return QRectF( 0, 0, d->width, d->height );
}
QRectF QskControl::geometry() const
{
Q_D( const QskControl );
@ -887,7 +905,7 @@ QMarginsF QskControl::margins() const
QRectF QskControl::contentsRect() const
{
const QRectF r = boundingRect();
const QRectF r = rect();
const auto m = margins();
qreal left = r.left() + m.left();
@ -1476,7 +1494,7 @@ QRectF QskControl::layoutRect() const
QRectF QskControl::gestureRect() const
{
return boundingRect();
return rect();
}
QRectF QskControl::focusIndicatorRect() const

View File

@ -64,6 +64,8 @@ class QSK_EXPORT QskControl : public QQuickItem, public QskResizable, public Qsk
Q_PROPERTY( QSizeF maximumSize READ maximumSize WRITE setMaximumSize )
Q_PROPERTY( QSizeF preferredSize READ preferredSize WRITE setPreferredSize )
Q_PROPERTY( QRectF geometry READ geometry WRITE setGeometry )
using Inherited = QQuickItem;
public:
@ -103,6 +105,8 @@ public:
QskGradient background() const;
QRectF geometry() const;
QRectF rect() const;
QRectF contentsRect() const;
virtual QRectF layoutRect() const;
@ -205,6 +209,9 @@ protected:
virtual void updateLayout(); // called in updatePolish
private:
// don't use boundingRect - it seems to be deprecated
virtual QRectF boundingRect() const override final { return rect(); }
void setActiveFocusOnTab( bool ) = delete; // use setFocusPolicy instead
virtual QSGNode* updatePaintNode( QSGNode*, UpdatePaintNodeData* ) override final;
@ -246,6 +253,8 @@ QSK_EXPORT bool qskIsAncestorOf( const QQuickItem* item, const QQuickItem *child
QSK_EXPORT bool qskIsTransparentForPositioner( const QQuickItem* );
QSK_EXPORT bool qskIsTabFence( const QQuickItem* );
QSK_EXPORT bool qskIsShortcutScope( const QQuickItem* );
QSK_EXPORT QRectF qskItemRect( const QQuickItem* );
QSK_EXPORT QRectF qskItemGeometry( const QQuickItem* );
QSK_EXPORT QQuickItem* qskNearestFocusScope( const QQuickItem* );
QSK_EXPORT QList<QQuickItem *> qskPaintOrderChildItems( const QQuickItem* );

View File

@ -21,7 +21,7 @@ static inline QRectF qskFocusIndicatorRect( const QQuickItem* item )
if ( v.canConvert( QMetaType::QRectF ) )
return v.toRectF();
return item->boundingRect();
return qskItemRect( item );
}
class QskFocusIndicator::PrivateData

View File

@ -21,7 +21,7 @@ QRectF QskFocusIndicatorSkinlet::subControlRect(
if ( subControl == QskFocusIndicator::Panel )
{
return indicator->boundingRect();
return indicator->rect();
}
return Inherited::subControlRect( skinnable, subControl );

View File

@ -532,9 +532,11 @@ void QskInputPanel::setCandidateOffset( int candidateOffset )
QRectF QskInputPanel::keyboardRect() const
{
auto keyboardRect = boundingRect(); // ### margins? would eliminate this thing below
auto keyboardRect = rect(); // ### margins? would eliminate this thing below
if ( QskDialog::instance()->policy() != QskDialog::TopLevelWindow )
keyboardRect.adjust( 0, keyboardRect.height() * 0.5, 0, 0 );
return keyboardRect;
}

View File

@ -127,7 +127,7 @@ namespace
}
QQuickItem* popup = parentItem();
doSwallow = !popup->boundingRect().contains(
doSwallow = !qskItemRect( popup ).contains(
popup->mapFromItem( this, pos ) );
break;
@ -152,7 +152,7 @@ namespace
if ( QskPopup* popup = qobject_cast< QskPopup* >( parentItem() ) )
{
const QRectF r = popup->overlayRect();
if ( r != boundingRect() )
if ( r != qskItemGeometry( this ) )
{
setPosition( r.topLeft() );
setSize( r.size() );

View File

@ -213,7 +213,7 @@ void QskSkinlet::updateNode( QskSkinnable* skinnable, QSGNode* parentNode ) cons
QSGNode* QskSkinlet::updateBackgroundNode(
const QskControl* control, QSGNode* node ) const
{
const QRectF rect = control->boundingRect();
const QRectF rect = control->rect();
if ( rect.isEmpty() )
return nullptr;
@ -261,7 +261,7 @@ QSGNode* QskSkinlet::updateDebugNode(
rectNode->setColor( color );
}
const QRectF r = control->boundingRect();
const QRectF r = control->rect();
if ( rectNode->rect() != r )
rectNode->setRect( r );

View File

@ -156,7 +156,7 @@ void QskLayoutItem::setGeometry( const QRectF& rect )
if( m_updateMode == UpdateNone )
{
if ( !m_isGeometryDirty )
m_isGeometryDirty = ( rect != m_item->boundingRect() );
m_isGeometryDirty = ( rect != qskItemGeometry( m_item ) );
return;
}