3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // Portions copyright (C) 2001-2003 RibbonSoft
7 // Copyright (C) 2010 Underground Software
8 // See the README and GPLv2 files for licensing and warranty information
10 // JLH = James L. Hammons <jlhamm@acm.org>
13 // --- ---------- -----------------------------------------------------------
14 // JLH 06/05/2010 Added this text. :-)
17 #include "actionzoompan.h"
19 #include "graphicview.h"
21 ActionZoomPan::ActionZoomPan(RS_EntityContainer & container, GraphicView & graphicView):
22 ActionInterface("Zoom Pan", container, graphicView)
26 ActionZoomPan::~ActionZoomPan()
30 void ActionZoomPan::init(int status)
32 ActionInterface::init(status);
33 /* snapMode = RS2::SnapFree;
34 snapRes = RS2::RestrictNothing;*/
35 x1 = y1 = x2 = y2 = -1;
38 void ActionZoomPan::trigger()
42 graphicView->zoomPan(x2 - x1, y2 - y1);
48 #define SCROLL_DELTA 4
49 void ActionZoomPan::mouseMoveEvent(QMouseEvent * e)
54 //This is where we see if the delta was big enough to warrant a redraw...
55 //Dunno if this is needed anymore, the Qt rendering pipeline should be able to
57 // if (getStatus() == 1 && (abs(x2 - x1) > 7 || abs(y2 - y1) > 7))
58 if (getStatus() == 1 && (abs(x2 - x1) > SCROLL_DELTA || abs(y2 - y1) > SCROLL_DELTA))
62 void ActionZoomPan::mousePressEvent(QMouseEvent * e)
64 if (e->button() == Qt::MidButton || e->button() == Qt::LeftButton)
72 void ActionZoomPan::mouseReleaseEvent(QMouseEvent * e)
74 if (e->button() == Qt::RightButton)
75 init(getStatus() - 1);
76 else if (e->button() == Qt::MidButton)
82 void ActionZoomPan::updateMouseCursor()
85 graphicView->setMouseCursor(RS2::SizeAllCursor);