[Misc] several static methods from QskControl changed into qskXYZ
functions to avoid any conflicts with APIs that might be added to QQuickItem in future versions
This commit is contained in:
parent
b083479b21
commit
3837205847
@ -42,6 +42,73 @@ static inline void qskSendEventTo( QObject* object, QEvent::Type type )
|
|||||||
QCoreApplication::sendEvent( object, &event );
|
QCoreApplication::sendEvent( object, &event );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool qskIsAncestorOf( const QQuickItem* item, const QQuickItem* child )
|
||||||
|
{
|
||||||
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)
|
||||||
|
return item->isAncestorOf( child );
|
||||||
|
#else
|
||||||
|
while ( child )
|
||||||
|
{
|
||||||
|
if ( child == item )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
child = child->parentItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
bool qskIsTabFence( const QQuickItem* item )
|
||||||
|
{
|
||||||
|
if ( item == nullptr )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return QQuickItemPrivate::get( item )->isTabFence;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool qskIsShortcutScope( const QQuickItem* item )
|
||||||
|
{
|
||||||
|
if ( item == nullptr )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
We might have something like CTRL+W to close a "window".
|
||||||
|
But in Qt/Quick a window is not necessarily a QQuickWindow
|
||||||
|
like we have f.e QskSubWindow.
|
||||||
|
|
||||||
|
Maybe it's worth to introduce a shortcutScope flag but for
|
||||||
|
the moment we simply use the isFocusScope/isTabFence combination,
|
||||||
|
that should usually be set for those "windows".
|
||||||
|
*/
|
||||||
|
|
||||||
|
return item->isFocusScope() && QQuickItemPrivate::get( item )->isTabFence;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool qskIsTransparentForPositioner( const QQuickItem* item )
|
||||||
|
{
|
||||||
|
if ( item == nullptr )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return QQuickItemPrivate::get( item )->isTransparentForPositioner();
|
||||||
|
}
|
||||||
|
|
||||||
|
const QSGNode* qskItemNode( const QQuickItem* item )
|
||||||
|
{
|
||||||
|
if ( item == nullptr )
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
return QQuickItemPrivate::get( item )->itemNodeInstance;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QSGNode* qskPaintNode( const QQuickItem* item )
|
||||||
|
{
|
||||||
|
if ( item == nullptr )
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
return QQuickItemPrivate::get( item )->paintNode;
|
||||||
|
}
|
||||||
|
|
||||||
static inline controlFlags_t qskControlFlags()
|
static inline controlFlags_t qskControlFlags()
|
||||||
{
|
{
|
||||||
// we are only interested in the first 8 bits
|
// we are only interested in the first 8 bits
|
||||||
@ -479,14 +546,6 @@ bool QskControl::isTransparentForPositioner() const
|
|||||||
return d_func()->isTransparentForPositioner();
|
return d_func()->isTransparentForPositioner();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QskControl::isTransparentForPositioner( const QQuickItem* item )
|
|
||||||
{
|
|
||||||
if ( item == nullptr )
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return QQuickItemPrivate::get( item )->isTransparentForPositioner();
|
|
||||||
}
|
|
||||||
|
|
||||||
void QskControl::setPolishOnResize( bool on )
|
void QskControl::setPolishOnResize( bool on )
|
||||||
{
|
{
|
||||||
Q_D( QskControl );
|
Q_D( QskControl );
|
||||||
@ -555,32 +614,6 @@ bool QskControl::isTabFence() const
|
|||||||
return d_func()->isTabFence;
|
return d_func()->isTabFence;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QskControl::isTabFence( const QQuickItem* item )
|
|
||||||
{
|
|
||||||
if ( item == nullptr )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return QQuickItemPrivate::get( item )->isTabFence;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool QskControl::isShortcutScope( const QQuickItem* item )
|
|
||||||
{
|
|
||||||
if ( item == nullptr )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
/*
|
|
||||||
We might have something like CTRL+W to close a "window".
|
|
||||||
But in Qt/Quick a window is not necessarily a QQuickWindow
|
|
||||||
like we have f.e QskSubWindow.
|
|
||||||
|
|
||||||
Maybe it's worth to introduce a shortcutScope flag but for
|
|
||||||
the moment we simply use the isFocusScope/isTabFence combination,
|
|
||||||
that should usually be set for those "windows".
|
|
||||||
*/
|
|
||||||
|
|
||||||
return item->isFocusScope() && QQuickItemPrivate::get( item )->isTabFence;
|
|
||||||
}
|
|
||||||
|
|
||||||
QskControl::Flags QskControl::controlFlags() const
|
QskControl::Flags QskControl::controlFlags() const
|
||||||
{
|
{
|
||||||
return QskControl::Flags( d_func()->controlFlags );
|
return QskControl::Flags( d_func()->controlFlags );
|
||||||
@ -1170,22 +1203,6 @@ void QskControl::releaseResources()
|
|||||||
qskReleasedWindowCounter->setWindow( window() );
|
qskReleasedWindowCounter->setWindow( window() );
|
||||||
}
|
}
|
||||||
|
|
||||||
const QSGNode* QskControl::itemNode( const QQuickItem* item )
|
|
||||||
{
|
|
||||||
if ( item == nullptr )
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
return QQuickItemPrivate::get( item )->itemNodeInstance;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QSGNode* QskControl::paintNode( const QQuickItem* item )
|
|
||||||
{
|
|
||||||
if ( item == nullptr )
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
return QQuickItemPrivate::get( item )->paintNode;
|
|
||||||
}
|
|
||||||
|
|
||||||
void QskControl::itemChange( QQuickItem::ItemChange change,
|
void QskControl::itemChange( QQuickItem::ItemChange change,
|
||||||
const QQuickItem::ItemChangeData& value )
|
const QQuickItem::ItemChangeData& value )
|
||||||
{
|
{
|
||||||
@ -1210,7 +1227,7 @@ void QskControl::itemChange( QQuickItem::ItemChange change,
|
|||||||
}
|
}
|
||||||
case QQuickItem::ItemChildAddedChange:
|
case QQuickItem::ItemChildAddedChange:
|
||||||
{
|
{
|
||||||
if ( d->autoLayoutChildren && !isTransparentForPositioner( value.item ) )
|
if ( d->autoLayoutChildren && !qskIsTransparentForPositioner( value.item ) )
|
||||||
polish();
|
polish();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -120,11 +120,6 @@ public:
|
|||||||
void setTransparentForPositioner( bool );
|
void setTransparentForPositioner( bool );
|
||||||
bool isTransparentForPositioner() const;
|
bool isTransparentForPositioner() const;
|
||||||
|
|
||||||
static bool isTransparentForPositioner( const QQuickItem* );
|
|
||||||
|
|
||||||
static const QSGNode* itemNode( const QQuickItem* );
|
|
||||||
static const QSGNode* paintNode( const QQuickItem* );
|
|
||||||
|
|
||||||
void setWheelEnabled( bool );
|
void setWheelEnabled( bool );
|
||||||
bool isWheelEnabled() const;
|
bool isWheelEnabled() const;
|
||||||
|
|
||||||
@ -134,9 +129,6 @@ public:
|
|||||||
void setTabFence( bool );
|
void setTabFence( bool );
|
||||||
bool isTabFence() const;
|
bool isTabFence() const;
|
||||||
|
|
||||||
static bool isTabFence( const QQuickItem* );
|
|
||||||
static bool isShortcutScope( const QQuickItem* );
|
|
||||||
|
|
||||||
void setControlFlags( Flags );
|
void setControlFlags( Flags );
|
||||||
void resetControlFlags();
|
void resetControlFlags();
|
||||||
Flags controlFlags() const;
|
Flags controlFlags() const;
|
||||||
@ -247,6 +239,14 @@ inline QSizeF QskControl::sizeHint() const
|
|||||||
return effectiveConstraint( Qt::PreferredSize );
|
return effectiveConstraint( Qt::PreferredSize );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 const QSGNode* qskItemNode( const QQuickItem* );
|
||||||
|
QSK_EXPORT const QSGNode* qskPaintNode( const QQuickItem* );
|
||||||
|
|
||||||
Q_DECLARE_OPERATORS_FOR_FLAGS( QskControl::Flags )
|
Q_DECLARE_OPERATORS_FOR_FLAGS( QskControl::Flags )
|
||||||
Q_DECLARE_METATYPE( QskControl::Flags )
|
Q_DECLARE_METATYPE( QskControl::Flags )
|
||||||
|
|
||||||
|
@ -15,19 +15,6 @@ QSK_QT_PRIVATE_BEGIN
|
|||||||
#include <private/qquickitemchangelistener_p.h>
|
#include <private/qquickitemchangelistener_p.h>
|
||||||
QSK_QT_PRIVATE_END
|
QSK_QT_PRIVATE_END
|
||||||
|
|
||||||
static inline bool qskIsAncestorOf( const QQuickItem* item, const QQuickItem* child )
|
|
||||||
{
|
|
||||||
while ( child )
|
|
||||||
{
|
|
||||||
if ( child == item )
|
|
||||||
return true;
|
|
||||||
|
|
||||||
child = child->parentItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static QSizeF qskAdjustedSize( const QQuickItem* item, const QSizeF& targetSize )
|
static QSizeF qskAdjustedSize( const QQuickItem* item, const QSizeF& targetSize )
|
||||||
{
|
{
|
||||||
using namespace QskLayoutConstraint;
|
using namespace QskLayoutConstraint;
|
||||||
@ -312,7 +299,7 @@ void QskScrollAreaClipItem::updateNode( QSGNode* )
|
|||||||
|
|
||||||
const QSGClipNode* QskScrollAreaClipItem::viewPortClipNode() const
|
const QSGClipNode* QskScrollAreaClipItem::viewPortClipNode() const
|
||||||
{
|
{
|
||||||
auto node = const_cast< QSGNode* >( QskControl::paintNode( scrollArea() ) );
|
auto node = const_cast< QSGNode* >( qskPaintNode( scrollArea() ) );
|
||||||
if ( node )
|
if ( node )
|
||||||
node = QskSkinlet::findNodeByRole( node, QskScrollViewSkinlet::ContentsRootRole );
|
node = QskSkinlet::findNodeByRole( node, QskScrollViewSkinlet::ContentsRootRole );
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ QSGNode* QskScrollViewSkinlet::updateContentsNode(
|
|||||||
|
|
||||||
QSGNode* QskScrollViewSkinlet::contentsNode( const QskScrollView* scrollView )
|
QSGNode* QskScrollViewSkinlet::contentsNode( const QskScrollView* scrollView )
|
||||||
{
|
{
|
||||||
QSGNode* node = const_cast< QSGNode* >( QskControl::paintNode( scrollView ) );
|
QSGNode* node = const_cast< QSGNode* >( qskPaintNode( scrollView ) );
|
||||||
if ( node )
|
if ( node )
|
||||||
{
|
{
|
||||||
node = findNodeByRole( node, ContentsRootRole );
|
node = findNodeByRole( node, ContentsRootRole );
|
||||||
|
@ -306,7 +306,7 @@ bool QskSetup::eventFilter( QObject* object, QEvent* event )
|
|||||||
|
|
||||||
But we also don't want to have how it is done in QC2 by adding
|
But we also don't want to have how it is done in QC2 by adding
|
||||||
the focus management in the event handler of the base class.
|
the focus management in the event handler of the base class.
|
||||||
This implementatio reverts the expected default behaviour of when
|
This implementation reverts the expected default behaviour of when
|
||||||
events are accepted/ignored + is an error prone nightmare, when it
|
events are accepted/ignored + is an error prone nightmare, when it
|
||||||
comes to overloading event handlers missing to call the base class.
|
comes to overloading event handlers missing to call the base class.
|
||||||
|
|
||||||
|
@ -360,7 +360,7 @@ bool QskShortcutMap::contextMatcher(
|
|||||||
We have to find out if the active focus is inside
|
We have to find out if the active focus is inside
|
||||||
the surronding shortcut scope.
|
the surronding shortcut scope.
|
||||||
*/
|
*/
|
||||||
if ( QskControl::isShortcutScope( item ) )
|
if ( qskIsShortcutScope( item ) )
|
||||||
{
|
{
|
||||||
if ( !item->hasFocus() )
|
if ( !item->hasFocus() )
|
||||||
return false;
|
return false;
|
||||||
|
@ -144,7 +144,7 @@ QSizeF QskSubWindow::contentsSizeHint() const
|
|||||||
const auto children = childItems();
|
const auto children = childItems();
|
||||||
for ( auto child : children )
|
for ( auto child : children )
|
||||||
{
|
{
|
||||||
if ( isTransparentForPositioner( child ) )
|
if ( qskIsTransparentForPositioner( child ) )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const QskControl* control = qobject_cast< QskControl* >( child );
|
const QskControl* control = qobject_cast< QskControl* >( child );
|
||||||
@ -182,7 +182,7 @@ void QskSubWindow::itemChange( QQuickItem::ItemChange change,
|
|||||||
case QQuickItem::ItemChildAddedChange:
|
case QQuickItem::ItemChildAddedChange:
|
||||||
case QQuickItem::ItemChildRemovedChange:
|
case QQuickItem::ItemChildRemovedChange:
|
||||||
{
|
{
|
||||||
if ( !isTransparentForPositioner( value.item ) )
|
if ( !qskIsTransparentForPositioner( value.item ) )
|
||||||
{
|
{
|
||||||
resetImplicitSize();
|
resetImplicitSize();
|
||||||
polish();
|
polish();
|
||||||
|
@ -383,7 +383,7 @@ void QskWindow::layoutItems()
|
|||||||
const auto children = contentItem()->childItems();
|
const auto children = contentItem()->childItems();
|
||||||
for ( auto child : children )
|
for ( auto child : children )
|
||||||
{
|
{
|
||||||
if ( !QskControl::isTransparentForPositioner( child ) )
|
if ( !qskIsTransparentForPositioner( child ) )
|
||||||
{
|
{
|
||||||
child->setPosition( contentItem()->position() );
|
child->setPosition( contentItem()->position() );
|
||||||
child->setSize( sz );
|
child->setSize( sz );
|
||||||
|
@ -205,7 +205,7 @@ void QskIndexedLayoutBox::itemChange(
|
|||||||
{
|
{
|
||||||
if ( m_data->autoAddChildren && !m_data->blockChildAdded )
|
if ( m_data->autoAddChildren && !m_data->blockChildAdded )
|
||||||
{
|
{
|
||||||
if ( !isTransparentForPositioner( value.item ) )
|
if ( !qskIsTransparentForPositioner( value.item ) )
|
||||||
addItem( value.item );
|
addItem( value.item );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,11 +192,11 @@ static inline void countNodes( const QSGNode* node, int& counter )
|
|||||||
|
|
||||||
static void countNodes( const QQuickItem* item, int& counter )
|
static void countNodes( const QQuickItem* item, int& counter )
|
||||||
{
|
{
|
||||||
const auto itemNode = QskControl::itemNode( item );
|
const auto itemNode = qskItemNode( item );
|
||||||
|
|
||||||
if ( itemNode )
|
if ( itemNode )
|
||||||
{
|
{
|
||||||
auto node = QskControl::paintNode( item );
|
auto node = qskPaintNode( item );
|
||||||
if ( node )
|
if ( node )
|
||||||
{
|
{
|
||||||
countNodes( node, counter );
|
countNodes( node, counter );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user