diff --git a/src/layouts/QskGridBox.cpp b/src/layouts/QskGridBox.cpp index e7403556..ea941c60 100644 --- a/src/layouts/QskGridBox.cpp +++ b/src/layouts/QskGridBox.cpp @@ -6,6 +6,7 @@ #include "QskGridBox.h" #include "QskGridLayoutEngine.h" #include "QskEvent.h" +#include "QskQuick.h" #include static void qskSetItemActive( QObject* receiver, const QQuickItem* item, bool on ) @@ -118,6 +119,14 @@ int QskGridBox::addItem( QQuickItem* item, if ( item == nullptr || row < 0 || column < 0 ) return -1; + if ( qskIsTransparentForPositioner( item ) ) + { + qWarning() << "Inserting an item that is marked as transparent for layouting:" + << item->metaObject()->className(); + + qskSetTransparentForPositioner( item, false ); + } + rowSpan = qMax( rowSpan, -1 ); columnSpan = qMax( columnSpan, -1 ); @@ -169,6 +178,16 @@ int QskGridBox::addSpacer( const QSizeF& spacing, return index; } +int QskGridBox::addColumnSpacer( qreal spacing, int column ) +{ + return addSpacer( QSizeF( spacing, 0.0 ), 0, column ); +} + +int QskGridBox::addRowSpacer( qreal spacing, int row ) +{ + return addSpacer( QSizeF( 0.0, spacing ), row, 0 ); +} + void QskGridBox::removeAt( int index ) { auto& engine = m_data->engine; diff --git a/src/layouts/QskGridBox.h b/src/layouts/QskGridBox.h index b388999d..35515a99 100644 --- a/src/layouts/QskGridBox.h +++ b/src/layouts/QskGridBox.h @@ -37,6 +37,9 @@ class QSK_EXPORT QskGridBox : public QskBox Q_INVOKABLE int addSpacer( const QSizeF&, int row, int column, int columnSpan = 1, int rowSpan = 1 ); + int addColumnSpacer( qreal spacing, int column ); + int addRowSpacer( qreal spacing, int row ); + void removeItem( const QQuickItem* ); void removeAt( int index );