Skip to content

Commit f96c562

Browse files
committed
[example][dataflow] modify rendering demo.
1 parent 644ecf8 commit f96c562

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

  • examples/DataflowExamples/GraphRendering

examples/DataflowExamples/GraphRendering/main.cpp

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
#include <Gui/RadiumWindow/SimpleWindow.hpp>
1313
#include <Gui/Viewer/Viewer.hpp>
1414

15+
#include <Dataflow/QtGui/GraphEditor/GraphEditorWindow.hpp>
16+
1517
// Qt Widgets
1618
#include <QtWidgets>
1719

@@ -83,13 +85,48 @@ class DemoWindowFactory : public BaseApplication::WindowFactory
8385
int renderNum = 0;
8486

8587
for ( const auto& rndr : renderers ) {
88+
std::cout << "adding renderer : " << rndr->getRendererName() << "\n";
89+
8690
window->addRenderer( rndr->getRendererName(), rndr );
8791
auto rndAct = new QAction( rndr->getRendererName().c_str(), window );
8892
renderMenu->addAction( rndAct );
8993
QAction::connect( rndAct, &QAction::triggered, [renderNum, window]() {
9094
window->getViewer()->changeRenderer( renderNum );
9195
window->getViewer()->needUpdate();
9296
} );
97+
98+
// nodeToolBar* ff;
99+
// build a toolbar for the renderers
100+
if ( rndr->getRendererName() == "Custom Node Renderer" ) {
101+
auto nodeToolBar = window->addToolBar( "NodeGraph control" );
102+
nodeToolBar->setObjectName( "Edit Graph" );
103+
auto grphAction = new QAction( "Edit Graph", window );
104+
nodeToolBar->addAction( grphAction );
105+
nodeToolBar->hide();
106+
auto* cnfgRndr =
107+
dynamic_cast<Ra::Dataflow::Rendering::Renderer::ControllableRenderer*>(
108+
rndr.get() );
109+
110+
QAction::connect( grphAction, &QAction::triggered, [cnfgRndr]() {
111+
auto& nbrCtrl =
112+
dynamic_cast<Ra::Dataflow::Rendering::Renderer::RenderGraphController&>(
113+
cnfgRndr->getController() );
114+
auto editor = new Ra::Dataflow::QtGui::GraphEditor::GraphEditorWindow(
115+
nbrCtrl.getGraph() );
116+
editor->show();
117+
} );
118+
QAction::connect(
119+
rndAct, &QAction::triggered, [nodeToolBar]() { nodeToolBar->show(); } );
120+
}
121+
else {
122+
QAction::connect( rndAct, &QAction::triggered, [window]() {
123+
auto toolbars = window->findChildren<QToolBar*>();
124+
for ( auto tb : toolbars ) {
125+
if ( tb->objectName() == "Edit Graph" ) { tb->hide(); }
126+
}
127+
} );
128+
}
129+
93130
++renderNum;
94131
}
95132
}

0 commit comments

Comments
 (0)