qt5base-lts/tests/manual/examples/blurpicker/blureffect.cpp
Tor Arne Vestbø a3dde7c93e Move widgets blurpicker example to manual test
Change-Id: I7e19b84ac4b6a8e380fc9a7dcc37cc08ced89b4b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2023-06-05 19:13:33 +02:00

32 lines
688 B
C++

// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
#include "blureffect.h"
#include <QDebug>
BlurEffect::BlurEffect(QGraphicsItem *item)
: QGraphicsBlurEffect()
, m_baseLine(200), item(item)
{
}
void BlurEffect::adjustForItem()
{
qreal y = m_baseLine - item->pos().y();
qreal radius = qBound(qreal(0.0), y / 32, qreal(16.0));
setBlurRadius(radius);
}
QRectF BlurEffect::boundingRect() const
{
const_cast<BlurEffect *>(this)->adjustForItem();
return QGraphicsBlurEffect::boundingRect();
}
void BlurEffect::draw(QPainter *painter)
{
adjustForItem();
QGraphicsBlurEffect::draw(painter);
}