Skip to content

Commit e81afb0

Browse files
ypnospaceholder
authored andcommitted
Support inclusion of FlowView via Qt Designer (paceholder#107)
* Add constructor with parent argument Support inclusion of FlowView via Qt Designer and generally through .ui files (using promoted Widget feature). * allow to set the scene after construction * remove ill-posed default argument * use delegating constructor * improve initialization order
1 parent 9b7a5d0 commit e81afb0

File tree

2 files changed

+36
-14
lines changed

2 files changed

+36
-14
lines changed

src/FlowView.cpp

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ using QtNodes::FlowView;
2727
using QtNodes::FlowScene;
2828

2929
FlowView::
30-
FlowView(FlowScene *scene)
31-
: QGraphicsView(scene)
32-
, _clickPos(QPointF())
33-
, _scene(scene)
30+
FlowView(QWidget *parent)
31+
: QGraphicsView(parent)
32+
, _clearSelectionAction(Q_NULLPTR)
33+
, _deleteSelectionAction(Q_NULLPTR)
34+
, _scene(Q_NULLPTR)
3435
{
3536
setDragMode(QGraphicsView::ScrollHandDrag);
3637
setRenderHint(QPainter::Antialiasing);
@@ -49,17 +50,14 @@ FlowView(FlowScene *scene)
4950
setCacheMode(QGraphicsView::CacheBackground);
5051

5152
//setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
53+
}
5254

53-
// setup actions
54-
_clearSelectionAction = new QAction(QStringLiteral("Clear Selection"), this);
55-
_clearSelectionAction->setShortcut(Qt::Key_Escape);
56-
connect(_clearSelectionAction, &QAction::triggered, _scene, &QGraphicsScene::clearSelection);
57-
addAction(_clearSelectionAction);
5855

59-
_deleteSelectionAction = new QAction(QStringLiteral("Delete Selection"), this);
60-
_deleteSelectionAction->setShortcut(Qt::Key_Delete);
61-
connect(_deleteSelectionAction, &QAction::triggered, this, &FlowView::deleteSelectedNodes);
62-
addAction(_deleteSelectionAction);
56+
FlowView::
57+
FlowView(FlowScene *scene, QWidget *parent)
58+
: FlowView(parent)
59+
{
60+
setScene(scene);
6361
}
6462

6563

@@ -79,6 +77,27 @@ deleteSelectionAction() const
7977
}
8078

8179

80+
void
81+
FlowView::setScene(FlowScene *scene)
82+
{
83+
_scene = scene;
84+
QGraphicsView::setScene(_scene);
85+
86+
// setup actions
87+
delete _clearSelectionAction;
88+
_clearSelectionAction = new QAction(QStringLiteral("Clear Selection"), this);
89+
_clearSelectionAction->setShortcut(Qt::Key_Escape);
90+
connect(_clearSelectionAction, &QAction::triggered, _scene, &QGraphicsScene::clearSelection);
91+
addAction(_clearSelectionAction);
92+
93+
delete _deleteSelectionAction;
94+
_deleteSelectionAction = new QAction(QStringLiteral("Delete Selection"), this);
95+
_deleteSelectionAction->setShortcut(Qt::Key_Delete);
96+
connect(_deleteSelectionAction, &QAction::triggered, this, &FlowView::deleteSelectedNodes);
97+
addAction(_deleteSelectionAction);
98+
}
99+
100+
82101
void
83102
FlowView::
84103
contextMenuEvent(QContextMenuEvent *event)

src/FlowView.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ class NODE_EDITOR_PUBLIC FlowView
1414
{
1515
public:
1616

17-
FlowView(FlowScene *scene);
17+
FlowView(QWidget *parent = Q_NULLPTR);
18+
FlowView(FlowScene *scene, QWidget *parent = Q_NULLPTR);
1819

1920
FlowView(const FlowView&) = delete;
2021
FlowView operator=(const FlowView&) = delete;
@@ -23,6 +24,8 @@ class NODE_EDITOR_PUBLIC FlowView
2324

2425
QAction* deleteSelectionAction() const;
2526

27+
void setScene(FlowScene *scene);
28+
2629
public slots:
2730

2831
void scaleUp();

0 commit comments

Comments
 (0)