#include "BlurredBox.h" #include "BlurredBoxSkinlet.h" #include QSK_SUBCONTROL( BlurredBox, Panel ) class BlurredBoxSkinlet; BlurredBox::BlurredBox( QQuickItem* parentItem ) : QskBox( parentItem ) { auto* const skinlet = new BlurredBoxSkinlet(); skinlet->setOwnedBySkinnable( true ); setSkinlet( skinlet ); setPolishOnResize( true ); } BlurredBox::~BlurredBox() = default; void BlurredBox::setShape( const QskBoxShapeMetrics& shape ) { m_shape = shape; update(); } const QskBoxShapeMetrics& BlurredBox::shape() const { return m_shape; } QRectF BlurredBox::rectOnScreen() const { return mapRectToScene( contentsRect() ); } QRectF BlurredBox::rectOfScreen() const { // find root node and get its rectangle auto* root = parentItem(); while ( root && root->parentItem() ) { root = root->parentItem(); } const auto rootRect = this->window()->contentItem()->boundingRect(); return rootRect; } void BlurredBox::geometryChangeEvent( QskGeometryChangeEvent* e ) { Inherited::geometryChangeEvent( e ); update(); } QRectF BlurredBox::layoutRectForSize( const QSizeF& size ) const { auto padding = paddingHint( Panel ); return { padding.left() / 2, padding.top() / 2, size.width() - padding.right(), size.height() - padding.bottom() }; } float BlurredBox::blurDirections() const { return m_blurDirections; } void BlurredBox::setBlurDirections( float newBlurDirections ) { if ( qFuzzyCompare( m_blurDirections, newBlurDirections ) ) { return; } m_blurDirections = newBlurDirections; update(); Q_EMIT blurDirectionsChanged( m_blurDirections ); } float BlurredBox::blurQuality() const { return m_blurQuality; } void BlurredBox::setBlurQuality( float newBlurQuality ) { if ( qFuzzyCompare( m_blurQuality, newBlurQuality ) ) { return; } m_blurQuality = newBlurQuality; update(); Q_EMIT blurQualityChanged( m_blurQuality ); } float BlurredBox::blurSize() const { return m_blurSize; } void BlurredBox::setBlurSize( float newBlurSize ) { if ( qFuzzyCompare( m_blurSize, newBlurSize ) ) { return; } m_blurSize = newBlurSize; update(); Q_EMIT blurSizeChanged( m_blurSize ); } #include "moc_BlurredBox.cpp"