Implemented a primitive decorator, allowing groups of primitives to be easily resized.

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@2027 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavier
2013-02-08 22:05:15 +00:00
parent 73fa01c7b9
commit 2bed00fd25
21 changed files with 1566 additions and 124 deletions

View File

@@ -17,6 +17,7 @@
*/
#include "qet.h"
#include <limits>
#include <QGraphicsSceneContextMenuEvent>
/**
Permet de convertir une chaine de caracteres ("n", "s", "e" ou "w")
@@ -577,3 +578,59 @@ bool QET::writeXmlFile(QDomDocument &xml_doc, const QString &filepath, QString *
return(true);
}
/**
@return the scene position where \a event occurred, provided it is
QGraphicsScene-related event; otherwise, this function returns a null
QPointF.
*/
QPointF QET::graphicsSceneEventPos(QEvent *event) {
QPointF event_scene_pos;
if (event -> type() < QEvent::GraphicsSceneContextMenu) return(event_scene_pos);
if (event -> type() > QEvent::GraphicsSceneWheel) return(event_scene_pos);
switch (event -> type()) {
case QEvent::GraphicsSceneContextMenu: {
QGraphicsSceneContextMenuEvent *qgs_event = static_cast<QGraphicsSceneContextMenuEvent *>(event);
event_scene_pos = qgs_event -> scenePos();
break;
}
case QEvent::GraphicsSceneDragEnter:
case QEvent::GraphicsSceneDragLeave:
case QEvent::GraphicsSceneDragMove:
case QEvent::GraphicsSceneDrop: {
QGraphicsSceneDragDropEvent *qgs_event = static_cast<QGraphicsSceneDragDropEvent *>(event);
event_scene_pos = qgs_event -> scenePos();
break;
}
case QEvent::GraphicsSceneHelp: {
QGraphicsSceneHelpEvent *qgs_event = static_cast<QGraphicsSceneHelpEvent *>(event);
event_scene_pos = qgs_event -> scenePos();
break;
}
case QEvent::GraphicsSceneHoverEnter:
case QEvent::GraphicsSceneHoverLeave:
case QEvent::GraphicsSceneHoverMove: {
QGraphicsSceneHoverEvent *qgs_event = static_cast<QGraphicsSceneHoverEvent *>(event);
event_scene_pos = qgs_event -> scenePos();
break;
}
case QEvent::GraphicsSceneMouseDoubleClick:
case QEvent::GraphicsSceneMouseMove:
case QEvent::GraphicsSceneMousePress:
case QEvent::GraphicsSceneMouseRelease: {
QGraphicsSceneMouseEvent *qgs_event = static_cast<QGraphicsSceneMouseEvent *>(event);
event_scene_pos = qgs_event -> scenePos();
break;
}
case QEvent::GraphicsSceneWheel: {
QGraphicsSceneWheelEvent *qgs_event = static_cast<QGraphicsSceneWheelEvent *>(event);
event_scene_pos = qgs_event -> scenePos();
break;
}
default:
break;
}
return(event_scene_pos);
}