183 QWidget* centralWidget =
new QWidget();
184 setCentralWidget(centralWidget);
186 centralWidget->setContentsMargins(0, 0, 0, 0);
187 QVBoxLayout* mainLayout =
new QVBoxLayout();
188 mainLayout->setContentsMargins(0, 0, 0, 0);
189 mainLayout->setSpacing(0);
190 centralWidget->setLayout(mainLayout);
193 QTabWidget* tabWidget =
new QTabWidget();
194 tabWidget->setObjectName(QStringLiteral(
"tabWidget"));
195 tabWidget->setGeometry(QRect(140, 60, 361, 241));
302 qRegisterMetaType<QDockWidget::DockWidgetFeatures>();
306 static const struct Set {
309 Qt::DockWidgetArea area;
311 {
"SceneGraph", 0, Qt::RightDockWidgetArea },
312 {
"Console", 0, Qt::BottomDockWidgetArea },
313 {
"Property", 0, Qt::RightDockWidgetArea },
314 {
"NodeEditor", 0, Qt::RightDockWidgetArea },
315 {
"Module", 0, Qt::RightDockWidgetArea }
317 const int setCount =
sizeof(sets) /
sizeof(
Set);
319 const QIcon qtIcon(QPixmap(
":/res/qt.png"));
322 PDockWidget *nodeEditorDockWidget =
new PDockWidget(tr(sets[3].name),
this, Qt::WindowFlags(sets[3].flags));
323 nodeEditorDockWidget->setWindowTitle(
"Node Editor");
324 nodeEditorDockWidget->setWindowIcon(qtIcon);
325 addDockWidget(sets[3].area, nodeEditorDockWidget);
331 PDockWidget *propertyDockWidget =
new PDockWidget(tr(sets[2].name),
this, Qt::WindowFlags(sets[2].flags));
332 propertyDockWidget->setWindowTitle(
"Property Editor");
333 propertyDockWidget->setWindowIcon(qtIcon);
334 propertyDockWidget->setMinimumWidth(580);
335 addDockWidget(sets[2].area, propertyDockWidget);
344 setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
345 setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
360 for (
auto qNode : qNodes)
363 qNode->nodeGraphicsObject().setSelected(
true);
365 qNode->nodeGraphicsObject().setSelected(
false);
370 connect(
mNodeFlowView->flowScene(), &Qt::QtNodeFlowScene::nodeSelected, [=](Qt::QtNode& n)
372 auto model = n.nodeDataModel();
373 auto widget = dynamic_cast<Qt::QtNodeWidget*>(model);
375 if (widget != nullptr)
377 mOpenGLWidget->select(widget->getNode());
378 mOpenGLWidget->update();
382 connect(mNodeFlowView->flowScene(), &Qt::QtNodeFlowScene::nodeDeselected, [=]()
384 mOpenGLWidget->select(nullptr);
385 mOpenGLWidget->update();
390 mOpenGLWidget->setFocus();
void mousePressEvent(QMouseEvent *event) override
void createWindow(int width, int height)
POpenGLWidget * mOpenGLWidget
PSettingEditor * mSettingEditor
PPropertyWidget * mPropertyWidget
PMainWindow(QtApp *app, QWidget *parent=Q_NULLPTR, Qt::WindowFlags flags=Qt::WindowFlags())
Qt::QtNodeFlowWidget * mNodeFlowView
void setupSettingEditor()
void showModuleEditor(Qt::QtNode &n)
PIODockWidget * mIoDockerWidget
PAnimationWidget * mAnimationWidget
void addNodeByName(std::string name)
void nodeCreated(std::shared_ptr< Node > node)