4 #include <QGraphicsView>
7 #include <QDomDocument>
11 #include <QMessageBox>
12 #include <QWheelEvent>
19 #include "qnstscene.h"
20 #include "qnstviewlink.h"
21 #include "qnstgraphicsentity.h"
22 #include "qnstgraphicsbody.h"
23 #include "qnstgraphicscontext.h"
24 #include "qnstgraphicsswitch.h"
25 #include "qnstgraphicsmedia.h"
26 #include "qnstgraphicsport.h"
27 #include "qnstgraphicsreference.h"
28 #include "qnstgraphicslink.h"
29 #include "qnstgraphicslinkdialog.h"
30 #include "qnstgraphicsconditiondialog.h"
31 #include "qnstgraphicsactiondialog.h"
32 #include "qnstconnector.h"
33 #include "qnstgraphicsproperty.h"
34 #include "qnstgraphicsbind.h"
35 #include "qnstgraphicsarea.h"
36 #include "qnstaddcommand.h"
37 #include "qnstchangecommand.h"
38 #include "qnstremovecommand.h"
39 #include "qnstgraphicsmapping.h"
57 void load(QString data);
61 void read(QDomElement element, QDomElement parent);
63 void readLink(QDomElement element, QDomElement parent);
70 void addEntity(
const QString uid,
const QString parent,
71 const QMap<QString, QString> &properties,
bool undo =
false,
74 void removeEntity(
const QString uid,
bool undo =
false,
bool rmRef =
true);
76 void changeEntity(
const QString uid,
const QMap<QString, QString> &properties,
79 void selectEntity(
const QString uid);
81 bool hasEntity(QString uid);
85 QMap<QString, QnstGraphicsEntity*> entities;
100 void performDelete();
102 void performExport();
104 void performZoomIn();
106 void performZoomOut();
108 void performZoomReset();
110 void performFullscreen();
112 void performBringfront();
114 void performBringforward();
116 void performSendback();
118 void performSendbackward();
122 void performProperties();
125 void entityAdded(
const QString uid,
const QString parent,
const QMap<QString, QString> properties);
127 void entityChanged(
const QString uid,
const QMap<QString, QString> properties);
129 void entityRemoved(
const QString uid);
131 void entitySelected(
const QString uid);
139 virtual void mouseMoveEvent(QMouseEvent* event);
141 virtual void mousePressEvent(QMouseEvent* event);
143 virtual void mouseReleaseEvent(QMouseEvent*event);
145 virtual void keyPressEvent(QKeyEvent *event);
147 virtual void keyReleaseEvent(QKeyEvent *event);
149 virtual void focusOutEvent(QFocusEvent *event);
151 void wheelEvent(QWheelEvent * event);
154 int _numScheduledScalings;
159 void scalingTime(qreal x);
166 bool rmRefs =
true,
bool notify =
true);
171 QMap<QString, QString> properties);
175 void requestBindParamAdjust(QString uid, QString parent,
176 QMap<QString, QString> properties);
178 void updateBindParams(QString bindUID, QMap<QString, QString> params,
179 QMap<QString, QString> name_uids);
183 void markError(QString uid, QString msg);
185 void clearValidationErrors();
190 void addImportBase(
const QString &uid,
191 const QMap<QString, QString> &properties);
193 void changeImportBase(
const QString &uid,
194 const QMap<QString, QString> &properties);
207 const QMap<QString, QString> &properties);
213 void addConnector(
const QString &uid,
214 const QMap<QString, QString> &properties);
217 const QMap<QString, QString> &properties);
219 void addCondition(
const QString &uid,
220 const QMap<QString, QString> &properties);
222 void changeCondition(
const QString &condition,
223 const QMap<QString, QString> &properties);
225 void addAction(
const QString &uid,
226 const QMap<QString, QString> &properties);
228 void changeAction(
const QString &uid,
229 const QMap<QString, QString> &properties);
233 void changeBindParam(
const QString &uid,
234 const QMap<QString, QString> &properties);
236 void addConnectorParam(
const QString &uid,
237 const QString &parent,
238 const QMap<QString, QString> &properties);
240 void changeConnectorParam(
const QString &uid,
241 const QMap<QString, QString> &properties);
246 bool makeRefer =
false,
bool keepOriginalPos =
false);
251 void createObjects();
253 void createConnection();
255 void readImportBase(
const QString &uid, QDomElement e,
const QString &alias);
276 void collapseCompositions(QDomElement element, QDomElement parent);
278 QString createNewConnector(QString condition, QString action);
310 bool notifyCreation =
true);
318 void traceEntities();
320 void traceConnectors();
321 void traceConnectors2();
323 void deletePendingEntities();
353 QSet<QString> linkWriterAux;
355 QMap<QString, QnstGraphicsLink*> links;
357 QMap<QString, QnstGraphicsBind*> binds;
359 QMap<QString, QString> refers;
361 QMap<QString, QString> importBases;
363 QMap<QString, QString> bindParamUIDToBindUID;
365 QMap<QString, QnstConnector*> connectors2;
367 QMap<QString, QnstConnector*> connectors;
369 QVector<QnstGraphicsEntity*> toDelete;
375 std::map < Qnst::EntityType, int > entityCounter;
377 static std::map <Qnst::EntityType, QString> mediaTypeToXMLStr;