LookAtClick.cpp
Go to the documentation of this file.
1 #include "LookAtClick.h"
2 
3 #include <iostream>
4 
5 #include <QMouseEvent>
6 #include <QPainter>
7 
10 
11 LookAtClick::LookAtClick(QWidget* parent) : QWidget(parent)
12 {
13  setMouseTracking(true);
14  setCursor(Qt::PointingHandCursor);
15  this->installEventFilter(this);
16  std::cout << "mousetracking activated!\n";
17 }
18 
19 void
21 {
22  _backgroundImage = image.copy();
23  setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
24  setFixedSize(image.size());
25  QImage newImage(image.size(), QImage::Format_ARGB32);
26  newImage.fill(Qt::white);
27  QPainter painter(&newImage);
28  painter.drawImage(QPoint(0, 0), _backgroundImage);
29  _backgroundImage = newImage;
30  update();
31 }
32 
33 QSize
35 {
36  return _backgroundImage.size();
37 }
38 
39 bool
40 LookAtClick::eventFilter(QObject* watched, QEvent* event)
41 {
42  if (event->type() == QEvent::MouseButtonPress)
43  {
44  ARMARX_INFO << "mousePressEvent found";
45  mousePressEvent(static_cast<QMouseEvent*>(event));
46  }
47  return false;
48 }
49 
50 void
51 LookAtClick::mousePressEvent(QMouseEvent* event)
52 {
53  ARMARX_INFO << "mousePressEvent triggered!";
54  if (event->button() == Qt::LeftButton)
55  {
56  ARMARX_INFO << "Leftclick detected!";
57  _lastPoint = event->pos();
58  QPoint offset;
59  _center.setX(_backgroundImage.size().rwidth() / 2);
60  _center.setY(_backgroundImage.size().rheight() / 2);
61  offset.setX(_lastPoint.x() - _center.x());
62  offset.setY(_lastPoint.y() - _center.y());
63  clickedAt(offset);
64  }
65 }
66 
67 void
68 LookAtClick::mouseMoveEvent(QMouseEvent* event)
69 {
70  std::cout << "Mouse is moving!\n";
71 }
72 
73 void
74 LookAtClick::paintEvent(QPaintEvent* event)
75 {
76  QPainter painter(this);
77  QRect dirtyRect = event->rect();
78  painter.drawImage(dirtyRect, _backgroundImage, dirtyRect);
79 }
LookAtClick::mousePressEvent
void mousePressEvent(QMouseEvent *event) override
Definition: LookAtClick.cpp:51
LookAtClick::paintEvent
void paintEvent(QPaintEvent *event) override
Definition: LookAtClick.cpp:74
LookAtClick::clickedAt
void clickedAt(const QPoint &point)
LookAtClick.h
LookAtClick::sizeHint
QSize sizeHint() const override
Definition: LookAtClick.cpp:34
LookAtClick::mouseMoveEvent
void mouseMoveEvent(QMouseEvent *event) override
Definition: LookAtClick.cpp:68
LookAtClick::eventFilter
bool eventFilter(QObject *watched, QEvent *event) override
Definition: LookAtClick.cpp:40
armarx::armem::server::ltm::util::mongodb::detail::update
bool update(mongocxx::collection &coll, const nlohmann::json &query, const nlohmann::json &update)
Definition: mongodb.cpp:68
ExpressionException.h
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:181
LookAtClick::LookAtClick
LookAtClick(QWidget *parent=nullptr)
Definition: LookAtClick.cpp:11
Logging.h
LookAtClick::drawBackground
void drawBackground(QImage &image)
Definition: LookAtClick.cpp:20