File indexing completed on 2024-05-12 16:21:16
0001 /* 0002 * SPDX-FileCopyrightText: 2020-2021 Devin Lin <espidev@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include "blur.h" 0008 0009 #include <KWindowEffects> 0010 0011 #include <QQuickWindow> 0012 #include <QQuickItem> 0013 0014 0015 Blur::Blur(QObject *parent): QObject(parent) 0016 { 0017 } 0018 0019 void Blur::setBlur(QQuickItem *item, bool blur) 0020 { 0021 auto setWindows = [item, blur]() { 0022 auto reg = QRect(QPoint(0, 0), item->window()->size()); 0023 KWindowEffects::enableBackgroundContrast(item->window(), blur, 1, 1, 1, reg); 0024 KWindowEffects::enableBlurBehind(item->window(), blur, reg); 0025 }; 0026 0027 disconnect(item->window(), &QQuickWindow::heightChanged, this, nullptr); 0028 disconnect(item->window(), &QQuickWindow::widthChanged, this, nullptr); 0029 connect(item->window(), &QQuickWindow::heightChanged, this, setWindows); 0030 connect(item->window(), &QQuickWindow::widthChanged, this, setWindows); 0031 setWindows(); 0032 }