12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include "lib/qtmaterialoverlaywidget.h"
- #include <QEvent>
- /*!
- * \class QtMaterialOverlayWidget
- * \internal
- */
- QtMaterialOverlayWidget::QtMaterialOverlayWidget(QWidget *parent)
- : QWidget(parent)
- {
- if (parent) {
- parent->installEventFilter(this);
- }
- }
- QtMaterialOverlayWidget::~QtMaterialOverlayWidget()
- {
- }
- /*!
- * \reimp
- */
- bool QtMaterialOverlayWidget::event(QEvent *event)
- {
- if (!parent()) {
- return QWidget::event(event);
- }
- switch (event->type())
- {
- case QEvent::ParentChange:
- {
- parent()->installEventFilter(this);
- setGeometry(overlayGeometry());
- break;
- }
- case QEvent::ParentAboutToChange:
- {
- parent()->removeEventFilter(this);
- break;
- }
- default:
- break;
- }
- return QWidget::event(event);
- }
- /*!
- * \reimp
- */
- bool QtMaterialOverlayWidget::eventFilter(QObject *obj, QEvent *event)
- {
- switch (event->type())
- {
- case QEvent::Move:
- case QEvent::Resize:
- setGeometry(overlayGeometry());
- break;
- default:
- break;
- }
- return QWidget::eventFilter(obj, event);
- }
- QRect QtMaterialOverlayWidget::overlayGeometry() const
- {
- QWidget *widget = parentWidget();
- if (!widget) {
- return QRect();
- }
- return widget->rect();
- }
|