////////////////////////////////////////////////////////////////////////////// // breezeblurhelper.h // handle regions passed to kwin for blurring // ------------------- // // SPDX-FileCopyrightText: 2018 Alex Nemeth // // Largely rewritten from Oxygen widget style // SPDX-FileCopyrightText: 2007 Thomas Luebking // SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa // // SPDX-License-Identifier: MIT ////////////////////////////////////////////////////////////////////////////// #pragma once #include "breeze.h" #include "breezehelper.h" #include #include namespace Breeze { class BlurHelper : public QObject { Q_OBJECT public: //! constructor explicit BlurHelper(const std::shared_ptr &helper); //! register widget void registerWidget(QWidget *); //! register widget void unregisterWidget(QWidget *); //! event filter bool eventFilter(QObject *, QEvent *) override; protected: //! install event filter to object, in a unique way void addEventFilter(QObject *object) { object->removeEventFilter(this); object->installEventFilter(this); } //! update blur regions for given widget void update(QWidget *) const; private: std::shared_ptr _helper; }; }