#include "stdafx.h" #include "video_label.h" video_label::video_label(QWidget* parent) : QLabel(parent), qt_video_source() { } video_label::~video_label() { } void video_label::set_thumbnail(const QPixmap& pxmap) { m_current_pixmap = pxmap; } void video_label::set_active(bool active) { if (active) { set_image_change_callback([this](const QVideoFrame& frame) { if (const QPixmap pixmap = get_movie_image(frame); get_active() && !pixmap.isNull()) { setPixmap(pixmap); } }); start_movie(); } else { set_image_change_callback({}); stop_movie(); setPixmap(m_current_pixmap); } } void video_label::enterEvent(QEnterEvent* event) { set_active(true); QLabel::enterEvent(event); } void video_label::leaveEvent(QEvent* event) { set_active(false); QLabel::leaveEvent(event); }