void QLabelPrivate::_q_movieResized(const QSize& size) { Q_Q(QLabel); valid_hints = false; _q_movieUpdated(QRect(QPoint(0,0), size)); q->updateGeometry(); }
void QLabelPrivate::_q_movieResized(const QSize& size) { Q_Q(QLabel); q->update(); //we need to refresh the whole background in case the new size is smaler valid_hints = false; _q_movieUpdated(QRect(QPoint(0,0), size)); q->updateGeometry(); }
void QLabel::setMovie(QMovie *movie) { Q_D(QLabel); d->clearContents(); if (!movie) return; d->movie = movie; connect(movie, SIGNAL(resized(QSize)), this, SLOT(_q_movieResized(QSize))); connect(movie, SIGNAL(updated(QRect)), this, SLOT(_q_movieUpdated(QRect))); // Assume that if the movie is running, // resize/update signals will come soon enough if (movie->state() != QMovie::Running) d->updateLabel(); }
void QLabelPrivate::clearContents() { delete control; control = 0; isTextLabel = false; hasShortcut = false; #ifndef QT_NO_PICTURE delete picture; picture = 0; #endif delete scaledpixmap; scaledpixmap = 0; delete cachedimage; cachedimage = 0; delete pixmap; pixmap = 0; text.clear(); Q_Q(QLabel); #ifndef QT_NO_SHORTCUT if (shortcutId) q->releaseShortcut(shortcutId); shortcutId = 0; #endif #if QT_CONFIG(movie) if (movie) { QObject::disconnect(movie, SIGNAL(resized(QSize)), q, SLOT(_q_movieResized(QSize))); QObject::disconnect(movie, SIGNAL(updated(QRect)), q, SLOT(_q_movieUpdated(QRect))); } movie = 0; #endif #ifndef QT_NO_CURSOR if (onAnchor) { if (validCursor) q->setCursor(cursor); else q->unsetCursor(); } validCursor = false; onAnchor = false; #endif }