summaryrefslogtreecommitdiffstats
path: root/tests/manual/examples/blurpicker/blureffect.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/examples/blurpicker/blureffect.cpp')
-rw-r--r--tests/manual/examples/blurpicker/blureffect.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/manual/examples/blurpicker/blureffect.cpp b/tests/manual/examples/blurpicker/blureffect.cpp
new file mode 100644
index 0000000000..2e2b8c8d6b
--- /dev/null
+++ b/tests/manual/examples/blurpicker/blureffect.cpp
@@ -0,0 +1,31 @@
+// 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);
+}