micro optimzation
This commit is contained in:
parent
9b4cc90063
commit
a8f888ca08
|
@ -156,19 +156,13 @@ QskQuickItem::QskQuickItem( QskQuickItemPrivate& dd, QQuickItem* parent )
|
||||||
{
|
{
|
||||||
setFlag( QQuickItem::ItemHasContents, true );
|
setFlag( QQuickItem::ItemHasContents, true );
|
||||||
|
|
||||||
// since Qt 5.10 we have QQuickItem::ItemEnabledHasChanged
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK( 5, 10, 0 )
|
#if QT_VERSION < QT_VERSION_CHECK( 5, 10, 0 )
|
||||||
/*
|
// since Qt 5.10 we have QQuickItem::ItemEnabledHasChanged
|
||||||
Setting up this connections slows down the time needed
|
|
||||||
for construction by almost 100%. Would be nice to
|
|
||||||
avoid this penalty also for earlier Qt versions.
|
|
||||||
*/
|
|
||||||
connect( this, &QQuickItem::enabledChanged,
|
connect( this, &QQuickItem::enabledChanged,
|
||||||
[ this ] { qskSendEventTo( this, QEvent::EnabledChange ); } );
|
this, &QskQuickItem::sendEnabledChangeEvent );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Q_D( QskQuickItem );
|
if ( dd.controlFlags & QskQuickItem::DeferredUpdate )
|
||||||
if ( d->controlFlags & QskQuickItem::DeferredUpdate )
|
|
||||||
qskFilterWindow( window() );
|
qskFilterWindow( window() );
|
||||||
|
|
||||||
qskRegistry->insert( this );
|
qskRegistry->insert( this );
|
||||||
|
@ -187,7 +181,8 @@ QskQuickItem::~QskQuickItem()
|
||||||
qskRegistry->remove( this );
|
qskRegistry->remove( this );
|
||||||
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK( 5, 10, 0 )
|
#if QT_VERSION < QT_VERSION_CHECK( 5, 10, 0 )
|
||||||
disconnect( this, &QQuickItem::enabledChanged, nullptr, nullptr );
|
disconnect( this, &QQuickItem::enabledChanged,
|
||||||
|
this, &QskQuickItem::sendEnabledChangeEvent );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -586,6 +581,11 @@ void QskQuickItem::resetImplicitSize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QskQuickItem::sendEnabledChangeEvent()
|
||||||
|
{
|
||||||
|
qskSendEventTo( this, QEvent::EnabledChange );
|
||||||
|
}
|
||||||
|
|
||||||
bool QskQuickItem::event( QEvent* event )
|
bool QskQuickItem::event( QEvent* event )
|
||||||
{
|
{
|
||||||
const int eventType = event->type();
|
const int eventType = event->type();
|
||||||
|
@ -698,7 +698,7 @@ void QskQuickItem::itemChange( QQuickItem::ItemChange change,
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 10, 0 )
|
#if QT_VERSION >= QT_VERSION_CHECK( 5, 10, 0 )
|
||||||
case QQuickItem::ItemEnabledHasChanged:
|
case QQuickItem::ItemEnabledHasChanged:
|
||||||
{
|
{
|
||||||
qskSendEventTo( this, QEvent::EnabledChange );
|
sendEnabledChangeEvent();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -132,6 +132,7 @@ class QSK_EXPORT QskQuickItem : public QQuickItem
|
||||||
void childrenRect() = delete;
|
void childrenRect() = delete;
|
||||||
|
|
||||||
void updateControlFlag( uint flag, bool on );
|
void updateControlFlag( uint flag, bool on );
|
||||||
|
void sendEnabledChangeEvent();
|
||||||
|
|
||||||
QSGNode* updatePaintNode( QSGNode*, UpdatePaintNodeData* ) override final;
|
QSGNode* updatePaintNode( QSGNode*, UpdatePaintNodeData* ) override final;
|
||||||
virtual QSGNode* updateItemPaintNode( QSGNode* );
|
virtual QSGNode* updateItemPaintNode( QSGNode* );
|
||||||
|
|
Loading…
Reference in New Issue