diff --git a/src/layouts/QskDrawer.cpp b/src/layouts/QskDrawer.cpp index ba926fdc..4d404f40 100644 --- a/src/layouts/QskDrawer.cpp +++ b/src/layouts/QskDrawer.cpp @@ -15,7 +15,6 @@ class QskDrawer::PrivateData { QskControl* content; QskBox* contentBox; Qt::Edge edge = Qt::LeftEdge; - Qt::Alignment alignment = Qt::AlignCenter; }; QskDrawer::QskDrawer( QQuickItem* parentItem ): @@ -28,6 +27,8 @@ QskDrawer::QskDrawer( QQuickItem* parentItem ): m_data->contentBox = new QskBox(this); m_data->contentBox->setSubcontrolProxy( QskBox::Panel, Panel ); + m_data->contentBox->setPanel( true ); + setSubcontrolProxy( Inherited::Overlay, Overlay ); setFaderAspect( Panel | QskAspect::Metric ); @@ -47,10 +48,6 @@ Qt::Edge QskDrawer::edge() const { return m_data->edge; } -Qt::Alignment QskDrawer::alignment() const { - return m_data->alignment; -} - void QskDrawer::setEdge( Qt::Edge edge ) { if( m_data->edge == edge ) { @@ -62,17 +59,6 @@ void QskDrawer::setEdge( Qt::Edge edge ) { edgeChanged( edge ); } -void QskDrawer::setAlignment( Qt::Alignment alignment ) { - if( m_data->alignment == alignment ) - { - return; - } - - update(); - m_data->alignment = alignment; - alignmentChanged( alignment ); -} - void QskDrawer::setContent( QskControl* content ) { content->setParentItem( m_data->contentBox ); m_data->content = content; @@ -86,19 +72,9 @@ void QskDrawer::updateLayout() { case Qt::Edge::LeftEdge: { qreal x = metric( faderAspect() ) * contentSize.width() * -1.0; - qreal y = 0; - - if( alignment().testFlag( Qt::AlignVCenter ) ) - { - y = ( parentSize.height() - contentSize.height() ) / 2.0; - } - else if ( alignment().testFlag( Qt::AlignBottom ) ) - { - y = ( parentSize.height() - contentSize.height() ); - } qskSetItemGeometry( m_data->contentBox, - x, y, + x, 0, contentSize.width(), parentSize.height() ); break; } @@ -107,67 +83,35 @@ void QskDrawer::updateLayout() { qreal x = ( metric( faderAspect() ) * contentSize.width() ) + parentSize.width() - contentSize.width(); - qreal y = 0; - - if( alignment().testFlag( Qt::AlignVCenter ) ) - { - y = ( parentSize.height() - contentSize.height() ) / 2.0; - } - else if ( alignment().testFlag( Qt::AlignBottom ) ) - { - y = ( parentSize.height() - contentSize.height() ); - } qskSetItemGeometry( m_data->contentBox, - x, y, - contentSize.width(), - parentSize.height() ); + x, 0, + contentSize.width(), parentSize.height()); break; } case Qt::Edge::TopEdge: { - qreal x = 0; qreal y = metric( faderAspect() ) * contentSize.height(); - if( alignment().testFlag( Qt::AlignCenter) ) - { - x = ( parentSize.width() - contentSize.width() ) / 2; - } - else if( alignment().testFlag( Qt::AlignRight) ) - { - x = ( parentSize.width() - contentSize.width() ); - } - qskSetItemGeometry( m_data->contentBox, - x, -y, + 0, -y, parentSize.width(), contentSize.height() ); break; } case Qt::Edge::BottomEdge: { - qreal x = 0; qreal y = metric( faderAspect() ) * contentSize.height() + parentSize.height() - contentSize.height(); - if( alignment().testFlag( Qt::AlignCenter) ) - { - x = ( parentSize.width() - contentSize.width() ) / 2; - } - else if( alignment().testFlag( Qt::AlignRight) ) - { - x = ( parentSize.width() - contentSize.width() ); - } - qskSetItemGeometry( m_data->contentBox, - x, y, + 0, y, parentSize.width(), contentSize.height() ); break; } - break; - } + m_data->content->setGeometry( QPointF(), m_data->contentBox->size() ); Inherited::updateLayout(); } diff --git a/src/layouts/QskDrawer.h b/src/layouts/QskDrawer.h index fd5802c5..dee88cfb 100644 --- a/src/layouts/QskDrawer.h +++ b/src/layouts/QskDrawer.h @@ -10,7 +10,6 @@ class QSK_EXPORT QskDrawer : public QskPopup using Inherited = QskPopup; Q_PROPERTY( Qt::Edge edge READ edge WRITE setEdge NOTIFY edgeChanged ) - Q_PROPERTY( Qt::Alignment alignment READ alignment WRITE setAlignment NOTIFY alignmentChanged ) public: QSK_SUBCONTROLS( Panel, Overlay ) @@ -18,20 +17,17 @@ class QSK_EXPORT QskDrawer : public QskPopup ~QskDrawer() override; Qt::Edge edge() const; - Qt::Alignment alignment() const; void updateLayout() override; void setContent( QskControl* t ); void setEdge( Qt::Edge edge ); - void setAlignment( Qt::Alignment aligmnent ); protected: void aboutToShow() override; Q_SIGNALS: void edgeChanged( Qt::Edge ); - void alignmentChanged( Qt::Alignment ); private: class PrivateData;