Merge branch 'uwerat-master' into material-theme

This commit is contained in:
Peter Hartmann 2022-06-17 09:37:32 +02:00
commit 8036d8ee69

View File

@ -9,6 +9,7 @@
#include <qtransform.h> #include <qtransform.h>
#include <qsgnode.h> #include <qsgnode.h>
#include <qquickwindow.h>
namespace namespace
{ {
@ -24,22 +25,20 @@ namespace
void setClipRect( const QRectF& rect ) void setClipRect( const QRectF& rect )
{ {
if ( rect.isValid() ) if ( m_clipNode == nullptr )
{ {
if ( m_clipNode == nullptr ) m_clipNode = new QSGClipNode();
{ m_clipNode->setFlag( QSGNode::OwnedByParent, false );
m_clipNode = new QSGClipNode(); m_clipNode->setIsRectangular( true );
m_clipNode->setFlag( QSGNode::OwnedByParent, false ); }
m_clipNode->setIsRectangular( true );
}
m_clipNode->setClipRect( rect ); m_clipNode->setClipRect( rect );
} }
else
{ void resetClip()
delete m_clipNode; {
m_clipNode = nullptr; delete m_clipNode;
} m_clipNode = nullptr;
} }
void setTranslation( qreal dx, qreal dy ) void setTranslation( qreal dx, qreal dy )
@ -149,8 +148,17 @@ QSGNode* QskPopupSkinlet::updateExtraNode( const QskPopup* popup, QSGNode* node
auto rootNode = QskSGNode::ensureNode< RootNode >( node ); auto rootNode = QskSGNode::ensureNode< RootNode >( node );
const auto faderProgress = popup->metric( popup->faderAspect() ); const auto faderProgress = popup->metric( popup->faderAspect() );
if ( faderProgress > 0.0 && faderProgress < 1.0 ) if ( faderProgress > 0.0 && faderProgress <= 1.0 )
rootNode->setClipRect( cr ); {
auto clipRect = QRectF( popup->mapFromScene( QPointF() ), popup->window()->size() );
clipRect.setTop( cr.top() );
rootNode->setClipRect( clipRect );
}
else
{
rootNode->resetClip();
}
rootNode->setTranslation( 0.0, -faderProgress * cr.height() ); rootNode->setTranslation( 0.0, -faderProgress * cr.height() );