30 #include <QGraphicsView>
31 #include <QWheelEvent>
41 GraphicsView::GraphicsView(
QWidget *parent)
48 setTransformationAnchor(QGraphicsView::AnchorViewCenter);
57 DEBTRACE(
"GraphicsView::onViewFitAll");
66 DEBTRACE(
"GraphicsView::onViewFitArea");
67 Scene* myScene =
dynamic_cast<Scene*
>(scene());
74 DEBTRACE(
"GraphicsView::onViewZoom");
75 Scene* myScene =
dynamic_cast<Scene*
>(scene());
84 Scene* myScene =
dynamic_cast<Scene*
>(scene());
88 setTransformationAnchor(QGraphicsView::NoAnchor);
93 DEBTRACE(
"GraphicsView::onViewGlobalPan");
98 DEBTRACE(
"GraphicsView::onViewReset");
111 QPointF point = mapToScene(event->pos());
113 item->
popupMenu(
this, event->globalPos());
120 QPointF point = mapToScene(event->pos());
122 item->
popupMenu(
this, event->globalPos());
130 WrapGraphicsView::mouseMoveEvent(e);
131 if (e->buttons()==Qt::LeftButton)
133 QPoint current = e->pos();
136 qreal currentX = e->globalX();
137 qreal currentY = e->globalY();
145 double deltax = delta/900.;
146 double zoom = exp(deltax);
161 _rect = scene()->addRect(QGraphicsView::mapToScene(QRect(
_prevPos, current)).boundingRect());
162 _rect->setZValue(100000);
163 _rect->setParentItem(0);
167 _rect->setRect(QGraphicsView::mapToScene(QRect(
_prevPos, current)).boundingRect());
176 DEBTRACE(
"GraphicsView::mousePressEvent");
179 DEBTRACE(
"Switch context before selection");
182 WrapGraphicsView::mousePressEvent(e);
203 setDragMode(QGraphicsView::NoDrag);
204 setTransformationAnchor(QGraphicsView::AnchorViewCenter);
208 QPoint current = e->pos();
209 fitInView(QGraphicsView::mapToScene(QRect(
_prevPos, current)).boundingRect(), Qt::KeepAspectRatio);
214 QTransform q = transform();
215 DEBTRACE(q.m11()<<
" "<<q.m12()<<
" "<<q.m21()<<
" "<<q.m22()<<
" "<<q.dx()<<
" "<<q.dy());
216 WrapGraphicsView::mouseReleaseEvent(e);
221 DEBTRACE(
"GraphicsView::wheelEvent " << e->delta());
222 double zoom = exp(0.1*e->delta()/120);
224 setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
241 fitInView(rect.toRect(), Qt::KeepAspectRatio);
#define YASSERT(val)
YASSERT macro is always defined, used like assert, but throw a YACS::Exception instead of abort.
void switchContext(QWidget *view, bool onExit=false)
virtual void onViewFitArea()
virtual void onCenterOnNode()
QGraphicsRectItem * _rect
virtual void wheelEvent(QWheelEvent *e)
virtual void onViewZoom()
virtual void onViewFitAll()
virtual void onViewReset()
void mousePressEvent(QMouseEvent *e)
virtual void onViewGlobalPan()
void mouseMoveEvent(QMouseEvent *e)
virtual void onZoomToBloc()
void contextMenuEvent(QContextMenuEvent *event)
void mouseReleaseEvent(QMouseEvent *e)
YACS::HMI::SubjectProc * getSubjectProc()
static QtGuiContext * getQtCurrent()
YACS::HMI::GenericGui * getGMain()
std::map< YACS::HMI::Subject *, YACS::HMI::SceneItem * > _mapOfSceneItem
YACS::HMI::Subject * getSelectedSubject()
virtual void popupMenu(QWidget *caller, const QPoint &globalPos)
virtual QRectF boundingRect() const
void setEventPos(QPointF point)
virtual void popupMenu(QWidget *caller, const QPoint &globalPos)
void setEventPos(QPointF point)
void setZoom(bool zooming)
virtual Subject * getParent()