19#include <QtGui/QContextMenuEvent>
20#include <QtGui/QPainter>
21#include <QtWidgets/QMenu>
22#include <QtWidgets/QStyleOption>
25 : QWidget(parent), index_(index), refresh_timer_(this), viewer_() {
26 viewer_.setParent(
this);
27 viewer_.setGeometry(geometry());
29 refresh_timer_.setObjectName(tr(
"_refreshTimer"));
30 refresh_timer_.setInterval(40);
31 connect(&refresh_timer_, SIGNAL(timeout()), &viewer_, SLOT(repaint()));
32 setAutoFillBackground(
true);
36 if (viewer_.is_init_) {
38 refresh_timer_.start();
40 refresh_timer_.stop();
46 const std::shared_ptr<Texture>& textureObj) {
47 if (textureObj ==
nullptr) {
48 viewer_.default_image_->setSizeChanged();
56 if (event->button() == Qt::LeftButton) {
58 QWidget::mouseDoubleClickEvent(event);
65 m.addActions(actions());
66 m.exec(event->globalPos());
69 QWidget::contextMenuEvent(event);
73 QSize size = revent->size();
76 double aspect =
static_cast<double>(viewer_.plane_.
texWidth()) /
77 static_cast<double>(viewer_.plane_.
texHeight());
81 if (aspect == 4.0 / 3.0) {
84 }
else if (aspect == 16.0 / 10.0) {
90 int h = size.height();
102 size.setWidth(tmpH << wc);
106 viewer_.setGeometry((revent->size().width() - size.width()) / 2,
107 (revent->size().height() - size.height()) / 2,
108 size.width(), size.height());
109 QWidget::resizeEvent(revent);
116 style()->drawPrimitive(QStyle::PE_Widget, &opt, &p,
this);
118 QWidget::paintEvent(event);
void set_texture(const std::shared_ptr< Texture > &t)
GLsizei texHeight(void) const
GLsizei texWidth(void) const