22 : QObject(parent), m_canShowContextMenu(contextAllowed) {}
38 if (event->buttons() & Qt::MiddleButton) {
39 emit
initZoom(event->position().toPoint().x(), event->position().toPoint().y());
42 emit
initRotation(event->position().toPoint().x(), event->position().toPoint().y());
44 }
else if ((event->buttons() & Qt::RightButton) || ((event->buttons() & Qt::LeftButton) &&
m_isRotationFrozen)) {
45 emit
initTranslation(event->position().toPoint().x(), event->position().toPoint().y());
56 emit
rotate(event->position().toPoint().x(), event->position().toPoint().y());
57 }
else if ((event->buttons() & Qt::RightButton) || ((event->buttons() & Qt::LeftButton) &&
m_isRotationFrozen)) {
58 emit
translate(event->position().toPoint().x(), event->position().toPoint().y());
59 }
else if (event->buttons() & Qt::MiddleButton) {
60 emit
zoom(event->position().toPoint().x(), event->position().toPoint().y());
79 emit
wheelZoom(
static_cast<int>(event->position().x()),
static_cast<int>(event->position().y()),
80 event->angleDelta().y());
97 if (event->button() == Qt::LeftButton) {
99 m_rect.setRect(event->position().toPoint().x(), event->position().toPoint().y(), 1, 1);
100 emit
pickPointAt(event->position().toPoint().x(), event->position().toPoint().y());
109 m_rect.setBottomRight(QPoint(event->position().toPoint().x(), event->position().toPoint().y()));
112 emit
touchPointAt(event->position().toPoint().x(), event->position().toPoint().y());
130 :
InputController(parent), m_creating(false), m_x(0), m_y(0), m_shapeType(), m_isButtonPressed(false) {}
136 if (event->button() == Qt::LeftButton) {
141 }
else if (event->modifiers() & Qt::ControlModifier) {
142 emit
selectCtrlAt(event->position().toPoint().x(), event->position().toPoint().y());
144 emit
selectAt(event->position().toPoint().x(), event->position().toPoint().y());
146 m_x =
event->position().toPoint().x();
147 m_y =
event->position().toPoint().y();
148 m_rect.setRect(event->position().toPoint().x(), event->position().toPoint().y(), 1, 1);
159 emit
moveRightBottomTo(event->position().toPoint().x(), event->position().toPoint().y());
161 emit
moveBy(event->position().toPoint().x() -
m_x, event->position().toPoint().y() -
m_y);
162 m_rect.setBottomRight(QPoint(event->position().toPoint().x(), event->position().toPoint().y()));
163 m_x =
event->position().toPoint().x();
164 m_y =
event->position().toPoint().y();
168 emit
touchPointAt(event->position().toPoint().x(), event->position().toPoint().y());
186 switch (event->key()) {
188 case Qt::Key_Backspace:
192 if (event->modifiers() == Qt::CTRL) {
197 if (event->modifiers() == Qt::CTRL) {
213 const QColor &fillColor) {
239 if (event->button() == Qt::LeftButton || event->button() == Qt::RightButton) {
241 m_rect.setTopLeft(QPoint(event->position().toPoint().x(), event->position().toPoint().y()));
250 m_rect.setBottomRight(QPoint(event->position().toPoint().x(), event->position().toPoint().y()));
279 :
InputController(parent), m_max_size(32),
m_size(30), m_isLeftButtonPressed(false), m_isRightButtonPressed(false),
280 m_isActive(false), m_cursor(nullptr) {}
289 setPosition(QPoint(event->position().toPoint().x(), event->position().toPoint().y()));
290 if (event->button() == Qt::LeftButton) {
293 }
else if (event->button() == Qt::RightButton) {
304 setPosition(QPoint(event->position().toPoint().x(), event->position().toPoint().y()));
316 if (event->button() == Qt::LeftButton) {
318 }
else if (event->button() == Qt::RightButton) {
324 int d =
m_size + (
event->angleDelta().y() > 0 ? 4 : -4);
329 QApplication::restoreOverrideCursor();
330 QApplication::setOverrideCursor(QCursor(*
m_cursor, 0, 0));
336 QApplication::setOverrideCursor(QCursor(*
m_cursor, 0, 0));
341 QApplication::restoreOverrideCursor();
370 cursor->fill(QColor(255, 255, 255, 0));
371 QPainter painter(cursor);
374 auto pen = QPen(Qt::DashLine);
376 dashPattern << 4 << 4;
377 pen.setDashPattern(dashPattern);
378 pen.setColor(QColor(0, 0, 0));
380 painter.drawRect(QRect(0, 0, size, size));
382 pen.setColor(QColor(255, 255, 255));
383 pen.setDashOffset(4);
385 painter.drawRect(QRect(0, 0, size, size));
392 m_rect.setSize(QSize(size, size));
406 double a = 2.0 * M_PI / double(
m_rect.size());
407 for (
int i = 0; i <
m_rect.size(); ++i) {
408 double ia = double(i) * a;
409 auto x = r +
static_cast<int>(r * cos(ia));
410 auto y = r +
static_cast<int>(r * sin(ia));
431 cursor->fill(QColor(255, 255, 255, 0));
432 QPainter painter(cursor);
434 auto bRect =
m_rect.boundingRect();
435 auto poly =
m_rect.translated(-bRect.topLeft());
437 auto pen = QPen(Qt::DashLine);
440 dashPattern << dashLength << dashLength;
441 pen.setDashPattern(dashPattern);
442 pen.setColor(QColor(0, 0, 0));
444 painter.drawPolygon(poly);
446 pen.setColor(QColor(255, 255, 255));
447 pen.setDashOffset(dashLength);
449 painter.drawPolygon(poly);
size_t m_size
Maximum size of the store.
void(ComponentInfo::* setPosition)(const size_t, const Mantid::Kernel::V3D &)