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

Method onTabRenameRequested

bt_editor/mainwindow.cpp:1392–1446  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1390}
1391
1392void MainWindow::onTabRenameRequested(int tab_index, QString new_name)
1393{
1394 QString old_name = this->ui->tabWidget->tabText(tab_index);
1395
1396 if( new_name.isEmpty())
1397 {
1398 bool ok = false;
1399 new_name = QInputDialog::getText (
1400 this, tr ("Change name"),
1401 tr ("Insert the new name of this BehaviorTree"),
1402 QLineEdit::Normal, old_name, &ok);
1403 if (!ok)
1404 {
1405 return;
1406 }
1407 }
1408
1409 if( new_name == old_name)
1410 {
1411 return;
1412 }
1413 if( getTabByName(new_name) )
1414 {
1415 QMessageBox::warning( this, "Tab name already is use",
1416 tr("There is already a BehaviorTree called [%1].\n"
1417 "Use another name.").arg(new_name),
1418 QMessageBox::Ok);
1419 return;
1420 }
1421
1422 ui->tabWidget->setTabText (tab_index, new_name);
1423 auto it = _tab_info.find(old_name);
1424 auto container = it->second;
1425 _tab_info.insert( {new_name, container} );
1426 _tab_info.erase( it );
1427 if( _main_tree == old_name )
1428 {
1429 _main_tree = new_name;
1430 }
1431
1432 // if a subtree SUBTREE already
1433 if( _model_registry->registeredModelsByCategory("SubTree").count( old_name ) != 0 )
1434 {
1435 _model_registry->unregisterModel(old_name);
1436 _treenode_models.erase(old_name);
1437 NodeModel model = { NodeType::SUBTREE, new_name, {}};
1438 onAddToModelRegistry( model );
1439 _treenode_models.insert( { new_name, model} );
1440 _editor_widget->updateTreeView();
1441 this->onTreeNodeEdited(old_name, new_name);
1442 }
1443
1444 // TODO: this is a work around until we find a better solution
1445 clearUndoStacks();
1446}
1447
1448
1449void MainWindow::onTabSetMainTree(int tab_index)

Callers 1

renameTabsMethod · 0.80

Calls 3

onTreeNodeEditedMethod · 0.95
updateTreeViewMethod · 0.80

Tested by 1

renameTabsMethod · 0.64