dropshadowmgr.cpp 794 B

12345678910111213141516171819202122232425262728
  1. #include "dropshadowmgr.h"
  2. #include "idropshadowable.h"
  3. #include <QEvent>
  4. DropShadowMgr::DropShadowMgrGarbo DropShadowMgr::garbo;
  5. DropShadowMgr* DropShadowMgr::sm_pInstance = new DropShadowMgr(nullptr); //初始化静态单例(饿汉):
  6. QList<BoxShadow> DropShadowMgr::sm_cacheShadows;
  7. /**
  8. * @brief 绘制注册到这里的阴影效果
  9. * @param watched
  10. * @param event
  11. * @return
  12. */
  13. bool DropShadowMgr::eventFilter(QObject *watched, QEvent *event)
  14. {
  15. IDropShadowable *pDropShadowableObj = dynamic_cast<IDropShadowable*>(watched);
  16. if(pDropShadowableObj == nullptr)
  17. {
  18. return QObject::eventFilter(watched, event);
  19. }
  20. if(event->type() == QEvent::Paint)
  21. {
  22. pDropShadowableObj->PaintShadows();
  23. }
  24. return QObject::eventFilter(watched, event);
  25. }