Skip to content
Snippets Groups Projects
ScreenOverlaying.cpp 1.4 KiB
Newer Older
#include "ScreenOverlaying.h"

konstantin.kukharenko's avatar
konstantin.kukharenko committed

ScreenOverlaying::ScreenOverlaying(QMainWindow *a_parent)
konstantin.kukharenko's avatar
konstantin.kukharenko committed
    :QWidget(a_parent),
    blurRadius(0),
    opacity(0)
{
konstantin.kukharenko's avatar
konstantin.kukharenko committed
    setObjectName("ScreenBlureOpocityEffect");
    m_blurParent = a_parent->centralWidget();
    m_opacityParent = a_parent;
konstantin.kukharenko's avatar
konstantin.kukharenko committed
    this->setVisible(false);
konstantin.kukharenko's avatar
konstantin.kukharenko committed
}

ScreenOverlaying::ScreenOverlaying(QWidget *blure_parent, QWidget *opacity_parent)
    :QWidget(opacity_parent),
    blurRadius(0),
    opacity(0)
{
    setObjectName("ScreenBlureOpocityEffect");
    m_blurParent = blure_parent;
    m_opacityParent = opacity_parent;

    this->setVisible(false);
konstantin.kukharenko's avatar
konstantin.kukharenko committed
void ScreenOverlaying::showEvent(QShowEvent *event)
{
    QGraphicsBlurEffect *blurEffect = new QGraphicsBlurEffect(m_blurParent);
    blurEffect->setBlurRadius(blurRadius);
    m_blurParent->setGraphicsEffect(blurEffect);

    setGeometry(0,0,m_opacityParent->width(),m_opacityParent->height());
    QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect(this);
    opacityEffect->setOpacity(opacity);

    setGraphicsEffect(opacityEffect);


    QWidget::showEvent(event);
}

void ScreenOverlaying::hideEvent(QHideEvent *event)
{
    delete m_blurParent->graphicsEffect();
    delete graphicsEffect();
    QWidget::hideEvent(event);
}
void ScreenOverlaying::setBlurRadius(int &a_blurRadius)
{
    blurRadius = a_blurRadius;
konstantin.kukharenko's avatar
konstantin.kukharenko committed
void ScreenOverlaying::setOpacity(qreal &a_opacity)
{
    opacity = a_opacity;