This commit is contained in:
Uwe Rathmann 2023-10-17 14:21:57 +02:00
parent 93f8b883b5
commit b9747675c9
6 changed files with 31 additions and 6 deletions

View File

@ -62,6 +62,8 @@ namespace
Drawer( QQuickItem* parent = nullptr )
: QskDrawer( parent )
{
setOverlay( false );
auto box = new QskLinearBox( Qt::Vertical, this );
box->setSection( QskAspect::Header );
@ -261,11 +263,11 @@ namespace
connect( header, &Header::enabledToggled,
tabView, &TabView::setPagesEnabled );
auto drawer = new Drawer( this );
auto drawer = new Drawer( tabView );
drawer->setEdge( Qt::RightEdge );
connect( header, &Header::drawerRequested,
drawer, &QskPopup::open );
drawer, &QskPopup::toggle );
setHeader( header );
setBody( tabView );

View File

@ -28,7 +28,7 @@ namespace
#endif
setEdge( edge );
setOverlay( true );
setOverlay( false );
auto content = new QskControl( this );
content->setObjectName( "Content" );

View File

@ -915,10 +915,16 @@ void QskControl::itemChange( QQuickItem::ItemChange change,
break;
}
case QQuickItem::ItemChildAddedChange:
case QQuickItem::ItemChildRemovedChange:
{
if ( autoLayoutChildren() && qskIsAdjustableByLayout( value.item ) )
polish();
if ( autoLayoutChildren() )
{
if ( qskIsVisibleToLayout( value.item ) )
resetImplicitSize();
if ( qskIsAdjustableByLayout( value.item ) )
polish();
}
break;
}
case QQuickItem::ItemActiveFocusHasChanged:

View File

@ -218,7 +218,6 @@ QskDrawer::QskDrawer( QQuickItem* parentItem )
setZ( 1 );
#endif
setOverlay( true );
setPolishOnResize( true );
setPopupFlag( PopupFlag::CloseOnPressOutside, true );
@ -399,6 +398,17 @@ void QskDrawer::itemChange( QQuickItem::ItemChange change,
switch( static_cast< int >( change ) )
{
case QQuickItem::ItemChildAddedChange:
case QQuickItem::ItemChildRemovedChange:
{
if ( qskIsVisibleToLayout( value.item ) )
resetImplicitSize();
if ( qskIsAdjustableByLayout( value.item ) )
polish();
break;
}
case QQuickItem::ItemParentHasChanged:
{
if ( parentItem() )

View File

@ -196,6 +196,11 @@ void QskPopup::close()
setOpen( false );
}
void QskPopup::toggle()
{
setOpen( !isOpen() );
}
void QskPopup::setOpen( bool on )
{
if ( on == isOpen() )

View File

@ -72,6 +72,8 @@ class QSK_EXPORT QskPopup : public QskControl
public Q_SLOTS:
void open();
void close();
void toggle();
void setOpen( bool );
Q_SIGNALS: