void PopupMenu::hideFast() { if (isHidden()) return; _hiding = false; _a_opacity.finish(); hideFinished(); }
void InnerDropdown::paintEvent(QPaintEvent *e) { Painter p(this); if (_a_show.animating()) { if (auto opacity = _a_opacity.value(_hiding ? 0. : 1.)) { // _a_opacity.current(ms)->opacityAnimationCallback()->_showAnimation.reset() if (_showAnimation) { _showAnimation->paintFrame(p, 0, 0, width(), _a_show.value(1.), opacity); } } } else if (_a_opacity.animating()) { p.setOpacity(_a_opacity.value(0.)); p.drawPixmap(0, 0, _cache); } else if (_hiding || isHidden()) { hideFinished(); } else if (_showAnimation) { _showAnimation->paintFrame(p, 0, 0, width(), 1., 1.); _showAnimation.reset(); showChildren(); } else { if (!_cache.isNull()) _cache = QPixmap(); const auto inner = rect().marginsRemoved(_st.padding); Shadow::paint(p, inner, width(), _st.shadow); App::roundRect(p, inner, _st.bg, ImageRoundRadius::Small); } }
void PopupMenu::paintEvent(QPaintEvent *e) { Painter p(this); #ifdef OS_MAC_OLD p.setCompositionMode(QPainter::CompositionMode_Source); p.fillRect(e->rect(), Qt::transparent); p.setCompositionMode(QPainter::CompositionMode_SourceOver); #endif // OS_MAC_OLD auto ms = getms(); if (_a_show.animating(ms)) { if (auto opacity = _a_opacity.current(ms, _hiding ? 0. : 1.)) { _showAnimation->paintFrame(p, 0, 0, width(), _a_show.current(1.), opacity); } } else if (_a_opacity.animating(ms)) { p.setOpacity(_a_opacity.current(0.)); p.drawPixmap(0, 0, _cache); } else if (_hiding || isHidden()) { hideFinished(); } else if (_showAnimation) { _showAnimation->paintFrame(p, 0, 0, width(), 1., 1.); _showAnimation.reset(); showChildren(); } else { paintBg(p); } }
void InnerDropdown::hideFast() { if (isHidden()) return; _hideTimer.stop(); finishAnimating(); _hiding = false; hideFinished(); }
void InnerDropdown::hideFast() { if (isHidden()) return; _hideTimer.stop(); _hiding = false; _a_opacity.finish(); hideFinished(); }
void InnerDropdown::opacityAnimationCallback() { update(); if (!_a_opacity.animating()) { if (_hiding) { _hiding = false; hideFinished(); } else if (!_a_show.animating()) { showChildren(); } } }
void PopupMenu::opacityAnimationCallback() { update(); if (!_a_opacity.animating()) { if (_hiding) { _hiding = false; hideFinished(); } else { showChildren(); } } }
void PopupMenu::startOpacityAnimation(bool hiding) { _hiding = false; if (!_useTransparency) { _a_opacity.finish(); if (hiding) { hideFinished(); } else { update(); } return; } prepareCache(); _hiding = hiding; hideChildren(); _a_opacity.start([this] { opacityAnimationCallback(); }, _hiding ? 1. : 0., _hiding ? 0. : 1., _st.duration); }
LoadingSpinner::LoadingSpinner( QWidget* parent ) : QWidget( parent ) , m_showHide( new QTimeLine ) { m_showHide->setDuration( 300 ); m_showHide->setStartFrame( 0 ); m_showHide->setEndFrame( 100 ); m_showHide->setUpdateInterval( 20 ); connect( m_showHide, SIGNAL( frameChanged( int ) ), this, SLOT( update() ) ); connect( m_showHide, SIGNAL( finished() ), this, SLOT( hideFinished() ) ); m_anim = new QMovie( RESPATH "/images/loading-animation.gif" ); m_anim->jumpToNextFrame(); connect( m_anim, SIGNAL( frameChanged( int ) ), this, SLOT( update() ) ); resize( m_anim->currentPixmap().size() ); setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); hide(); }