diff --git a/Foundation/library/source/TTNodeDirectory.cpp b/Foundation/library/source/TTNodeDirectory.cpp index 0697b7852..de9fba9d7 100644 --- a/Foundation/library/source/TTNodeDirectory.cpp +++ b/Foundation/library/source/TTNodeDirectory.cpp @@ -218,11 +218,15 @@ TTErr TTNodeDirectory::fillAddressItem(TTAddressItemPtr anAddressItem, TTAddress // get name.instance aNode->getAddress(anAddress, startAddress); - // append to the namespace - anAddressItem->append(anAddress, &anItem); + // if the item doesn't exist yet + if (anAddressItem->find(anAddress, &anItem) == kTTErrValueNotFound) { + + // append it to the namespace + anAddressItem->append(anAddress, &anItem); - // select the item - anItem->setSelection(YES); + // select the item + anItem->setSelection(YES); + } // fill this item fillAddressItem(anItem, startAddress.appendAddress(anAddress)); diff --git a/Modular/library/PeerObject/TTCueManager.cpp b/Modular/library/PeerObject/TTCueManager.cpp index 8095d942d..bddd815e0 100644 --- a/Modular/library/PeerObject/TTCueManager.cpp +++ b/Modular/library/PeerObject/TTCueManager.cpp @@ -223,9 +223,8 @@ TTErr TTCueManager::NamespaceSelect(const TTValue& inputValue, TTValue& outputVa aNamespace = lookupNamespace(mNamespace); if (!aNamespace) { - // if empty fill the namespace - if (mDefaultNamespace->isEmpty()) - getLocalDirectory->fillAddressItem(mDefaultNamespace); + // fill the namespace + getLocalDirectory->fillAddressItem(mDefaultNamespace); aNamespace = mDefaultNamespace; } @@ -261,9 +260,8 @@ TTErr TTCueManager::NamespaceUnselect(const TTValue& inputValue, TTValue& output aNamespace = lookupNamespace(mNamespace); if (!aNamespace) { - // if empty fill the namespace - if (mDefaultNamespace->isEmpty()) - getLocalDirectory->fillAddressItem(mDefaultNamespace); + // fill the namespace + getLocalDirectory->fillAddressItem(mDefaultNamespace); aNamespace = mDefaultNamespace; } @@ -322,9 +320,8 @@ TTErr TTCueManager::NamespaceUpdate(const TTValue& inputValue, TTValue& outputVa aNamespace = lookupNamespace(mNamespace); if (!aNamespace) { - // if empty fill the namespace - if (mDefaultNamespace->isEmpty()) - getLocalDirectory->fillAddressItem(mDefaultNamespace); + // fill the namespace + getLocalDirectory->fillAddressItem(mDefaultNamespace); aNamespace = mDefaultNamespace; } @@ -423,9 +420,8 @@ TTErr TTCueManager::Store(const TTValue& inputValue, TTValue& outputValue) aNamespace = lookupNamespace(mNamespace); if (!aNamespace) { - // if empty fill the namespace - if (mDefaultNamespace->isEmpty()) - getLocalDirectory->fillAddressItem(mDefaultNamespace); + // fill the namespace + getLocalDirectory->fillAddressItem(mDefaultNamespace); aNamespace = mDefaultNamespace; }