| 39 | using QtNodes::NodeState; |
| 40 | |
| 41 | MainWindow::MainWindow(GraphicMode initial_mode, QWidget *parent) : |
| 42 | QMainWindow(parent), |
| 43 | ui(new Ui::MainWindow), |
| 44 | _current_mode(initial_mode), |
| 45 | _current_layout(QtNodes::PortLayout::Vertical) |
| 46 | { |
| 47 | ui->setupUi(this); |
| 48 | |
| 49 | QSettings settings; |
| 50 | restoreGeometry(settings.value("MainWindow/geometry").toByteArray()); |
| 51 | restoreState(settings.value("MainWindow/windowState").toByteArray()); |
| 52 | |
| 53 | const QString layout = settings.value("MainWindow/layout").toString(); |
| 54 | if( layout == "HORIZONTAL") |
| 55 | { |
| 56 | _current_layout = QtNodes::PortLayout::Horizontal; |
| 57 | } |
| 58 | else{ |
| 59 | _current_layout = QtNodes::PortLayout::Vertical; |
| 60 | } |
| 61 | |
| 62 | _model_registry = std::make_shared<QtNodes::DataModelRegistry>(); |
| 63 | |
| 64 | //------------------------------------------------------ |
| 65 | |
| 66 | auto registerModel = [this](const QString& ID, const NodeModel& model) |
| 67 | { |
| 68 | QString category = QString::fromStdString( BT::toStr(model.type) ); |
| 69 | if( ID == "Root") |
| 70 | { |
| 71 | category = "Root"; |
| 72 | } |
| 73 | QtNodes::DataModelRegistry::RegistryItemCreator creator; |
| 74 | creator = [model]() -> QtNodes::DataModelRegistry::RegistryItemPtr |
| 75 | { |
| 76 | auto ptr = new BehaviorTreeDataModel( model ); |
| 77 | return std::unique_ptr<BehaviorTreeDataModel>(ptr); |
| 78 | }; |
| 79 | _model_registry->registerModel( category, creator, ID ); |
| 80 | }; |
| 81 | |
| 82 | for(const auto& model: BuiltinNodeModels()) |
| 83 | { |
| 84 | registerModel( model.first, model.second ); |
| 85 | _treenode_models.insert( { model.first, model.second } ); |
| 86 | qDebug() << "adding model: " << model.first; |
| 87 | } |
| 88 | //------------------------------------------------------ |
| 89 | |
| 90 | _editor_widget = new SidepanelEditor(_model_registry.get(), _treenode_models, this); |
| 91 | _replay_widget = new SidepanelReplay(this); |
| 92 | |
| 93 | ui->leftFrame->layout()->addWidget( _editor_widget ); |
| 94 | ui->leftFrame->layout()->addWidget( _replay_widget ); |
| 95 | |
| 96 | #ifdef ZMQ_FOUND |
| 97 | _monitor_widget = new SidepanelMonitor(this); |
| 98 | ui->leftFrame->layout()->addWidget( _monitor_widget ); |
nothing calls this directly
no test coverage detected