diff options
-rw-r--r-- | mappingtreewidget.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/mappingtreewidget.cpp b/mappingtreewidget.cpp index 3f46671..094703b 100644 --- a/mappingtreewidget.cpp +++ b/mappingtreewidget.cpp @@ -169,13 +169,20 @@ void MappingTreeWidget::addActor(){ } QString newActorName = QInputDialog::getText(this, tr("New actor"), tr("Actor")); if(!newActorName.isEmpty()){ - mModel->addChild(newActorName, actorIndex); - actorIndex = mModel->find("actors", MappingTreeModel::Name); - QModelIndex newIdx = mModel->find(newActorName, MappingTreeModel::Name, actorIndex); - if(newIdx.isValid()){ - QModelIndex newIdxProxy = mProxy->mapFromSource(newIdx); + QModelIndex newActorIdx = mModel->find(newActorName, MappingTreeModel::Name, actorIndex); + if(newActorIdx.isValid()){ + QModelIndex newIdxProxy = mProxy->mapFromSource(newActorIdx); mTree->scrollTo(newIdxProxy, QAbstractItemView::EnsureVisible); mTree->selectionModel()->setCurrentIndex(newIdxProxy, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Current | QItemSelectionModel::Rows); + }else{ + mModel->addChild(newActorName, actorIndex); + actorIndex = mModel->find("actors", MappingTreeModel::Name); + QModelIndex newIdx = mModel->find(newActorName, MappingTreeModel::Name, actorIndex); + if(newIdx.isValid()){ + QModelIndex newIdxProxy = mProxy->mapFromSource(newIdx); + mTree->scrollTo(newIdxProxy, QAbstractItemView::EnsureVisible); + mTree->selectionModel()->setCurrentIndex(newIdxProxy, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Current | QItemSelectionModel::Rows); + } } } } |