From 437b9246b38740fca30768e80baecfc91a4eb438 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 20 Mar 2016 03:48:56 +0100 Subject: Improve new actor dialog for pictures If the actor already exists, select it and exit, otherwise create and select it. --- mappingtreewidget.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'mappingtreewidget.cpp') 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); + } } } } -- cgit v1.2.3-70-g09d2