DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
SchemaGraphicsScene.hpp
Go to the documentation of this file.
1#ifndef SCHEMAGRAPHICSSCENE_H
2#define SCHEMAGRAPHICSSCENE_H
3
5#include <QGraphicsScene>
6#include <QGraphicsLineItem>
7#include <QAction>
11
12namespace dbse
13{
14
15class SchemaGraphicsScene: public QGraphicsScene
16{
17 Q_OBJECT
18public:
19 explicit SchemaGraphicsScene ( QObject * parent = nullptr );
21 void CreateActions();
23 void dragEnterEvent ( QGraphicsSceneDragDropEvent * event );
24 void dragMoveEvent ( QGraphicsSceneDragDropEvent * event );
25 void dropEvent ( QGraphicsSceneDragDropEvent * event );
26
27 void contextMenuEvent ( QGraphicsSceneContextMenuEvent * event );
28 QStringList AddItemsToScene ( QStringList SchemaClasses, QList<QPointF> Positions );
29 void CleanItemMap();
30 void RemoveClassObject ( SchemaGraphicObject * Object );
31 void add_notes (QStringList notes, QList<QPointF> positions );
33
34 [[nodiscard]] bool IsModified () const {return m_modified;};
35 void ClearModified();
36signals:
37 void sceneModified(bool);
38protected:
39 // bool event ( QEvent* event );
40 void mousePressEvent ( QGraphicsSceneMouseEvent * mouseEvent );
41 void mouseMoveEvent ( QGraphicsSceneMouseEvent * mouseEvent );
42 void mouseReleaseEvent ( QGraphicsSceneMouseEvent * mouseEvent );
43 void RemoveItemFromScene ( QGraphicsItem* item );
44 void modified(bool state);
45private slots:
46 void new_class_slot();
47 void add_class_slot(QString);
48 void new_note_slot();
51 void edit_note_slot();
52 void remove_note_slot();
53 void modified_slot();
54 void EditClassSlot();
62 void RemoveClassSlot();
63 void RemoveArrowSlot();
64 void DrawArrow ( QString ClassName, QString RelationshipType, QString RelationshipName );
65private:
66 QMap<QString, SchemaGraphicObject *> ItemMap;
67 QGraphicsLineItem * m_line;
73 QAction * m_add_class;
74 QAction * m_edit_class;
82 QAction * m_add_note;
83 QAction * m_edit_note;
84 QAction * m_remove_note;
85 QAction * m_remove_class;
86 QAction * m_remove_arrow;
87 QMetaObject::Connection m_addclass_connection;
97};
98
99} // namespace dbse
100#endif // SCHEMAGRAPHICSSCENE_H
QStringList AddItemsToScene(QStringList SchemaClasses, QList< QPointF > Positions)
SchemaGraphicsScene(QObject *parent=nullptr)
void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
void dragEnterEvent(QGraphicsSceneDragDropEvent *event)
Drag & Drop.
void contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
void add_note_slot(SchemaGraphicNote *)
SchemaGraphicSegmentedArrow * m_current_arrow
void dropEvent(QGraphicsSceneDragDropEvent *event)
void add_notes(QStringList notes, QList< QPointF > positions)
void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
void DrawArrow(QString ClassName, QString RelationshipType, QString RelationshipName)
void remove_note_object(SchemaGraphicNote *obj)
QMetaObject::Connection m_addclass_connection
SchemaGraphicObject * CurrentObject
SchemaGraphicNote * m_current_note
void RemoveItemFromScene(QGraphicsItem *item)
void dragMoveEvent(QGraphicsSceneDragDropEvent *event)
void RemoveClassObject(SchemaGraphicObject *Object)
void cancel_note_slot(SchemaGraphicNote *)
QMap< QString, SchemaGraphicObject * > ItemMap
Including QT Headers.