MCPcopy Create free account
hub / github.com/BehaviorTree/Groot / MainWindow

Method MainWindow

bt_editor/mainwindow.cpp:41–166  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39using QtNodes::NodeState;
40
41MainWindow::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 );

Callers

nothing calls this directly

Calls 3

toStrFunction · 0.85
registerModelFunction · 0.85
layoutMethod · 0.80

Tested by

no test coverage detected