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 <QAction>
6#include <QGraphicsLineItem>
7#include <QGraphicsScene>
11
12namespace dbse {
13
14class SchemaGraphicsScene : public QGraphicsScene
15{
16 Q_OBJECT
17public:
18 explicit SchemaGraphicsScene(QObject* parent = nullptr);
20 void CreateActions();
22 void dragEnterEvent(QGraphicsSceneDragDropEvent* event);
23 void dragMoveEvent(QGraphicsSceneDragDropEvent* event);
24 void dropEvent(QGraphicsSceneDragDropEvent* event);
25
26 void contextMenuEvent(QGraphicsSceneContextMenuEvent* event);
27 QStringList AddItemsToScene(QStringList SchemaClasses, QList<QPointF> Positions);
28 void CleanItemMap();
30 void add_notes(QStringList notes, QList<QPointF> positions);
32
33 [[nodiscard]] bool highlight_abstract() const { return m_highlight_abstract; }
34 [[nodiscard]] bool highlight_active() const { return m_highlight_active; }
35 [[nodiscard]] bool inherited_properties_visible() const { return m_inherited_properties_visible; }
36
37 [[nodiscard]] bool show_defaults() const { return m_show_defaults; };
38 [[nodiscard]] bool IsModified() const { return m_modified; };
39 void ClearModified();
40signals:
41 void sceneModified(bool);
43
44protected:
45 // bool event ( QEvent* event );
46 void mousePressEvent(QGraphicsSceneMouseEvent* mouseEvent);
47 void mouseMoveEvent(QGraphicsSceneMouseEvent* mouseEvent);
48 void mouseReleaseEvent(QGraphicsSceneMouseEvent* mouseEvent);
49 void RemoveItemFromScene(QGraphicsItem* item);
50 void modified(bool state);
51private slots:
52 void new_class_slot();
53 void add_class_slot(QString);
54 void new_note_slot();
57 void edit_note_slot();
58 void remove_note_slot();
59 void modified_slot();
60 void EditClassSlot();
65 void ToggleDefault();
71 void RemoveClassSlot();
72 void RemoveArrowSlot();
73 void DrawArrow(QString ClassName, QString RelationshipType, QString RelationshipName);
74 void requestSave();
75 void moveScene();
76
77private:
78 QMap<QString, SchemaGraphicObject*> ItemMap;
79 std::set<SchemaGraphicNote*> m_notes;
80 QGraphicsLineItem* m_line;
87 QAction* m_add_class;
88 QAction* m_edit_class;
99 QAction* m_add_note;
100 QAction* m_edit_note;
104 QAction* m_save;
105 QAction* m_move;
106 QMetaObject::Connection m_addclass_connection;
112 int m_next_note{ 0 };
118};
119
120} // namespace dbse
121#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)
std::set< SchemaGraphicNote * > m_notes
void add_note_slot(SchemaGraphicNote *)
SchemaGraphicSegmentedArrow * m_current_arrow
void dropEvent(QGraphicsSceneDragDropEvent *event)
void add_notes(QStringList notes, QList< QPointF > positions)
QMap< QString, SchemaGraphicObject * > ItemMap
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
void RemoveItemFromScene(QGraphicsItem *item)
void dragMoveEvent(QGraphicsSceneDragDropEvent *event)
void RemoveClassObject(SchemaGraphicObject *Object)
void cancel_note_slot(SchemaGraphicNote *)
Including QT Headers.