44#ifndef VSI_GRAPHICSSCENE_HH
45#define VSI_GRAPHICSSCENE_HH
49#include <QGraphicsScene>
51#include <QDomDocument>
55class QGraphicsRectItem;
98 void moveElements (qreal _dx, qreal _dy,
bool _selected =
false);
125 const QList<SceneElement *>&
elements ()
const;
128 QString
generateCode (QString &errors,
bool _codeOnly =
false);
134 void saveToXml (QDomDocument &_doc, QDomElement &_root);
159 virtual void drawBackground(QPainter *_painter,
const QRectF &_rect);
162 void dragEnterEvent (QGraphicsSceneDragDropEvent *_event);
163 void dragLeaveEvent (QGraphicsSceneDragDropEvent *_event);
164 void dragMoveEvent (QGraphicsSceneDragDropEvent *_event);
165 void dropEvent (QGraphicsSceneDragDropEvent *_event);
168 void mousePressEvent (QGraphicsSceneMouseEvent *_event);
169 void mouseMoveEvent (QGraphicsSceneMouseEvent *_event);
170 void mouseReleaseEvent (QGraphicsSceneMouseEvent *_event);
174 void updateConnections ();
177 void sceneResized (
const QRectF &_rect);
182 QString updateConnections (
SceneElement *_from,
bool _isStart);
185 bool validMimeData (
const QMimeData *);
188 QString mimeDataElementName (
const QMimeData *);
191 QPoint mimeDataPoint (
const QMimeData *);
194 void loadElement (QDomElement& _domElement,std::vector<QString>& _connections);
197 void loadConnection (QString& _connections);
200 QList<SceneElement *> getAllElements ();
213 QGraphicsRectItem *selection_;
214 QPointF selectionStart_;
215 bool selectionActive_;
void contentChange()
handle content changes
QRectF elementsBoundingRect()
Bounding rectangle of all scene elements.
void loadFromXml(QDomElement &_domElement)
Load from xml.
void clearScene(bool _start=false)
clear the whole scene (_start = keep start element)
WayFind * wayFind()
WayFind object.
void contentChanged()
Informs about content changes.
ElementFunction * function()
Associated function.
QString generateCode(QString &errors, bool _codeOnly=false)
Generate textual script code (_codeOnly = only pure code block)
qreal getNewZ()
Returns a new Z value that is above all elements.
void mouseMove(QPointF _pos)
Redirect mouse movement to tools area.
void addElement(SceneElement *_element)
Add the element to the scene.
void scaleElements(qreal _delta)
Scale all elements with scaling center in the center of the scene.
void setActiveConnection(Connection *_conn)
Sets the active connection.
const QList< SceneElement * > & elements() const
Scene elements.
void mouseRelease(QPointF _pos, QGraphicsItem *_item)
Redirect mouse release to tools area.
bool removeElement(SceneElement *_element)
Remove the element from the scene.
ElementArea * elementArea() const
Element area.
~GraphicsScene()
Destructor.
void saveToXml(QDomDocument &_doc, QDomElement &_root)
Save to xml.
void moveElements(qreal _dx, qreal _dy, bool _selected=false)
Moves all elements.
GraphicsView * graphicsView()
Graphics view of the scene.