| 282 | } |
| 283 | |
| 284 | bool SideSlideAnimator::eventFilter(QObject* _object, QEvent* _event) |
| 285 | { |
| 286 | if (_object == widgetForSlide()->parentWidget() |
| 287 | && _event->type() == QEvent::Resize) { |
| 288 | |
| 289 | QWidget* widgetForSlideParent = widgetForSlide()->parentWidget(); |
| 290 | switch (m_side) { |
| 291 | case WAF::RightSide: { |
| 292 | widgetForSlide()->move(widgetForSlideParent->width() - widgetForSlide()->width(), 0); |
| 293 | // |
| 294 | // проваливаемся, для корректировки высоты |
| 295 | // |
| 296 | [[fallthrough]]; |
| 297 | } |
| 298 | case WAF::LeftSide: { |
| 299 | widgetForSlide()->resize(widgetForSlide()->width(), widgetForSlideParent->height()); |
| 300 | break; |
| 301 | } |
| 302 | |
| 303 | case WAF::BottomSide: { |
| 304 | widgetForSlide()->move(0, widgetForSlideParent->height() - widgetForSlide()->height()); |
| 305 | // |
| 306 | // Проваливаемся, для корректировки ширины |
| 307 | // |
| 308 | [[fallthrough]]; |
| 309 | } |
| 310 | case WAF::TopSide: { |
| 311 | widgetForSlide()->resize(widgetForSlideParent->width(), widgetForSlide()->height()); |
| 312 | break; |
| 313 | } |
| 314 | } |
| 315 | |
| 316 | m_decorator->setSlidePos(widgetForSlide()->geometry().topLeft()); |
| 317 | |
| 318 | // |
| 319 | // Сохраним картинку изменённого выкатываемого виджета |
| 320 | // |
| 321 | m_decorator->grabSlideWidget(widgetForSlide()); |
| 322 | |
| 323 | #if defined(Q_OS_ANDROID) || defined(Q_OS_IOS) |
| 324 | // |
| 325 | // В андройде нужно перерисовать фоновое изображение |
| 326 | // |
| 327 | m_decorator->hide(); |
| 328 | m_decorator->grabParent(); |
| 329 | m_decorator->show(); |
| 330 | #endif |
| 331 | } |
| 332 | |
| 333 | return QObject::eventFilter(_object, _event); |
| 334 | } |
| 335 | |
| 336 | QWidget* SideSlideAnimator::widgetForSlide() const |
| 337 | { |
nothing calls this directly
no test coverage detected