|
12 | 12 | #include <Gui/RadiumWindow/SimpleWindow.hpp> |
13 | 13 | #include <Gui/Viewer/Viewer.hpp> |
14 | 14 |
|
| 15 | +#include <Dataflow/QtGui/GraphEditor/GraphEditorWindow.hpp> |
| 16 | + |
15 | 17 | // Qt Widgets |
16 | 18 | #include <QtWidgets> |
17 | 19 |
|
@@ -83,13 +85,48 @@ class DemoWindowFactory : public BaseApplication::WindowFactory |
83 | 85 | int renderNum = 0; |
84 | 86 |
|
85 | 87 | for ( const auto& rndr : renderers ) { |
| 88 | + std::cout << "adding renderer : " << rndr->getRendererName() << "\n"; |
| 89 | + |
86 | 90 | window->addRenderer( rndr->getRendererName(), rndr ); |
87 | 91 | auto rndAct = new QAction( rndr->getRendererName().c_str(), window ); |
88 | 92 | renderMenu->addAction( rndAct ); |
89 | 93 | QAction::connect( rndAct, &QAction::triggered, [renderNum, window]() { |
90 | 94 | window->getViewer()->changeRenderer( renderNum ); |
91 | 95 | window->getViewer()->needUpdate(); |
92 | 96 | } ); |
| 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 | + |
93 | 130 | ++renderNum; |
94 | 131 | } |
95 | 132 | } |
|
0 commit comments