annotate Applications/Qt/QCairoWidget.cpp @ 276:5de5699ad570 am-2

first display in QCairoWidget; no mouse interaction yet
author am@osimis.io
date Mon, 27 Aug 2018 12:21:52 +0200
parents
children a38465cc909f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
276
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
1 #include "QCairoWidget.h"
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
2
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
3 #include <QPainter>
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
4 #include <QPaintEvent>
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
5
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
6 #include <stdexcept>
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
7
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
8 QCairoWidget::QCairoWidget(QWidget *parent) :
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
9 QWidget(parent),
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
10 context_(NULL),
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
11 isMouseOver_(false),
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
12 mouseOverX_(0),
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
13 mouseOverY_(0)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
14 {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
15 setMouseTracking(true);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
16 updateNeeded_ = true;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
17 }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
18
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
19
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
20
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
21 QCairoWidget::~QCairoWidget()
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
22 {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
23 }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
24
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
25
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
26 void QCairoWidget::paintEvent(QPaintEvent* event)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
27 {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
28 QPainter painter(this);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
29
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
30 if (image_.get() != NULL && context_ != NULL)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
31 {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
32 OrthancStone::BasicNativeApplicationContext::GlobalMutexLocker locker(*context_);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
33 OrthancStone::IViewport& vp = context_->GetCentralViewport();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
34 Orthanc::ImageAccessor a = surface_.GetAccessor();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
35 vp.Render(a);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
36 //image_->fill(0);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
37 painter.drawImage(0, 0, *image_);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
38 }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
39 else
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
40 {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
41 painter.fillRect(rect(), Qt::red);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
42 }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
43 }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
44
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
45
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
46 //static void GetPixelCenter(double& x,
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
47 // double& y,
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
48 // const QMouseEvent* event)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
49 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
50 // x = static_cast<double>(event->x()) + 0.5;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
51 // y = static_cast<double>(event->y()) + 0.5;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
52 //}
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
53
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
54
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
55 //void QCairoWidget::mousePressEvent(QMouseEvent* event)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
56 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
57 // if (mouseTracker_.get() == NULL)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
58 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
59 // OrthancStone::MouseButton button;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
60
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
61 // switch (event->button())
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
62 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
63 // case Qt::LeftButton:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
64 // button = OrthancStone::MouseButton_Left;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
65 // break;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
66
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
67 // case Qt::RightButton:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
68 // button = OrthancStone::MouseButton_Right;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
69 // break;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
70
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
71 // case Qt::MiddleButton:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
72 // button = OrthancStone::MouseButton_Middle;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
73 // break;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
74
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
75 // default:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
76 // return; // Unsupported button
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
77 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
78
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
79 // double x, y;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
80 // GetPixelCenter(x, y, event);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
81 ////TODO mouseTracker_.reset(viewport_.CreateMouseTracker(*scene_, button, x, y));
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
82 // repaint();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
83 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
84 //}
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
85
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
86
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
87 //void QCairoWidget::mouseReleaseEvent(QMouseEvent* event)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
88 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
89 // if (mouseTracker_.get() != NULL)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
90 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
91 // mouseTracker_->MouseUp();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
92 // mouseTracker_.reset(NULL);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
93 // repaint();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
94 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
95 //}
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
96
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
97
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
98 //void QCairoWidget::mouseMoveEvent(QMouseEvent* event)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
99 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
100 // if (mouseTracker_.get() == NULL)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
101 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
102 // if (rect().contains(event->pos()))
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
103 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
104 // // Mouse over widget
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
105 // isMouseOver_ = true;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
106 // mouseOverX_ = event->x();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
107 // mouseOverY_ = event->y();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
108 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
109 // else
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
110 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
111 // // Mouse out of widget
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
112 // isMouseOver_ = false;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
113 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
114 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
115 // else
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
116 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
117 // double x, y;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
118 // GetPixelCenter(x, y, event);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
119 // mouseTracker_->MouseMove(x, y);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
120 // isMouseOver_ = false;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
121 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
122
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
123 //// if (isMouseOver_)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
124 //// {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
125 //// UpdateMouseCoordinates(event->x(), event->y());
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
126 //// }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
127
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
128 // repaint();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
129 //}
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
130
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
131
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
132 //void QCairoWidget::wheelEvent(QWheelEvent * event)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
133 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
134 // if (mouseTracker_.get() == NULL)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
135 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
136 //#if 0
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
137 // double x = static_cast<double>(event->x()) + 0.5;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
138 // double y = static_cast<double>(event->y()) + 0.5;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
139 // mouseTracker_.reset(viewport_.CreateMouseTracker(*scene_, MouseButton_Middle, x, y));
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
140
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
141 // switch (event->orientation())
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
142 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
143 // case Qt::Horizontal:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
144 // x += event->delta();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
145 // break;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
146
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
147 // case Qt::Vertical:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
148 // y += event->delta();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
149 // break;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
150
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
151 // default:
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
152 // break;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
153 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
154
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
155 // mouseTracker_->MouseMove(x, y);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
156 // mouseTracker_->MouseUp();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
157 // mouseTracker_.reset(NULL);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
158
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
159 // repaint();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
160 //#else
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
161 // if (event->orientation() == Qt::Vertical)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
162 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
163 // unsigned int slice = scene_->GetCurrentSlice();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
164
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
165 // if (event->delta() < 0)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
166 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
167 // if (slice > 0)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
168 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
169 // scene_->SetCurrentSlice(slice - 1);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
170 // emit SliceChanged(slice - 1);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
171 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
172 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
173 // else
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
174 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
175 // if (slice + 1 < scene_->GetSlicesCount())
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
176 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
177 // scene_->SetCurrentSlice(slice + 1);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
178 // emit SliceChanged(slice + 1);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
179 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
180 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
181
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
182 // repaint();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
183 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
184 //#endif
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
185 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
186
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
187 // UpdateMouseCoordinates(event->x(), event->y());
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
188 //}
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
189
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
190
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
191
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
192 void QCairoWidget::resizeEvent(QResizeEvent* event)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
193 {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
194 grabGesture(Qt::PanGesture);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
195 QWidget::resizeEvent(event);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
196
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
197 if (event)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
198 {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
199 surface_.SetSize(event->size().width(), event->size().height());
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
200
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
201 image_.reset(new QImage(reinterpret_cast<uchar*>(surface_.GetBuffer()),
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
202 event->size().width(),
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
203 event->size().height(),
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
204 surface_.GetPitch(),
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
205 QImage::Format_RGB32));
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
206
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
207 context_->GetCentralViewport().SetSize(event->size().width(), event->size().height());
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
208
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
209 }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
210 }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
211
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
212 //void QCairoWidget::UpdateMouseCoordinates(int x,
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
213 // int y)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
214 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
215 // if (scene_ != NULL)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
216 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
217 // double cx = static_cast<double>(x) + 0.5;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
218 // double cy = static_cast<double>(y) + 0.5;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
219
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
220 // std::string coordinates;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
221 // viewport_.FormatCoordinates(coordinates, *scene_, cx, cy);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
222
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
223 // emit PositionChanged(QString(coordinates.c_str()));
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
224 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
225 //}
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
226
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
227
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
228 //void QCairoWidget::SetDefaultView()
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
229 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
230 // viewport_.SetDefaultView();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
231 // repaint();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
232 //}
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
233
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
234
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
235 //void QCairoWidget::Refresh()
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
236 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
237 // if (scene_ != NULL &&
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
238 // updateNeeded_)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
239 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
240 // updateNeeded_ = false;
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
241 // emit ContentChanged();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
242 // repaint();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
243 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
244 //}
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
245
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
246
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
247 //void QCairoWidget::SetSlice(int index)
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
248 //{
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
249 // if (scene_ != NULL &&
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
250 // index >= 0 &&
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
251 // index < static_cast<int>(scene_->GetSlicesCount()))
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
252 // {
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
253 // scene_->SetCurrentSlice(index);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
254 // emit SliceChanged(index);
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
255 // repaint();
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
256 // }
5de5699ad570 first display in QCairoWidget; no mouse interaction yet
am@osimis.io
parents:
diff changeset
257 //}